TI_DbgPrint(MAX_TRACE, ("Called. IPPacket (0x%X) NCE (0x%X) PathMTU (%d).\n",
IPPacket, NCE, PathMTU));
- IFC = PoolAllocateBuffer(sizeof(IPFRAGMENT_CONTEXT));
+ IFC = ExAllocatePool(NonPagedPool, sizeof(IPFRAGMENT_CONTEXT));
if (!IFC)
return STATUS_INSUFFICIENT_RESOURCES;
it for all fragments */
Data = ExAllocatePool(NonPagedPool, MaxLLHeaderSize + PathMTU);
if (!IFC->Header) {
- PoolFreeBuffer(IFC);
+ ExFreePool(IFC);
return STATUS_INSUFFICIENT_RESOURCES;
}
/* Allocate NDIS packet */
NdisAllocatePacket(&NdisStatus, &IFC->NdisPacket, GlobalPacketPool);
if (NdisStatus != NDIS_STATUS_SUCCESS) {
- ExFreePool(Data);
- PoolFreeBuffer(IFC);
+ //ExFreePool(Data); // RobD - why are we trying to free this here?, not allocated yet!
+ ExFreePool(IFC);
return STATUS_INSUFFICIENT_RESOURCES;
}
if (NdisStatus != NDIS_STATUS_SUCCESS) {
NdisFreePacket(IFC->NdisPacket);
ExFreePool(Data);
- PoolFreeBuffer(IFC);
+ ExFreePool(IFC);
return STATUS_INSUFFICIENT_RESOURCES;
}
/* There are no more fragments to transmit, so call completion handler */
NdisPacket = IFC->Datagram;
FreeNdisPacket(IFC->NdisPacket);
- PoolFreeBuffer(IFC);
+ ExFreePool(IFC);
(*PC(NdisPacket)->Complete)(PC(NdisPacket)->Context, NdisPacket, NdisStatus);
}
}