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); } }