-
-
[求助]win7 64bit内核驱动开发 蓝屏问题
-
发表于:
2016-5-1 17:18
3523
-
[求助]win7 64bit内核驱动开发 蓝屏问题
各位小伙伴,大家好,本人在开发win7 64bit内核驱动时,遇到如下问题:
本驱动需要进行DMA操作,因此在IRP_MN_START_DEVICE接口中进行DMA连续物理内存的开辟,但函数
IoGetDmaAdapter执行后,系统出现蓝屏重启现象。
奇怪的是:此驱动在某些老款主板上运行是ok的,但在某些新主板上执行发生蓝屏现象。
请教各位大侠,这可能是什么原因导致的呢?
相关代码如下:
RtlZeroMemory(&deviceDescription, sizeof(DEVICE_DESCRIPTION));
deviceDescription.Version = DEVICE_DESCRIPTION_VERSION;
deviceDescription.Master = TRUE;
deviceDescription.ScatterGather = FALSE;
deviceDescription.InterfaceType = PCIBus;
//deviceDescription.Dma32BitAddresses = TRUE;
deviceDescription.Dma64BitAddresses = TRUE;
deviceDescription.MaximumLength = 0x00020000;
pdx->MaxMapRegisters = BYTES_TO_PAGES(0x00000200); // 减少内存开辟,依然蓝屏
KdPrint(("MaxMapRegisters=0x%x\n", pdx->MaxMapRegisters));
// 下面的函数,对某些型号的主板会有蓝屏现象
pdx->DmaAdapter = IoGetDmaAdapter(
//NULL,
pdx->NextStackDevice, // 20151124
&deviceDescription,
&pdx->MaxMapRegisters
);
该问题已经困扰我很久了,望各位大神相助,不胜感激!
[课程]Android-CTF解题方法汇总!