Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

Actual I/O time-out is 10 times shorter than the specified value in User-Mode Driver Framework 2.0


View products that this article applies to.

Symptoms

Assume that your driver uses User-Mode Driver Framework (UMDF) version 2.0 in Windows operating systems. You notice that the time-out value of I/O operation is 10 times shorter than the specified value. 

For example, if you call the WdfIoTargetSendWriteSynchronously function as follows, the write request is expected to cause a time-out to occur after 10 milliseconds. However, the time-out occurs after 1 millisecond.

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);

↑ Back to the top


Cause

The issue occurs because the time-out calculation in UMDF 2.0 is incorrect.

↑ Back to the top


Resolution

The issue is fixed in Windows 10, Version 1511. If your driver uses a system that is earlier than Windows 10, Version 1511, you can increase the time-out value by a factor of 10.

↑ Back to the top


Keywords: User-Mode Driver Framework (UMDF), kbContentAuto, kbSupportTopic, kb, kbfix, kbqfe

↑ Back to the top

Article Info
Article ID : 4512989
Revision : 13
Created on : 7/24/2019
Published on : 7/24/2019
Exists online : False
Views : 288