阅读:918回复:0
DS2.7 自己创建的MDL, 蓝屏。 谢谢!
想用自己的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上访问分页内存,可我分配的是非分页的! |
|