I don’t think this is a driver issue since I think that the polling rate for the hw is the limiting factor in the end, but I don’t think you are hitting that limitation yet. Rather I think you current problems is how you are sending i/o. are you sending one i/o and then waiting for it to complete? If so, try opening the handle as OVERLAPPED and sending multiple I/Os that way they will complete when the data arrives vs potentially being queued by hidclass and waiting for your i/o to arrive.
d
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Roman Gonzales
Sent: Monday, September 17, 2007 5:31 AM
To: Windows System Software Devs Interest List
Subject: Re: [ntdev] USB driver
Hi Doron,
Thank you for your answer.
My device report itself as a HID. It is a low-speed device, bandwidth 8 bytes-msec-I/O report. The HID.dll makes one transaction per 10 milliseconds.
I need to reduce this times, I think if I make my own driver I can reduce this times.
2007/9/15, Doron Holan >:
Not all HID devices are keyboards and mice. Does your device report itself as a HID device already and hidusb loads? It sounds like the answer is yes. If so, you don’t need to write a driver, you just need to use the Hid.dll APIs. Or is your device a non standard HID where you need to write your own miniport?
d
From: xxxxx@lists.osr.commailto:xxxxx [mailto: xxxxx@lists.osr.commailto:xxxxx] On Behalf Of Roman Gonzales
Sent: Saturday, September 15, 2007 8:00 AM
To: Windows System Software Devs Interest List
Subject: [ntdev] USB driver
Hi,
I need to write a driver for a HID device. It is not keyboard or mouse.
Actually I can access device using hid.dll.
To send and recieve data I use WriteFile and ReadFile, code I use is this:
write:
Result = WriteFile(DeviceHandle,OutputReport,Capabilities.OutputReportByteLength,&BytesWritten,NULL);
read:
Result = ReadFile(ReadHandle,InputReport,Capabilities.InputReportByteLength,&NumberOfBytesRead,(LPOVERLAPPED) &HIDOverlapped);
Result = WaitForSingleObject(hEventObject2,6000);
OutputReport and Inputreport are defined like this: BYTE OutputReport[BUFFERSIZE]; BYTE InputReport[BUFFERSIZE];
In this arrays I send data, not taking care about report structure. Because device don?t use report structures.
I’m reading DDK samples, but I don?t know which is more convinient to beggin my driver.
FireFly looks complicated.
where I can find less complicated samples?
thanks,
Ro.
— 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
—
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
— 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</mailto:xxxxx></mailto:xxxxx>