Fix send function as well to properly deallocate the irp on failure on

MmProbeAndLockPages.

svn path=/trunk/; revision=11021
This commit is contained in:
Art Yerkes
2004-09-24 00:51:31 +00:00
parent 2eb5ead6ed
commit 2c75d67c33
+11 -3
View File
@@ -790,7 +790,7 @@ NTSTATUS TdiSend
PVOID CompletionContext )
{
PDEVICE_OBJECT DeviceObject;
NTSTATUS Status;
NTSTATUS Status = STATUS_SUCCESS;
PMDL Mdl;
DeviceObject = IoGetRelatedDeviceObject(TransportObject);
@@ -829,9 +829,14 @@ NTSTATUS TdiSend
} _SEH_HANDLE {
AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
IoFreeIrp(*Irp);
return STATUS_INSUFFICIENT_RESOURCES;
Status = STATUS_INSUFFICIENT_RESOURCES;
} _SEH_END;
if( !NT_SUCCESS(Status) ) {
IoFreeIrp(*Irp);
return Status;
}
AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));
TdiBuildSend(*Irp, /* I/O Request Packet */
@@ -905,7 +910,10 @@ NTSTATUS TdiReceive(
Status = STATUS_INSUFFICIENT_RESOURCES;
} _SEH_END;
if( !NT_SUCCESS(Status) ) return Status;
if( !NT_SUCCESS(Status) ) {
IoFreeIrp(*Irp);
return Status;
}
AFD_DbgPrint(MID_TRACE,("AFD>>> Got an MDL: %x\n", Mdl));