Werkelijke I/O-time-out is 10 keer korter dan de opgegeven waarde in User-Mode Driver Framework 2.0
Dit artikel helpt u bij het oplossen van het probleem waarbij de werkelijke I/O-time-out 10 keer korter is dan de opgegeven waarde in User-Mode Driver Framework 2.0.
Oorspronkelijke productversie: Windows 8.1, Windows Server 2012 R2, Windows 10, Windows 10 IoT Enterprise v1507, Windows Driver Kit 8.1, Windows Driver Kit 10
Oorspronkelijk KB-nummer: 4512989
Symptomen
Stel dat uw stuurprogramma gebruikmaakt van User-Mode Driver Framework (UMDF) versie 2.0 in Windows-besturingssystemen. U ziet dat de time-outwaarde van de I/O-bewerking 10 keer korter is dan de opgegeven waarde.
Als u de WdfIoTargetSendWriteSynchronously
functie bijvoorbeeld als volgt aanroept, wordt van de schrijfaanvraag verwacht dat er na 10 milliseconden een time-out optreedt. De time-out treedt echter op na 1 milliseconden.
WDF_REQUEST_SEND_OPTIONS reqOptions;
WDF_REQUEST_SEND_OPTIONS_INIT(&reqOptions, WDF_REQUEST_SEND_OPTION_TIMEOUT); // We specify 10 milliseconds as a timeout. WDF_REQUEST_SEND_OPTIONS_SET_TIMEOUT(&reqOptions, WDF_REL_TIMEOUT_IN_MS(10));
WdfIoTargetSendWriteSynchronously(ioTarget, request, &memDescr, NULL, & reqOptions, &bytesWritten);
Oorzaak
Het probleem treedt op omdat de time-outberekening in UMDF 2.0 onjuist is.
Oplossing
Het probleem is opgelost in Windows 10, versie 1511. Als uw stuurprogramma gebruikmaakt van een systeem dat ouder is dan Windows 10 versie 1511, kunt u de time-outwaarde met een factor 10 verhogen.