if (FCB->DisconnectOptions)
{
- ExFreePool(FCB->DisconnectOptions);
+ ExFreePoolWithTag(FCB->DisconnectOptions, TAG_AFD_DISCONNECT_OPTIONS);
FCB->DisconnectOptions = NULL;
FCB->DisconnectOptionsSize = 0;
FCB->FilledDisconnectOptions = 0;
}
- FCB->DisconnectOptions = ExAllocatePool(PagedPool, DisconnectOptionsSize);
+ FCB->DisconnectOptions = ExAllocatePoolWithTag(PagedPool,
+ DisconnectOptionsSize,
+ TAG_AFD_DISCONNECT_OPTIONS);
+
if (!FCB->DisconnectOptions)
return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
if (FCB->DisconnectOptions)
{
- ExFreePool(FCB->DisconnectOptions);
+ ExFreePoolWithTag(FCB->DisconnectOptions, TAG_AFD_DISCONNECT_OPTIONS);
FCB->DisconnectOptionsSize = 0;
FCB->FilledDisconnectOptions = 0;
}
- FCB->DisconnectOptions = ExAllocatePool(PagedPool, *DisconnectOptionsSize);
+ FCB->DisconnectOptions = ExAllocatePoolWithTag(PagedPool,
+ *DisconnectOptionsSize,
+ TAG_AFD_DISCONNECT_OPTIONS);
+
if (!FCB->DisconnectOptions) return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
FCB->DisconnectOptionsSize = *DisconnectOptionsSize;
if (FCB->DisconnectData)
{
- ExFreePool(FCB->DisconnectData);
+ ExFreePoolWithTag(FCB->DisconnectData, TAG_AFD_DISCONNECT_DATA);
FCB->DisconnectData = NULL;
FCB->DisconnectDataSize = 0;
FCB->FilledDisconnectData = 0;
}
- FCB->DisconnectData = ExAllocatePool(PagedPool, DisconnectDataSize);
+ FCB->DisconnectData = ExAllocatePoolWithTag(PagedPool,
+ DisconnectDataSize,
+ TAG_AFD_DISCONNECT_DATA);
+
if (!FCB->DisconnectData)
return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
if (FCB->DisconnectData)
{
- ExFreePool(FCB->DisconnectData);
+ ExFreePoolWithTag(FCB->DisconnectData, TAG_AFD_DISCONNECT_DATA);
FCB->DisconnectDataSize = 0;
FCB->FilledDisconnectData = 0;
}
- FCB->DisconnectData = ExAllocatePool(PagedPool, *DisconnectDataSize);
+ FCB->DisconnectData = ExAllocatePoolWithTag(PagedPool,
+ *DisconnectDataSize,
+ TAG_AFD_DISCONNECT_DATA);
+
if (!FCB->DisconnectData)
return UnlockAndMaybeComplete(FCB, STATUS_NO_MEMORY, Irp, 0);
AFD_DbgPrint(MID_TRACE,("About to allocate the new FCB\n"));
- FCB = ExAllocatePool(NonPagedPool, sizeof(AFD_FCB));
+ FCB = ExAllocatePoolWithTag(NonPagedPool, sizeof(AFD_FCB), TAG_AFD_FCB);
if( FCB == NULL ) {
Irp->IoStatus.Status = STATUS_NO_MEMORY;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
if( ConnectInfo ) {
FCB->TdiDeviceName.Length = ConnectInfo->SizeOfTransportName;
FCB->TdiDeviceName.MaximumLength = FCB->TdiDeviceName.Length;
- FCB->TdiDeviceName.Buffer =
- ExAllocatePool( NonPagedPool, FCB->TdiDeviceName.Length );
+ FCB->TdiDeviceName.Buffer = ExAllocatePoolWithTag(NonPagedPool,
+ FCB->TdiDeviceName.Length,
+ TAG_AFD_TRANSPORT_ADDRESS);
if( !FCB->TdiDeviceName.Buffer ) {
- ExFreePool(FCB);
+ ExFreePoolWithTag(FCB, TAG_AFD_FCB);
AFD_DbgPrint(MID_TRACE,("Could not copy target string\n"));
Irp->IoStatus.Status = STATUS_NO_MEMORY;
IoCompleteRequest( Irp, IO_NETWORK_INCREMENT );
}
if( !NT_SUCCESS(Status) ) {
- if( FCB->TdiDeviceName.Buffer ) ExFreePool( FCB->TdiDeviceName.Buffer );
- ExFreePool( FCB );
+ if (FCB->TdiDeviceName.Buffer)
+ {
+ ExFreePoolWithTag(FCB->TdiDeviceName.Buffer, TAG_AFD_TRANSPORT_ADDRESS);
+ }
+ ExFreePoolWithTag(FCB, TAG_AFD_FCB);
FileObject->FsContext = NULL;
}
ObDereferenceObject(Qelt->Object.Object);
ZwClose(Qelt->Object.Handle);
- ExFreePool(Qelt);
+ ExFreePoolWithTag(Qelt, TAG_AFD_ACCEPT_QUEUE);
}
SocketStateUnlock( FCB );
if( FCB->EventSelect )
ObDereferenceObject( FCB->EventSelect );
- if( FCB->Context )
- ExFreePool( FCB->Context );
+ if (FCB->Context)
+ ExFreePoolWithTag(FCB->Context, TAG_AFD_SOCKET_CONTEXT);
- if( FCB->Recv.Window )
- ExFreePool( FCB->Recv.Window );
+ if (FCB->Recv.Window)
+ ExFreePoolWithTag(FCB->Recv.Window, TAG_AFD_DATA_BUFFER);
- if( FCB->Send.Window )
- ExFreePool( FCB->Send.Window );
+ if (FCB->Send.Window)
+ ExFreePoolWithTag(FCB->Send.Window, TAG_AFD_DATA_BUFFER);
- if( FCB->AddressFrom )
- ExFreePool( FCB->AddressFrom );
+ if (FCB->AddressFrom)
+ ExFreePoolWithTag(FCB->AddressFrom, TAG_AFD_TDI_CONNECTION_INFORMATION);
- if( FCB->ConnectCallInfo )
- ExFreePool( FCB->ConnectCallInfo );
+ if (FCB->ConnectCallInfo)
+ ExFreePoolWithTag(FCB->ConnectCallInfo, TAG_AFD_TDI_CONNECTION_INFORMATION);
- if( FCB->ConnectReturnInfo )
- ExFreePool( FCB->ConnectReturnInfo );
+ if (FCB->ConnectReturnInfo)
+ ExFreePoolWithTag(FCB->ConnectReturnInfo, TAG_AFD_TDI_CONNECTION_INFORMATION);
- if( FCB->ConnectData )
- ExFreePool( FCB->ConnectData );
+ if (FCB->ConnectData)
+ ExFreePoolWithTag(FCB->ConnectData, TAG_AFD_CONNECT_DATA);
- if( FCB->DisconnectData )
- ExFreePool( FCB->DisconnectData );
+ if (FCB->DisconnectData)
+ ExFreePoolWithTag(FCB->DisconnectData, TAG_AFD_DISCONNECT_DATA);
- if( FCB->ConnectOptions )
- ExFreePool( FCB->ConnectOptions );
+ if (FCB->ConnectOptions)
+ ExFreePoolWithTag(FCB->ConnectOptions, TAG_AFD_CONNECT_OPTIONS);
- if( FCB->DisconnectOptions )
- ExFreePool( FCB->DisconnectOptions );
+ if (FCB->DisconnectOptions)
+ ExFreePoolWithTag(FCB->DisconnectOptions, TAG_AFD_DISCONNECT_OPTIONS);
- if( FCB->LocalAddress )
- ExFreePool( FCB->LocalAddress );
+ if (FCB->LocalAddress)
+ ExFreePoolWithTag(FCB->LocalAddress, TAG_AFD_TRANSPORT_ADDRESS);
- if( FCB->RemoteAddress )
- ExFreePool( FCB->RemoteAddress );
+ if (FCB->RemoteAddress)
+ ExFreePoolWithTag(FCB->RemoteAddress, TAG_AFD_TRANSPORT_ADDRESS);
if( FCB->Connection.Object )
{
}
}
- if( FCB->TdiDeviceName.Buffer )
- ExFreePool(FCB->TdiDeviceName.Buffer);
+ if (FCB->TdiDeviceName.Buffer)
+ {
+ ExFreePoolWithTag(FCB->TdiDeviceName.Buffer, TAG_AFD_TRANSPORT_ADDRESS);
+ }
- ExFreePool(FCB);
+ ExFreePoolWithTag(FCB, TAG_AFD_FCB);
Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = 0;
FCB->Connection.Object,
&FCB->DisconnectTimeout,
FCB->DisconnectFlags,
- &FCB->DisconnectIrp.Iosb,
DisconnectComplete,
FCB,
FCB->ConnectCallInfo,
return UnlockAndMaybeComplete(FCB, STATUS_INVALID_PARAMETER, Irp, 0);
}
- ExFreePool(FCB->RemoteAddress);
+ ExFreePoolWithTag(FCB->RemoteAddress, TAG_AFD_TRANSPORT_ADDRESS);
FCB->RemoteAddress = NULL;
}