keven007
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1733回复:2

NdisAllocateMemory的问题

楼主#
更多 发布于:2002-03-29 19:34
PVOID *pp;
status=NdisAllocateMemory(pp,sizeof(PACKET_QUEUE),0,-1);
PACKET_QUEUE 是一个结构
编译始终通不过,错误是:
error C2115: \'function\' : incompatible types
可能是最后一个参数有问题,但帮助信息指定是-1。
大侠帮忙!!
guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-03-29 23:27
因为在函数的声明里面是这样的
NDIS_STATUS
  NdisAllocateMemory(
    OUT PVOID  *VirtualAddress,
    IN UINT  Length,
    IN UINT  MemoryFlags,
    IN NDIS_PHYSICAL_ADDRESS  HighestAcceptableAddress
    );
这个NDIS_PHYSICAL_ADDRESS是一个64位的数值
不能一条语句就把一个64位的数值进行堆栈

这样是不可以的
应该这样
NDIS_PHYSICAL_ADDRESS noMaxAddr =
         DIS_PHYSICAL_ADDRESS_CONST(-1,-1);

status=NdisAllocateMemory(pp,
                        sizeof(PACKET_QUEUE),
                        0,noMaxAddr
                        );

keven007
驱动牛犊
驱动牛犊
  • 注册日期2002-03-06
  • 最后登录2002-07-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-03-30 00:15
Thank you very much, you help a lot. :)
游客

返回顶部