zhuge36
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2010-10-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望31点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:918回复:0

DS2.7 自己创建的MDL, 蓝屏。 谢谢!

楼主#
更多 发布于:2004-09-02 17:38
想用自己的MDL代替传下来的MDL。

在OnStartDevice(KIrp I)中分配非分页内存:
pBuffer = ( PUCHAR ) ExAllocatePool( NonPagedPool, 2457600);
if( pBuffer == NULL)
return STATUS_NO_MEMORY;


在Read(KIrp I)中:
.....
KMemory membuffer(pBuffer,2457600);
membuffer.LockPages(IoReadAccess,  KernelMode );

    PURB pUrb = m_Endpoint2IN.BuildBulkTransfer(
membuffer,  // Where is data coming from?
dwTotalSize,  // How much data to read?
TRUE,         // direction (TRUE = IN)
NULL      // Link to next URB
);
membuffer.UnlockPages();
............
蓝屏IRQL_NOT_LESS_OR_EQUAL,驱动程序在等于或高于DISPATCH_LEVEL的IRQL上访问分页内存,可我分配的是非分页的!
游客

返回顶部