Author: cgutman
Date: Fri Aug  7 17:00:42 2009
New Revision: 42467

URL: http://svn.reactos.org/svn/reactos?rev=42467&view=rev
Log:
 - Call IoCompleteRequest to free IRPs created by IoBuildDeviceIoControlRequest
 - Fixes bug 4770

Modified:
    trunk/reactos/drivers/network/afd/afd/tdi.c

Modified: trunk/reactos/drivers/network/afd/afd/tdi.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/afd/afd/tdi.c?rev=42467&r1=42466&r2=42467&view=diff
==============================================================================
--- trunk/reactos/drivers/network/afd/afd/tdi.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/afd/afd/tdi.c [iso-8859-1] Fri Aug  7 
17:00:42 2009
@@ -833,7 +833,7 @@
                         *Irp);          /* Use IRP */
     if (!Mdl) {
         AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
         *Irp = NULL;
         return STATUS_INSUFFICIENT_RESOURCES;
     }
@@ -843,7 +843,7 @@
     } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
         AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
                IoFreeMdl(Mdl);
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
         *Irp = NULL;
         _SEH2_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
     } _SEH2_END;
@@ -914,7 +914,7 @@
                         *Irp);          /* Use IRP */
     if (!Mdl) {
         AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
         *Irp = NULL;
         return STATUS_INSUFFICIENT_RESOURCES;
     }
@@ -926,7 +926,7 @@
     } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
         AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
                IoFreeMdl(Mdl);
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
                *Irp = NULL;
                _SEH2_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
     } _SEH2_END;
@@ -1014,7 +1014,7 @@
                         *Irp);          /* Use IRP */
     if (!Mdl) {
         AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
         *Irp = NULL;
         return STATUS_INSUFFICIENT_RESOURCES;
     }
@@ -1024,7 +1024,7 @@
     } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
         AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
                IoFreeMdl(Mdl);
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
         *Irp = NULL;
         _SEH2_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
     } _SEH2_END;
@@ -1113,7 +1113,7 @@
 
     if (!Mdl) {
         AFD_DbgPrint(MIN_TRACE, ("Insufficient resources.\n"));
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
         *Irp = NULL;
         return STATUS_INSUFFICIENT_RESOURCES;
     }
@@ -1123,7 +1123,7 @@
     } _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) {
         AFD_DbgPrint(MIN_TRACE, ("MmProbeAndLockPages() failed.\n"));
                IoFreeMdl(Mdl);
-        IoFreeIrp(*Irp);
+        IoCompleteRequest(*Irp, IO_NO_INCREMENT);
         *Irp = NULL;
         _SEH2_YIELD(return STATUS_INSUFFICIENT_RESOURCES);
     } _SEH2_END;


Reply via email to