阅读:1984回复:1
minifilter中使用FltReadFile导致IRQL_NOT_LESS_OR_EQUAL
我在minifilter结构下的postCreate函数中调用FltReadFile来读文件,在启动NTFS的碎片整理程序dfrgntfs.exe时会出现蓝屏IRQL_NOT_LESS_OR_EQUAL,分析dump文件发现定位到FltReadFile处,于是将FltReadFile注释掉后蓝屏现象消失,FltReadFile需要在PASSIVE下运行,可是我代码里没有提升IRQL的地方,所有分配内存的地方也是非分页的,部分代码如下,这个问题困扰很多天了,希望各位大神能够给予指导
NTSTATUS MFEReadEnHeader( IN PFLT_INSTANCE Instance, IN PFILE_OBJECT FileObject, IN ULONG BufLength, OUT PVOID HeadInfo ) { ULONG BytesRead=0; LARGE_INTEGER ByteOffset; ByteOffset.QuadPart = 0; if (KeGetCurrentIrql()<APC_LEVEL) { return FltReadFile(Instance, FileObject, &ByteOffset, BufLength, HeadInfo, FLTFL_IO_OPERATION_NON_CACHED, &BytesRead, NULL, NULL ); } else { return STATUS_UNSUCCESSFUL; } } |
|
沙发#
发布于:2014-11-25 20:19
Any help will be appreciated?
|
|