if (FCB->ConnectOptions)
{
- ExFreePool(FCB->ConnectOptions);
+ ExFreePoolWithTag(FCB->ConnectOptions, TAG_AFD_CONNECT_OPTIONS);
FCB->ConnectOptions = NULL;
FCB->ConnectOptionsSize = 0;
FCB->FilledConnectOptions = 0;
}
- FCB->ConnectOptions = ExAllocatePool(PagedPool, ConnectOptionsSize);
+ FCB->ConnectOptions = ExAllocatePoolWithTag(PagedPool,
+ ConnectOptionsSize,
+ TAG_AFD_CONNECT_OPTIONS);
+
if (!FCB->ConnectOptions)
return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
if (FCB->ConnectOptions)
{
- ExFreePool(FCB->ConnectOptions);
+ ExFreePoolWithTag(FCB->ConnectOptions, TAG_AFD_CONNECT_OPTIONS);
FCB->ConnectOptionsSize = 0;
FCB->FilledConnectOptions = 0;
}
- FCB->ConnectOptions = ExAllocatePool(PagedPool, *ConnectOptionsSize);
+ FCB->ConnectOptions = ExAllocatePoolWithTag(PagedPool,
+ *ConnectOptionsSize,
+ TAG_AFD_CONNECT_OPTIONS);
+
if (!FCB->ConnectOptions) return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
FCB->ConnectOptionsSize = *ConnectOptionsSize;
if (FCB->ConnectData)
{
- ExFreePool(FCB->ConnectData);
+ ExFreePoolWithTag(FCB->ConnectData, TAG_AFD_CONNECT_DATA);
FCB->ConnectData = NULL;
FCB->ConnectDataSize = 0;
FCB->FilledConnectData = 0;
}
- FCB->ConnectData = ExAllocatePool(PagedPool, ConnectDataSize);
+ FCB->ConnectData = ExAllocatePoolWithTag(PagedPool,
+ ConnectDataSize,
+ TAG_AFD_CONNECT_DATA);
+
if (!FCB->ConnectData) return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
RtlCopyMemory(FCB->ConnectData,
if (FCB->ConnectData)
{
- ExFreePool(FCB->ConnectData);
+ ExFreePoolWithTag(FCB->ConnectData, TAG_AFD_CONNECT_DATA);
FCB->ConnectDataSize = 0;
FCB->FilledConnectData = 0;
}
- FCB->ConnectData = ExAllocatePool(PagedPool, *ConnectDataSize);
+ FCB->ConnectData = ExAllocatePoolWithTag(PagedPool,
+ *ConnectDataSize,
+ TAG_AFD_CONNECT_DATA);
+
if (!FCB->ConnectData) return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
FCB->ConnectDataSize = *ConnectDataSize;
/* Allocate the receive area and start receiving */
if (!FCB->Recv.Window)
{
- FCB->Recv.Window = ExAllocatePool( PagedPool, FCB->Recv.Size );
+ FCB->Recv.Window = ExAllocatePoolWithTag(PagedPool,
+ FCB->Recv.Size,
+ TAG_AFD_DATA_BUFFER);
+
if( !FCB->Recv.Window ) return STATUS_NO_MEMORY;
}
if (!FCB->Send.Window)
{
- FCB->Send.Window = ExAllocatePool( PagedPool, FCB->Send.Size );
+ FCB->Send.Window = ExAllocatePoolWithTag(PagedPool,
+ FCB->Send.Size,
+ TAG_AFD_DATA_BUFFER);
+
if( !FCB->Send.Window ) return STATUS_NO_MEMORY;
}
TDI_RECEIVE_NORMAL,
FCB->Recv.Window,
FCB->Recv.Size,
- &FCB->ReceiveIrp.Iosb,
ReceiveComplete,
FCB );
if( FCB->Flags & AFD_ENDPOINT_CONNECTIONLESS )
{
- if( FCB->RemoteAddress ) ExFreePool( FCB->RemoteAddress );
+ if (FCB->RemoteAddress)
+ {
+ ExFreePoolWithTag(FCB->RemoteAddress, TAG_AFD_TRANSPORT_ADDRESS);
+ }
+
FCB->RemoteAddress =
TaCopyTransportAddress( &ConnectReq->RemoteAddress );
return LeaveIrpUntilLater( FCB, Irp, FUNCTION_CONNECT );
case SOCKET_STATE_CREATED:
- if( FCB->LocalAddress ) ExFreePool( FCB->LocalAddress );
+ if (FCB->LocalAddress)
+ {
+ ExFreePoolWithTag(FCB->LocalAddress, TAG_AFD_TRANSPORT_ADDRESS);
+ }
+
FCB->LocalAddress =
TaBuildNullTransportAddress( ConnectReq->RemoteAddress.Address[0].AddressType );
/* Drop through to SOCKET_STATE_BOUND */
case SOCKET_STATE_BOUND:
- if( FCB->RemoteAddress ) ExFreePool( FCB->RemoteAddress );
+ if (FCB->RemoteAddress)
+ {
+ ExFreePoolWithTag(FCB->RemoteAddress, TAG_AFD_TRANSPORT_ADDRESS);
+ }
+
FCB->RemoteAddress =
TaCopyTransportAddress( &ConnectReq->RemoteAddress );
if( !NT_SUCCESS(Status) )
break;
- if (FCB->ConnectReturnInfo) ExFreePool(FCB->ConnectReturnInfo);
+ if (FCB->ConnectReturnInfo)
+ {
+ ExFreePoolWithTag(FCB->ConnectReturnInfo, TAG_AFD_TDI_CONNECTION_INFORMATION);
+ }
+
Status = TdiBuildConnectionInfo
( &FCB->ConnectReturnInfo,
&ConnectReq->RemoteAddress );
if( NT_SUCCESS(Status) )
{
- if (FCB->ConnectCallInfo) ExFreePool(FCB->ConnectCallInfo);
+ if (FCB->ConnectCallInfo)
+ {
+ ExFreePoolWithTag(FCB->ConnectCallInfo, TAG_AFD_TDI_CONNECTION_INFORMATION);
+ }
+
Status = TdiBuildConnectionInfo(&FCB->ConnectCallInfo,
&ConnectReq->RemoteAddress);
}
FCB->Connection.Object,
FCB->ConnectCallInfo,
FCB->ConnectReturnInfo,
- &FCB->ConnectIrp.Iosb,
StreamSocketConnectComplete,
FCB );
}