PCHAR NewBuf;
if( Copy ) {
- NewBuf = exAllocatePool( NonPagedPool, Length );
+ NewBuf = ExAllocatePoolWithTag( NonPagedPool, Length, PACKET_BUFFER_TAG );
if( !NewBuf ) return NDIS_STATUS_RESOURCES;
RtlCopyMemory( NewBuf, Data, Length );
} else NewBuf = Data;
NdisAllocateBuffer( &Status, &Buffer, GlobalBufferPool, NewBuf, Length );
- if( Status != NDIS_STATUS_SUCCESS ) return Status;
+ if( Status != NDIS_STATUS_SUCCESS ) {
+ if (Copy) ExFreePoolWithTag(NewBuf, PACKET_BUFFER_TAG);
+ return Status;
+ }
NdisChainBufferAtFront( Packet, Buffer );
SkipToOffset( Buffer, Offset, DataOut, Size );
}
-NDIS_STATUS AllocatePacketWithBufferX( PNDIS_PACKET *NdisPacket,
- PCHAR Data, UINT Len,
- PCHAR File, UINT Line ) {
+NDIS_STATUS AllocatePacketWithBuffer( PNDIS_PACKET *NdisPacket,
+ PCHAR Data, UINT Len ) {
PNDIS_PACKET Packet;
PNDIS_BUFFER Buffer;
NDIS_STATUS Status;
PCHAR NewData;
- NewData = exAllocatePool( NonPagedPool, Len );
+ NewData = ExAllocatePoolWithTag( NonPagedPool, Len, PACKET_BUFFER_TAG );
if( !NewData ) return NDIS_STATUS_RESOURCES;
if( Data ) RtlCopyMemory(NewData, Data, Len);
NdisAllocatePacket( &Status, &Packet, GlobalPacketPool );
if( Status != NDIS_STATUS_SUCCESS ) {
- exFreePool( NewData );
+ ExFreePoolWithTag( NewData, PACKET_BUFFER_TAG );
return Status;
}
- TrackWithTag(NDIS_PACKET_TAG, Packet, File, Line);
NdisAllocateBuffer( &Status, &Buffer, GlobalBufferPool, NewData, Len );
if( Status != NDIS_STATUS_SUCCESS ) {
- exFreePool( NewData );
+ ExFreePoolWithTag( NewData, PACKET_BUFFER_TAG );
FreeNdisPacket( Packet );
return Status;
}
- TrackWithTag(NDIS_BUFFER_TAG, Buffer, File, Line);
NdisChainBufferAtFront( Packet, Buffer );
*NdisPacket = Packet;
}
-VOID FreeNdisPacketX
-( PNDIS_PACKET Packet,
- PCHAR File,
- UINT Line )
+VOID FreeNdisPacket
+( PNDIS_PACKET Packet )
/*
* FUNCTION: Frees an NDIS packet
* ARGUMENTS:
NdisGetNextBuffer(Buffer, &NextBuffer);
NdisQueryBuffer(Buffer, &Data, &Length);
TI_DbgPrint(DEBUG_PBUFFER, ("Freeing ndis buffer (0x%X)\n", Buffer));
- UntrackFL(File,Line,Buffer,NDIS_BUFFER_TAG);
NdisFreeBuffer(Buffer);
TI_DbgPrint(DEBUG_PBUFFER, ("Freeing exal buffer (0x%X)\n", Data));
- exFreePool(Data);
+ ExFreePoolWithTag(Data, PACKET_BUFFER_TAG);
}
/* Finally free the NDIS packet discriptor */
- UntrackFL(File,Line,Packet,NDIS_PACKET_TAG);
NdisFreePacket(Packet);
}