Protocol Driver: NDIS6x NBL with preallocated buffer!


I am writing a protocol driver in NDIS6X.

For the following code sequence want to know the if the MDL chain is also freed (i.e IoFreeMdl() called on it). I am yet to get to teh stage to test this, so want to know in advance and if yes, code to allocate NB’s separately from a NBL.

ParametersNBL.fAllocateNetBuffer = TRUE;
pOpenContext->SendPool = NdisAllocateNetBufferListPool(Globals.NdisProtocolHandle, &ParametersNBL);

pFrame = NdisAllocateNetBufferAndNetBufferList(pOpenContext->SendPool,
sizeof(SEND_RSVD), //Request control offset delta
0, // back fill size
0, // Data offset, MsgLength);

NdisAllocateNetBufferAndNetBufferList(pFrame );

In the above call, will the MDL chain (I might at atmost 3 mdl’s in it) also be freed i.e IOFreeMDL will be called ??

Please let me know.


Sorry the last line shud be NdisFreeNetBufferList(pFrame) instead …