阅读:1811回复:3
FltWriteFile()也会重入?
在minifilter的postwrite历程中,调用FltWriteFile如下:
status = FltWriteFile( FltObjects->Instance, pFileObject, &ByteOffset, Data->IoStatus.Information , p2pCtx->SwappedBuffer, FLTFL_IO_OPERATION_DO_NOT_UPDATE_BYTE_OFFSET &BytesOk, NULL, NULL); 其中,FltObjects即postwrite的传入参数。 ddk文档中说,FltWriteFile请求只会发往FltObjects->Instance的下层设备,所以应该不会发生重入,可是我调试发现重入还是如期发生了,哪位前辈知道这是怎么回事? |
|
最新喜欢:yyhost |
沙发#
发布于:2008-05-15 08:36
估计不是因为重入吧,,而且,你不应该在postwrite中调用此函数,该函数工作的irql级别的被动级,你应该在DoItWhenSafe里面去做,,,
|
|
板凳#
发布于:2008-05-15 09:36
还有你的是缓冲IO,会引起PAGING WRITE,这个PAGING WRITE也会经过你的过滤驱动。
|
|
地板#
发布于:2008-05-16 10:02
引用第2楼tooflat于2008-05-15 09:36发表的 : 就是这个原因!换一下标志就好了,多谢了:) |
|