From f2bd7ae8a093993d952200f7d968eae6faa62d93 Mon Sep 17 00:00:00 2001 From: Art Yerkes Date: Sat, 23 Aug 2008 09:49:57 +0000 Subject: [PATCH] Restore cancellation for proper socket shutdown. svn path=/trunk/; revision=35555 --- reactos/drivers/network/afd/afd/main.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/reactos/drivers/network/afd/afd/main.c b/reactos/drivers/network/afd/afd/main.c index 1da4a927220..7938a071fcb 100644 --- a/reactos/drivers/network/afd/afd/main.c +++ b/reactos/drivers/network/afd/afd/main.c @@ -155,6 +155,7 @@ AfdCreateSocket(PDEVICE_OBJECT DeviceObject, PIRP Irp, 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 @@ VOID DestroySocket( PAFD_FCB FCB ) { 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); } }