阅读:1950回复:1
求助windows驱动DMA操作的一些问题
哪位大神整过windows驱动中关于DMA操作中调用AllocateCommonBuffer函数分配很大一块内存(>1GB)的问题。
直接分配这么大的缓冲区,机子直接蓝屏,系统地址池中没有这么大的连续物理内存。 按照MSDN文档上的提醒:As the DDK suggests, therefore, it’s better to make several requests for smaller blocks if the blocks don’t have to be contiguous. 我试着多调用几次AllocateCommonBuffer来分配物理内存,但是由于函数中需要传入DMA适配器对象作为参数,我每分配一次就把之前分配好的挂载在这个DMA适配器上的内存给覆盖掉了。我现在的问题是: 一个设备只能创建一个DMA适配器吗?这个地方所说的多申请几次要怎么实现? |
|
沙发#
发布于:2011-06-03 20:58
不清楚设备是不是只能创建一个DMA适配器 不过AllocateCommonBuffer申请的内存怎么会存在覆盖呢?
|
|