>        if (NT_SUCCESS(status)) {
>                status = WdfRequestForwardToIoQueue(Request, pEndpoint->Queue);
>-       }
>-
>-       if (!NT_SUCCESS(status)) {
>+       } else {
>                pEndpoint->State = WvEpDisconnected;
>        }
This is not the same.  The value of status can change inside the if.