阅读:1285回复:4
分配Buffer Pool的问题,请大侠指教
修改Passthru的代码,拷贝接收报文,这样需要在初始化的时候分配Buffer Pool,我在MpInitialize中加入如下代码:
NDIS_HANDLE BufferPoolHandle; NDIS_STATUS Status; …………………… NdisAllocateBufferPool( &Status, &BufferPoolHandle, 100); DbgPrint(\"Allocate Buffer Pool,Handle = %lu.\\n\",BufferPoolHandle); ……………… 打出来的接过是Handle为 0! 改在PtBindAdapter中进行这个操作,结果一样~~~~~~~~~~ 没有添加其他代码。 但是分配Packt Pool的操作没有问题。 而且这个BufferPool的确不可用,会导致死机。 由于这个函数总是返回Status=NDIS_STATUS_SUCCESS,所以不知道失败的原因何在~~~~~~~~~ 有哪位遇到过这样的问题吗?请各位大侠指教如何解决。 |
|
沙发#
发布于:2003-06-12 11:27
在DRIVERENTRY()中分配BUFFER POOL!
|
|
板凳#
发布于:2003-06-12 11:56
我刚刚在DriverEntry中试了一下,还是 0!
而且我的想法是每个网卡一个BufferPool,这个在DriverEntry中是没法实现的 另外,DriverEntry的反操作函数是什么,即我该在何时释放其中分配的资源,好像MpHalt是在Unbind时调用的 [编辑 - 6/12/03 by librarat] |
|
地板#
发布于:2003-06-13 13:39
老大,你要看status的状态判断是否成功,BufferPoolHandle为零也没事。不信你试试!!!
|
|
地下室#
发布于:2003-06-13 18:37
总算查出问题了
NdisAllocateBufferPool是个唬人的东西,啥事都没干,就是将两个 输出参数置0 我的问题是别的原因引起的 |
|