diff --git a/reactos/drivers/network/afd/afd/select.c b/reactos/drivers/network/afd/afd/select.c index e525de3a499..a063eb461da 100644 --- a/reactos/drivers/network/afd/afd/select.c +++ b/reactos/drivers/network/afd/afd/select.c @@ -1,4 +1,4 @@ -/* $Id$ +/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * FILE: drivers/net/afd/afd/select.c @@ -304,9 +304,6 @@ AfdEventSelect( PDEVICE_OBJECT DeviceObject, PIRP Irp, { AFD_DbgPrint(MID_TRACE,("Setting event %x\n", FCB->EventSelect)); - /* Disable the events that triggered the select until the reenabling function is called */ - FCB->EventSelectDisabled |= (FCB->PollState & (FCB->EventSelectTriggers & ~FCB->EventSelectDisabled)); - /* Set the application's event */ KeSetEvent( FCB->EventSelect, IO_NETWORK_INCREMENT, FALSE ); } @@ -353,12 +350,15 @@ AfdEnumEvents( PDEVICE_OBJECT DeviceObject, PIRP Irp, KeClearEvent(UserEvent); ObDereferenceObject(UserEvent); - /* Copy the poll state */ - EnumReq->PollEvents = FCB->PollState; + /* Copy the poll state, masking out disabled events */ + EnumReq->PollEvents = (FCB->PollState & ~FCB->EventSelectDisabled); RtlCopyMemory( EnumReq->EventStatus, FCB->PollStatus, sizeof(EnumReq->EventStatus) ); + /* Disable the events that triggered the select until the reenabling function is called */ + FCB->EventSelectDisabled |= (FCB->PollState & FCB->EventSelectTriggers); + return UnlockAndMaybeComplete( FCB, STATUS_SUCCESS, Irp, 0 ); } @@ -431,9 +431,6 @@ VOID PollReeval( PAFD_DEVICE_EXTENSION DeviceExt, PFILE_OBJECT FileObject ) { { AFD_DbgPrint(MID_TRACE,("Setting event %x\n", FCB->EventSelect)); - /* Disable the events that triggered the select until the reenabling function is called */ - FCB->EventSelectDisabled |= (FCB->PollState & (FCB->EventSelectTriggers & ~FCB->EventSelectDisabled)); - /* Set the application's event */ KeSetEvent( FCB->EventSelect, IO_NETWORK_INCREMENT, FALSE ); }