[ros-diffs] [cgutman] 42467: - Call IoCompleteRequest to free IRPs created by IoBuildDeviceIoControlRequest - Fixes bug 4770

cgutman at svn.reactos.org cgutman at svn.reactos.org
Fri Aug 7 17:00:43 CEST 2009


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;




More information about the Ros-diffs mailing list