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/mai... ============================================================================== --- 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); } }