我试图运行从Microsoft这里提供的微过滤器示例之一:https://github.com/Microsoft/Windows-driver-samples/tree/master/filesys/miniFilter/passThrough
我不知道这是什么微过滤器应该做的(文档不是很大),但对于初学者来说,如果我可以看到从DbgPrint()
语句的输出,我会很高兴。在运行的Sysinternals的DebugView作为管理员,我做了fltmc load passthrough
和fltmc unload passthrough
,却没有看到从过滤器的任何输出。我知道至少对应于代码卸载功能的功能有DbgPrint()
消息:
PT_DBG_PRINT( PTDBG_TRACE_ROUTINES,
("PassThrough!PtUnload: Entered\n") );
我应该看到这些消息?如果是这样,怎么样?如果没有,我怎么能调试微过滤器的发展?
PS:我没有定义注册表项这里建议:https://www.danclarke.com/debugview
请确保您已启用“捕获内核”下的捕获下拉菜单,而不是“捕捉全球的Win32”这是你的文章链接我们提到的内容。
至于你联系我们的文件系统微过滤设备驱动程序样本,有很多围绕在可在MSDN过滤管理器驱动程序的开发文档。
如果你去与微软的样本驱动程序的开发盲目,你真的不能指望明白这一切是如何工作的,用手指的点击......这是用户模式的发展是非常不同的,你会从首发再次底部。
看看源代码PT_DBG_PRINT宏:
#define PT_DBG_PRINT( _dbgLevel, _string ) \
(FlagOn(gTraceFlags,(_dbgLevel)) ? \
DbgPrint _string : \
((int)0))
有用于检查gTraceFlags变量的条件。默认情况下,gTraceFlags是0,所以只设置变量,使DbgPrint,例如:
ULONG gTraceFlags = PTDBG_TRACE_ROUTINES;