VS2013里面有向导可以直接创建一个minifilter驱动,这简化了很多工作,不像以前往往是从一个现有驱动代码里面copy一下,然后修改。VS2013的向导可以生成代码框架和inf文件,这让程序员减少很多繁琐的工作。
使用向导创建一个minifilter工程
太容易了,傻瓜式的一步创建。
点击ok,打开MyMiniFilter.c,更改下面的代码:
/*
#define PT_DBG_PRINT( _dbgLevel, _string ) \
(FlagOn(gTraceFlags,(_dbgLevel)) ? \
DbgPrint _string : \
((int)0))*/
#define PT_DBG_PRINT( _dbgLevel, _string ) \
DbgPrint _string
向导生成的Log有一些条件,我们测试的话,就改成无条件打印好了。
然后弄一个filter,向导已经生成了一些代码,但是用 if 0 禁掉了。我们启用一个Write的过滤,如:
CONST FLT_OPERATION_REGISTRATION Callbacks[] = {
{ IRP_MJ_WRITE,
0,
MyMiniFilterPreOperation,
MyMiniFilterPostOperation },
#if 0 // TODO - List all of the requests to filter.
{ IRP_MJ_CREATE,
0,
MyMiniFilterPreOperation,
MyMiniFilterPostOperation },
{ IRP_MJ_CREATE_NAMED_PIPE,
0,
MyMiniFilterPreOperation,
MyMiniFilterPostOperation },
{ IRP_MJ_CLOSE,
0,
MyMiniFi