yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1478回复:2

关于共享内存的分配问题,给高分!!!

楼主#
更多 发布于:2003-11-04 18:52
我在passthru的MPInitialize例程中实现共享内存分配,可就是分配不了呢?代码如下:

Status = NdisMInitializeScatterGatherDma(MiniportAdapterHandle,FALSE,0x1000);

if (Status != NDIS_STATUS_SUCCESS)
    return NDIS_STATUS_FAILURE;//这块成功了

pAdapt->SharedMemorySize = 1024*4;//get from registry.

if (pAdapt->SharedMemorySize)
{
    NdisMAllocateSharedMemory(MiniportAdapterHandle,pAdapt->SharedMemorySize,TRUE,&pAdapt->SharedMemoryPtr,&pAdapt->SharedMemoryPhysicalAddress);

if (pAdapt->SharedMemoryPtr == NULL)
{
    DBGPRINT(\"!!!!! Could not allocate shared memory.\\n\");  
}
else
{
NdisZeroMemory(pAdapt->SharedMemoryPtr,pAdapt->SharedMemorySize);
}
}

//输出结果是:!!!!! Could not allocate shared memory.
//点解啊?????????
成功不是天上掉下来的免费的丰盛的晚餐!
Denning
驱动牛犊
驱动牛犊
  • 注册日期2002-02-07
  • 最后登录2004-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-11-05 11:05
据我的实验, NdisMAllocateSharedMemory func 只有在真正的 Nic 中才能使用, 对于虚拟的 Nic 或者 Intermediate Ndis Driver 中好像都不可使用.
未之思也 夫何远之有? --------------------
yongliliu
驱动小牛
驱动小牛
  • 注册日期2003-10-20
  • 最后登录2007-09-28
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-11-05 14:35
在中间层驱动很多都用共享内存的哦,可能是出于性能提高所在的考虑吧,不过我已经解决不能分配的问题了。;)
成功不是天上掉下来的免费的丰盛的晚餐!
游客

返回顶部