When you cancel an io, which is what the timeout does, there are no guarantees you will get any data. I would not expect for you to get some of the data back, but not all because the transfer is not complete. If you want some fo the data back, perhaps you need to change your device’s protocol to send data back in smaller packets so that you receive data before the timeout.
d
-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of zhonghong200@163.com
Sent: Sunday, August 22, 2010 11:19 PM
To: Windows System Software Devs Interest List
Subject: RE:[ntdev] I use wdk’s usbsamp ,but have some question
thank you,Doron Holan,I resolve the problem two,but for the first question ,i can not resolve it .
and i debug it ,find in the ReadWriteCompletion fuction, and the pragram run in :
if (!NT_SUCCESS(status)){
//
// Queue a workitem to reset the pipe because the completion could be
// running at DISPATCH_LEVEL.
//
QueuePassiveLevelCallback(WdfIoTargetGetDevice(Target), pipe);
goto End;
}
with status=C00000B5,and the pipe reset, and #define STATUS_IO_TIMEOUT ((NTSTATUS) 0xC00000B5)
so my confuse when the URB request is timeout ,why the transfer size is zero, and in my opinion,when timeout,it may be receive some datas ,and the receive data is less than the transfer size.
is it the bug of WDk ,and who can give me some advice,thank you !
NTDEV is sponsored by OSR
For our schedule of WDF, WDM, debugging and other seminars visit:
http://www.osr.com/seminars
To unsubscribe, visit the List Server section of OSR Online at http://www.osronline.com/page.cfm?name=ListServer