我用的是Xilinx的ML505这块开发板,Xilinx提供的硬件代码、驱动和应用软件PCI_express_DMA_Freeware_Virtex。
这个驱动要分配一段连续的内存来读写。下面两个函数是在EvtDeviceAdd调用。 EvtDeviceAdd is called by the framework in response to AddDevice call from the PnP manager
这个驱动在windows xp下可以正常使用,但是在windows server 2003下就会出现蓝屏,错误的地方是这样一个函数:
MmMapLockedPages(devExt->Buffer2Mdl, UserMode),我用windbg调试,显示:MmUnmapLockedPages called when not at APC_LEVEL or below.