Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


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/


How to pass WHQL HLK tests forKMDF HID mini-driver on Server Core 2016?

Chris_DChris_D Member Posts: 6
I'm trying to get our KMDF HID minidriver, based on [url=https://github.com/djpnewton/vmulti]djpnewton's Virtual HID Driver[/url] to pass the WHQL HLK tests on Windows Server Core 2016. As of Tech Preview 4, the Server Core mode is a separate installation option and one cannot switch between the Full Server and the Server Core variants via enabling or disabling features.

In order to pass the HLK tests, one must pass [url=https://msdn.microsoft.com/en-us/library/windows/hardware/dn941302(v=vs.85).aspx?f=255&MSPPError=-2147217396]Operate In Server Core Test[/url] i.e. in order to have Microsoft sign my HID driver for Server 2016, I need to pass HLK on Server Core 2016.

The problem is that the HID driver relies on KMDF i.e. from the inf file we rely on the mshidkmdf driver.
[code]
;
; vmulti is the function driver and mshidkmdf is the WDM HID minidriver
;
[vmulti.Inst.Win7.NT.Services]
AddService = tera_vhid,0x00000002, vmulti_Service_Inst

[vmulti_Win7_Parameters.AddReg]
HKR,,"UpperFilters",0x00010000,"mshidkmdf"
[/code]

The problem is that this driver appears to not be installed for Server Core 2016 Tech Preview 5. The Full Server mode (i.e. the GUI) definitely has it (confirmed by using sc query mshidkmdf) but the server core does not. As a result, my HID driver obviously does not work.

Microsoft has indicated that for Windows 10 that all device drivers will have to be signed by them ([url=https://www.osr.com/blog/2016/06/02/driver-signing-details-emerge/]and if Secure Boot is enabled, they'll not load in future releases[/url]), and presumably Server 2016 will take a similar approach. Attestation signing is available only for Windows 10, so it seems the only viable solution for new drivers is to pass HLK testing (itself not a bad idea). The problem is that it appears impossible to do as:
[list=1]
[*]The HLK test requires running in Server Core mode
[*]Server Core mode appears not to have support for KMDF HID mini-drivers
[*]My HID driver relies on mshidkmdf i.e. the KMDF framework
[/list]
Am I missing something? From [url=https://msdn.microsoft.com/en-us/library/windows/hardware/ff540774(v=vs.85).aspx?f=255&MSPPError=-2147217396]Creating KMDF HID Minidrivers[/url]:
[quote]
Starting in Windows 7, the MsHidKmdf.sys driver is included as part of the operating system.
[/quote]
Is it true that Server Core does not support KMDF HID mini-drivers? Any suggested solutions?

Comments

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

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!
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 15 Jun 2020 LIVE ONLINE
Writing WDF Drivers 22 June 2020 LIVE ONLINE
Internals & Software Drivers 28 Sept 2020 Dulles, VA