The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.
Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/
we are using WinUSB successfully for bulk and interrupt transfers for years now.
One of our older USB2 devices has additional isoc streams (OUT: 0x1; IN: 0x82)
Now, while for the OUT pipe we can successfully generate an isoc buffer via WinUsb_RegisterIsochBuffer(), same seems not work for our IN pipe. While WinUsb_RegisterIsochBuffer() returns without an error successive WinUsb_ReadIsochPipe(): requests do fail with "The parameter is incorrect" [0x57].
I have thoroughly validaded the parameters given to WinUsb_ReadIsochPipe().
What struck me is, that WinUsb_UnregisterIsochBuffer() fails with "Element not found" [0x490] on the buffer created for the IN pipe.
Since WinUsb_RegisterIsochBuffer awkwardly assigns the buffer with only the lower 4bit of the endpoint address could it be that WinUsb_RegisterIsochBuffer requires an OUT pipe with the same address? (here: 0x02)?
As I am running out of ideas what else to try any suggestion or hints are highly appreciated.
|Upcoming OSR Seminars|
|OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!|
|Writing WDF Drivers||12 September 2022||Live, Online|
|Internals & Software Drivers||23 October 2022||Live, Online|
|Kernel Debugging||14 November 2022||Live, Online|
|Developing Minifilters||5 December 2022||Live, Online|