阅读:3198回复:7
NT/2k文件监控Driver
路大虾及诸位高手:
你们好. 我现在NT/2k下做一个监视C盘所有的读文件的driver. 当一个读 IRP过来的时候, 我看到它的Mdlddress和SystemBuffer域是空的.当这个IRP回来的时候(也就是IO管理器调我的完成例程时), 有时候它的IRQL是APC level, 有时候是PASSIVE level. 在APC level时, IRP的MdlAddress域有一个指针, 但如果我引用它, 就会宕机. 请问这时候数据放在什么地方? 如何取得数据? 谢谢 |
|
沙发#
发布于:2001-06-20 22:42
先看一下FASTFAT的例子吧.
|
|
|
板凳#
发布于:2001-06-21 10:38
谢谢!
但不知您说的例子在什么地方? |
|
地板#
发布于:2001-06-22 13:11
IFS KIT
|
|
|
地下室#
发布于:2001-06-26 10:42
#define CdMapUserBuffer(IC, UB) { \
*(UB) = (PVOID) ( ((IC)->MdlAddress == NULL) ? \ (IC)->UserBuffer : \ (MmGetSystemAddressForMdlSafe( (IC)->MdlAddress, NormalPagePriority))); \ } PVOID UserBuffer; CdMapUserBuffer(Irp, &UserBuffer); [lushan 编辑于 2001-06-26 10:46] |
|
5楼#
发布于:2001-06-26 11:46
十分感谢! 好象还有新的问题能在向您请叫吗?
|
|
6楼#
发布于:2001-06-26 15:44
像lushan说的那样我试过但根本不行, 有时候获得的数据缓冲区是在fxxxxxxx, 这是一个非法地址. lu0说的fastfat我也看过, 但实在是也没找到如何解决, 那位大虾能帮帮忙!
|
|
7楼#
发布于:2001-07-09 21:24
|
|