Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.