阅读:2504回复:7
NdisAllocateBufferPool问题
各位大虾:
我想在passthru的mpintialize中分配一个内存pool, 代码如下: 首先,定义全局变量: PNDIS_HANDLE MyPoolHandle; MyPoolHandle=ExAllocatePool(PagedPool,sizeof(PNDIS_HANDLE)); NdisAllocateBufferPool( &reStatus, MyPoolHandle, 2 ); 可是运行后,soft_ice显示MyPoolHandle不是null,但是 *mypoolhandle=0x0000000,为什么呢????? 请多多指点!!谢谢! |
|
最新喜欢:moqing...
|
沙发#
发布于:2001-10-24 17:26
把sizeof(PNDIS_HANDLE)改为sizeof(NDIS_HANDLE)
|
|
板凳#
发布于:2001-10-24 20:51
好像从你的这段代码看不出错误。你的reStatus是如何定义的?
|
|
|
地板#
发布于:2001-10-25 08:55
不好意思,我发现不是exallocatepool的
问题。 我现在这样做: NDIS_HANDLE MyPoolHandle; MyPoolHandle=ExAllocatePool(PagedPool,sizeof(NDIS_HANDLE)); if(MyPoolHandle!=NULL) { DBGPRINT("NdisAllocateMemoryWithTag(&MyPoolHandle, sizeof( BUFFER_POOL), TAG); success!\n"); NdisAllocateBufferPool( &reStatus, MyPoolHandle, 2 ); }现在我的MyPoolHandle就不等于NULL,但是,ddk中NdisAllocateBufferPool的第二个参数明明是要PNDIS_HANDLE, 真是奇怪!!!! 还有,我想问一下各位大虾, 我的PASSTHRU的PTRECIEVE中定义了PNDIS_PACKET rePacket; 然后NdisDprAllocatePacket发现REPACKET==NULL,这样的话 我如果调用ndistransferdata肯定会出问题的,所以,我是不 是应该先用NdisAllocateMemory给repacket分配内存空间? (我已经调用了NdisAllocateBuffer和NdisChainBufferAtFront) 请多多指点,谢谢! |
|
|
地下室#
发布于:2001-10-25 09:37
在你的后一种情况,仍然应该检查*mypoolhandle
|
|
|
5楼#
发布于:2001-10-25 15:18
我靠!不要把NDIS_HANDLE和PNDIS_HANDLE搞乱了。
原来你定义MyPoolHandle为PNDIS_HANDLE,那就要用ExAllocatePool(PagedPool,sizeof(NDIS_HANDLE))分配一个NDIS_HANDLE的空间,因为MyPoolHandle是指向NDIS_HANDLE的指针,所以,调用NdisAllocateBufferPool时的参数为MyPoolHandle。 后面一种情况,既然把MyPoolHandle定义为NDIS_HANDLE,就不须用ExAllocatePool分配空间。调用NdisAllocateBufferPool时的参数为(&MyPoolHandle)。 |
|
6楼#
发布于:2001-10-25 20:06
对的
|
|
|
7楼#
发布于:2001-10-26 11:27
从语法上讲是这样,不过他那样做其实从结果上看是可行的。
|
|
|