De 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
Origineel 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 verwacht dat de schrijfaanvraag een time-out veroorzaakt na 10 milliseconden. De time-out treedt echter op na 1 milliseconde.

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 verhogen met een factor 10.