I'm trying to write a Windows driver for the Intel UHD Graphics 605 and there are some parts of initialization that require the driver to wait a certain length of time. My first thought was to use KeQueryTickCount() and KeQueryTimeIncrement() but my code refused to compile. I tried including the header and library files necessary but it still wouldn't compile. Further research showed this in the WDK documentation: "A miniport driver can only make calls exported by videoprt.sys" It looks like the closest function exported by videoprt.sys is VideoPortStallExecution(), but if at all possible I would prefer not to keep control of the CPU while I'm waiting.
There is also a statement on docs.microsoft.com that says, "All kernel-mode drivers except video and SCSI miniport drivers and NDIS drivers are likely to call at least some KeXxx routines", so I can't call anything beginning with "Ke" in a video miniport.
Just so you know that I've "done my homework" as requested by the community guidelines, I went through the i915 Linux code and official Intel PDF's to figure out how the hardware works and then looked through the WDK documentation, MSDN, and sources for the the ET6000 and a couple of virtual video devices. Can someone recommend a good way to wait up to 2 milliseconds in a video miniport? Thank you in advance.
It looks like you're new here. If you want to get involved, click one of these buttons!
|Upcoming OSR Seminars|
|Writing WDF Drivers||21 Oct 2019||OSR Seminar Space & ONLINE|
|Internals & Software Drivers||18 Nov 2019||Dulles, VA|
|Kernel Debugging||30 Mar 2020||OSR Seminar Space|
|Developing Minifilters||27 Apr 2020||OSR Seminar Space & ONLINE|