windows 64位创建DMA适配器失败!!!

三人用菜 2016-03-17 02:27:54
//设置DMA数据缓冲区地址边界:16字节对齐
WdfDeviceSetAlignmentRequirement( Device, FILE_OCTA_ALIGNMENT );
//
// Create a new DMA Enabler instance. //
//创建一个DMA适配器 WDF_DMA_ENABLER_CONFIG_INIT( &dmaConfig, WdfDmaProfilePacket, MAXNLEN ); status = WdfDmaEnablerCreate( Device,
&dmaConfig,
WDF_NO_OBJECT_ATTRIBUTES,
&pDeviceContext->DmaEnabler );
if (!NT_SUCCESS (status)) {
DbgPrint("WdfDmaEnablerCreate failed: %!STATUS!\n", status);
return status; }

dbgview打印出错的地方就是创建适配器失败,但是在32位系统中是成功的,在64位上就这样了
...全文
287 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgfcs 2016-04-09
  • 打赏
  • 举报
回复
碰到过类似问题,是用VMware虚拟机调试时,加载DMA就出错。后来舍弃虚拟机,用实际硬件板卡,就创建成功了 —— 个人怀疑,也许是DMA初始化是需要实际硬件支持才行?

21,619

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 驱动开发/核心开发
社区管理员
  • 驱动开发/核心开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧