18 zj510

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 6k+

FileContext等的坑?

FileContext等的坑?问题场景具体问题解决方案问题在minifilter中,可以使用CtxGetFileContext,CtxCreateFileContext等函数保存context。以FileContext为例,新建的文件可以保存一个context进去,然后当这个文件被删除的时候,操作系统会调用minifilter的清理函数来删除相应的context。那么坑:如果海量创建文件...

2019-01-19 12:11:05

如何在Minifilter驱动的IRP中获取操作文件路径?

如何在IRP中获取操作的文件路径?文件路径普通办法如何获取FileMapping操作在IRP_MJ_WRITE等IRP中的文件路径呢?IRP_MJ_CREATE获取文件路径并保存IRP_MJ_WRITE中获取路径文件路径在minifilter中,主要处理的是各种IRP,做DLP也好,做加解密也好。文件路径总是绕不开的。比如在IRP_MJ_WRITE中,绝大多数情况都得知道当前这次操作的文件路径...

2018-12-20 09:00:26

FileMapping写的内容什么时候会flush到磁盘?

FileMapping写的内容什么时候会flush到磁盘?FileMapping写文件什么时候写入磁盘?强迫操作系统写入磁盘FileMapping写文件这是个简单的file mapping 写文件例子:void TestIOFileMapping() { HANDLE hFile; hFile = CreateFile(L"testfilemapping.foo", ...

2018-12-18 14:50:00

Minifilter 拦截FileMapping IO事件

Minifilter 拦截FileMapping IO事件IO类型Minifilter拦截FileMapping拦截结论IO类型在Windows上一般常见的两种IO:普通IO, 如通过ReadFile,WriteFile等Windows API进行读写FileMapping,通过CreateFile打开一个文件,然后通过CreateFileMapping创建FileMapping对象,通...

2018-12-18 09:15:42

HTTP - WEB 基础 (3)

web开发就是基于HTTP的。那么一个典型的WEB开发是怎么样的呢?HTML页面先整个HTML静态页面,如下:MyTestTest Image Upload Select Image Test login User name: Password:

2016-08-23 18:32:29

HTTP - TCP实现HTTP GET请求 (2)

我们尝试用TCP来实现HTTP GET基本TCP通信首先写一段TCP通信的例子。这是一些测试代码,不要看代码质量,我们目的只是验证。服务器:先写个服务器,这里用了select。// SelectServer.cpp : Defines the entry point for the console application.//#include "stdafx.h"

2016-08-22 17:13:28

HTTP - 基本知识 (1)

HTTP 应该说是最常见的应用层协议了。现在绝大多数的app都是使用HTTP和服务器通信的吧。在讲HTTP之前应该先对网络通信有个初步的了解。OSI 七层网络模型学过《网络原理》的人都知道网络有7层模型,如下:实际上,很多人觉得这7层模型太累赘了,更常见的是TCP/IP四层模型。TCP/IP四层模型一般我们只要知道这四层就行了。这4层,每层都有对

2016-08-22 14:10:15

Lex/Yacc Lex结合Yacc

这次就来尝试lex结合yacc。简单lex先写个简单lex,如下:%{#include "name.tab.h"#include #include extern char* yylval;%}char [A-Za-z]num [0-9]eq [=]name {char}+age {num}+%%{name} { yylval = strdup(yytext);

2016-06-11 00:15:11

Lex/Yacc 初识Lex

因工作需要接触了一下Lex和Yacc,个人感觉挺有趣的,所以就写下来了。Lex是Lexical的缩写,大概就可以理解为词汇提取。Yacc是Yet another compiler compiler, 可以翻译为“还有另一个编译器的编译器”,挺拗口的,不过没关系,先不管它。安装Lex和YaccLex和Yacc是一种标准,当然会有很多的实现了,其中有2个是免费的(好像还有商业版本),那

2016-06-10 23:32:28

AsyncTask 坑 (四) 多个task是串行执行还是并行的

AsyncTask作为一个优秀的封装,很多人都在用,可是我估计很多人并不清楚多个AsyncTask对象到底是串行执行的,还是并行执行的,如果是并行的,那么最多同时执行几个异步任务呢?源码面前无秘密,我们看一下源代码就知道了。这里以Android-23为例。AyncTask调用例子 AsyncTask task = new AsyncTask() {

2016-06-09 21:12:49

AsyncTask 坑 (三)AsyncTask对象多次执行

经常看到网上有这种面试题目:一个AsyncTask对象能不能被多次执行?其实,想知道答案,最好的办法就是看文档说明,要是文档说不行那就是不行,行就是行。如果想知道的更多,那就看代码呗。AsyncTask的execute函数excute是用来启动一个异步任务的API,先看看这个函数, @MainThread public final AsyncTask ex

2016-05-29 13:17:01

AsyncTask 坑 (二) AsyncTask对象生命周期

当我第一次看到AsyncTask的调用代码时候,我第一感就有个疑问。 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

2016-05-25 16:38:57

AsyncTask 坑(一) 哪些线程可以调用AsyncTask

看到很多文章说,只有主线程(UI线程)可以创建AsyncTask。个人觉得这个说法不对。从AsyncTask的角度讲,任何线程都可以创建并且使用AsyncTask。之所以会有主线程才能创建AsyncTask的说法,我想无非是onPostExecute, onProgressUpdate等回调里面想操作UI吧。假如一个后台线程创建了一个AsyncTask对象,并且使用它,那么当任务完成后,通过han

2016-05-24 20:40:16

AsyncTask - 基本原理 后台线程和UI线程的交互

前面一个文章大概描述了一下任务是怎么被执行的?http://blog.csdn.net/zj510/article/details/51485120其实也就是AsyncTask里面的doInBackground怎么通过FutureTask和WorkerRunnable在ThreadPoolExecutor的某个线程里面执行的。那么执行过程中和执行完毕了总要通知主调线程(主线程)吧?

2016-05-24 13:30:24

AsyncTask - 基本原理 图文剖析

最近用到了AsyncTask,这玩意每个写android程序的都会用,可是不见得每个人都能用的好。如果想要用好,那么首先势必对基本原理有个大概了解。其实网上对这类问题的说明已经很多很多了,这里我就用自己的思维整理一下。AsyncTask概述AsyncTask是google公司封装的一个轻量级的异步任务类。实际上它内部也是通过Thread + handler实现的。如果没有AsyncTask

2016-05-24 00:16:08

MQTT协议 - Mosquitto安装测试

http://blog.csdn.net/xukai871105/article/details/39252653

2016-05-15 16:16:41

IOS 静态库/动态库 简单说明

http://my.oschina.net/u/2361492/blog/483689?p=1

2015-09-22 17:11:08

接口和抽象类的区别,这种题目有意思吗?

仁者见仁,知者见者。个人观点,无需纠结。http://www.csdn.net/article/2015-09-15/2825699

2015-09-16 15:55:28

随手写了一段C++访问LDAP, 并且获取sid的代码

直接上代码,获取sid,并且转换成字符串形式。没有仔细优化代码,这只能是一段demo代码,但是能跑成功。跟大家share一下。// LDAPTest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include "Winldap.h"#include

2015-09-07 11:54:14

ARC中的block

在arc之后,block变得更加简单了。只有global和heap block了,原来的stack block没有了。从log里面清楚的看到,原来非arc的stack block变成了mallocblock,也就是常说的堆block。然后我们看看car对象的释放:很清楚car的dealloc的调用是在Block2释放以后。那么也就是说,我们在Block2=Block

2015-09-06 16:50:31

查看更多

勋章 我的勋章
    暂无奖章