Author: arty
Date: Sat Aug 23 04:49:57 2008
New Revision: 35555
URL:
http://svn.reactos.org/svn/reactos?rev=35555&view=rev
Log:
Restore cancellation for proper socket shutdown.
Modified:
trunk/reactos/drivers/network/afd/afd/main.c
Modified: trunk/reactos/drivers/network/afd/afd/main.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/network/afd/afd/ma…
==============================================================================
--- trunk/reactos/drivers/network/afd/afd/main.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/network/afd/afd/main.c [iso-8859-1] Sat Aug 23 04:49:57 2008
@@ -155,6 +155,7 @@
VOID DestroySocket( PAFD_FCB FCB ) {
UINT i;
BOOLEAN ReturnEarly = FALSE;
+ KIRQL Irql = KeGetCurrentIrql();
PAFD_IN_FLIGHT_REQUEST InFlightRequest[IN_FLIGHT_REQUESTS];
AFD_DbgPrint(MIN_TRACE,("Called (%x)\n", FCB));
@@ -190,7 +191,9 @@
if( InFlightRequest[i]->InFlightRequest ) {
AFD_DbgPrint(MID_TRACE,("Cancelling in flight irp %d (%x)\n",
i, InFlightRequest[i]->InFlightRequest));
+ IoCancelIrp(InFlightRequest[i]->InFlightRequest);
InFlightRequest[i]->InFlightRequest = NULL;
+ IoReleaseCancelSpinLock(Irql);
}
}