Share via


Le délai d’expiration des E/S réels est 10 fois plus court que la valeur spécifiée dans User-Mode Driver Framework 2.0

Cet article vous aide à résoudre le problème dans lequel le délai d’expiration d’E/S réel est 10 fois plus court que la valeur spécifiée dans User-Mode Driver Framework 2.0.

Version du produit d’origine : Windows 8.1, Windows Server 2012 R2, Windows 10, Windows 10 IoT Entreprise v1507, Kit de pilotes Windows 8.1, Kit de pilotes Windows 10
Numéro de la base de connaissances d’origine : 4512989

Symptômes

Supposons que votre pilote utilise User-Mode Driver Framework (UMDF) version 2.0 dans les systèmes d’exploitation Windows. Vous remarquez que la valeur du délai d’attente de l’opération d’E/S est 10 fois plus courte que la valeur spécifiée.

Par exemple, si vous appelez la WdfIoTargetSendWriteSynchronously fonction comme suit, la demande d’écriture est censée entraîner un délai d’attente après 10 millisecondes. Toutefois, le délai d’attente se produit après 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);

Cause

Le problème se produit car le calcul du délai d’attente dans UMDF 2.0 est incorrect.

Résolution

Le problème est résolu dans Windows 10, version 1511. Si votre pilote utilise un système antérieur à Windows 10 version 1511, vous pouvez augmenter la valeur du délai d’attente d’un facteur 10.