微型过滤器功能是否需要启用APC?

问题描述:

需要在启用APC的情况下在PASSIVE_LEVEL上调用许多与文件一起使用的Zw *函数(例如ZwCreateFile):http://msdn.microsoft.com/en-us/library/ff566424%28VS.85%29.aspx。这是因为,在内部,I/O操作是异步的,操作的完成通过APC传递(如果我错了,请纠正我)。微型过滤器功能是否需要启用APC?

然而,对于从一个微过滤器类似的功能的文件(如FltCreateFileFltReadFile等)没有指定的APC应该启用。在禁用APC的情况下调用FltCreateFile/FltReadFile是否安全?

谢谢!

您只能在PASSIVE_LEVEL和启用特殊内核APC(可以禁用正常内核APC)时调用ZwCreateFileFltCreateFile

+2

“例如,任何依赖I/O完成例程的例程(例如IoVolumeDeviceToDosName)必须在启用特殊内核APC的情况下调用。” - Windows驱动程序工具包:内核模式驱动程序体系结构,禁用APC。 – 2010-05-05 07:32:15