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/
In the last several months, I have taken an interest in the modern Windows graphics pipeline, and how Direct3D objects go from usermode command buffers to display miniport drivers for rendering. I was curious if it would be possible to render simple (or complex) geometry to the screen without using DWM and the DirectComposition pipeline, but rather by having a kernel component create a similar rendering pathway.
If I understand the typical user-to-kernel rendering path as follows, the device context of the Direct3D object to which I am currently rendering will have a command buffer directly visible to the underlying application. This command buffer is the very same one that would be interpreted by the usermode display driver functions, such as pfnPresentCb/pfnRenderCb, which send these command buffers off to the display miniport driver. With that being said, my first thoughts on the matter were to see if a custom kernel component could supply WDDM drivers with command buffers for rendering by calling their functions, such as DxgkDdiPresent (as seen in the WDDM operation flow). After, I considered perhaps utilizing the official Microsoft KMDOD sample driver, and exploring if it was possible to use the same VidPn target as the main on-screen-display. Perhaps there would be a different, easier or more preferable way to go about doing this. I am very curious what somebody more experienced on the matter would suggest.
Thank you all for your time, and I hope you're having a great start to the new year.
|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!|
|Internals & Software Drivers||7 February 2022||Live, Online|
|Kernel Debugging||21 March 2022||Live, Online|
|Developing Minifilters||23 May 2022||Live, Online|
|Writing WDF Drivers||12 September 2022||Live, Online|