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/
As it took me most of a day to understand this is a bug in 22H2, I'll save you all the trouble: to use network debugging of hyper-v vms on an external switch (e.g. from your hyper-v host to the vm) , on W11 22H2 you have to disable the switch extensions that are enabled by default. Specifically Microsoft Azure VFP Switch Filter Extension and Microsoft NDIS Capture.
Failure symptoms: your vms have default 169.254 ip addresses.
I have been reading about UFX class extension for WDF.
The only sample I saw "ufxclientsample" mention about installing it on Windows 10 Mobile.
Also, opening the sample, I saw it refers to header files I don't have on my WDK (10.0.22.621.382).
Can this kind of driver be built using regular WDK or do I need to get the environment for a BSP for WIndows Mobile?
Can it be installed on a regular Windows for desktop instead of Windows Mobile?
I am writing an UMDF2 driver which accesses some legacy PCI board.
Besides reading and writing PCI bar memory this driver needs to handle occasional interrupts from the board.
For compatibility reasons the application needs to be notified about incoming interrupts knowing that these should be processed transparrently by the driver in an ideal worls.
Would it be possible to
* initialize the default queue with WdfIoQueueDispatchParallel
* Introduce an IOCTL WAIT_FOR_INTERRUPT
// Store request in the device context so it can be completed later
// Do noting to mark request as pending, complete the request in the DPC of the interrupt
and then have the application open a thread which issues a blocking IoControl with WAIT_FOR_INTERRUPT which only returns if the request is completed from the DPC routine handling the interrupt.
My question is:
If another thread of the application calls an IOControl request with e.g. READ_REGISTER, will this request be handled by the driver even though another request in the same queue is not completed? I have initialized the default queue as WdfIoQueueDispatchParallel, but does this mean that this request reaches the driver and can be completed emediatelly?
How does WdfIoQueueDispatchParallel relate to Overlapped IO?
Thank you and all the best!