阅读:986回复:0
各位大侠请进来。
我的驱动程序是DO_DIRECT_IO的
想在Write例程里面把IRP的MDL转成指针来访问传下来的数据,修改一下,然后传下去。 我现在就不知道如何把IRP里面的MDL转成指针。 NTSTATUS Bus_Write ( IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp ) { UCHAR *buffer; buffer = MmGetSystemAddressForMdlSafe(Irp->MdlAddress,NormalPagePriority); ... } 但是我一运行到MmGetSystemAddressForMdlSafe就蓝屏重启了。 我该怎么用MDL阿?难道驱动里面那到MDL都不能做处理直接付给下一个驱动吗? MmGetSystemAddressForMdlSafe里面说MmGetSystemAddressForMdlSafe Returns a system-space virtual address that maps the physical pages described by a given MDL for drivers whose devices must use PIO. If no virtual address exists, one is assigned。 PIO是什么意思?怎么设置自己的驱动是PIO的? |
|