pastroal
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2005-09-30
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:986回复:0

各位大侠请进来。

楼主#
更多 发布于:2002-12-05 11:01
我的驱动程序是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的?
游客

返回顶部