佚名通过本文主要向大家介绍了win764bit,win764bit是什么意思,电脑蓝屏怎么解决,电脑蓝屏,蓝屏修复工具等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 求助: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
);
该问题已经困扰我很久了,望各位大神相助,不胜感激!
描述:
本帖最后由 wl1136 于 2016-05-01 17:20:59 编辑
各位小伙伴,大家好,本人在开发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
);
该问题已经困扰我很久了,望各位大神相助,不胜感激!