Aracılığıyla paylaş


Gerçek G/Ç zaman aşımı, Kullanıcı Modu Driver Framework 2.0'da belirtilen değerden 10 kat daha kısadır

Bu makale, Kullanıcı Modu Driver Framework 2.0'da gerçek G/Ç zaman aşımının belirtilen değerden 10 kat daha kısa olması sorununu çözmenize yardımcı olur.

Özgün ürün sürümü: Windows 8.1, Windows Server 2012 R2, Windows 10, Windows 10 IoT Enterprise v1507, Windows Driver Kit 8.1, Windows Driver Kit 10
Özgün KB numarası: 4512989

Belirtiler

Sürücünüzün Windows işletim sistemlerinde Kullanıcı Modu Sürücü Çerçevesi (UMDF) sürüm 2.0'ı kullandığını varsayalım. G/Ç işleminin zaman aşımı değerinin belirtilen değerden 10 kat daha kısa olduğunu fark edeceksiniz.

Örneğin, işlevi aşağıdaki gibi çağırırsanız WdfIoTargetSendWriteSynchronously , yazma isteğinin 10 milisaniye sonra zaman aşımına neden olması beklenir. Ancak, zaman aşımı 1 milisaniye sonra gerçekleşir.

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

Neden

Sorun, UMDF 2.0'daki zaman aşımı hesaplamasının yanlış olması nedeniyle oluşur.

Çözüm

Sorun Windows 10, Sürüm 1511'de düzeltildi. Sürücünüz Windows 10, Sürüm 1511'den önceki bir sistem kullanıyorsa zaman aşımı değerini 10 kat artırabilirsiniz.