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

I’m trying to get our KMDF HID minidriver, based on djpnewton’s Virtual HID Driver 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 Operate In Server Core Test 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.

;  
; 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"  

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 (and if Secure Boot is enabled, they’ll not load in future releases), 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 Creating KMDF HID Minidrivers:

Is it true that Server Core does not support KMDF HID mini-drivers? Any suggested solutions?

xxxxx@teradici.com wrote:

I’m trying to get our KMDF HID minidriver, based on djpnewton’s Virtual HID Driver 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 Operate In Server Core Test i.e. in order to have Microsoft sign my HID driver for Server 2016, I need to pass HLK on Server Core 2016.

Microsoft has indicated that for Windows 10 that all device drivers will have to be signed by them (and if Secure Boot is enabled, they’ll not load in future releases), and presumably Server 2016 will take a similar approach.

No, it’s worse. Server 2016 will REQUIRE the HLK testing and full WHQL
signature. No self-signing, no attestation signing.

You need to contact the WHQL folks ASAP to find out the real situation
here. Do you have your dashboard account yet?


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Yes, I have my dashboard account and I’ve posted the same query there. If I get a response I’ll add a link.

I talked unofficially to someone from Microsoft and apparently the WHQL team has acknowledged that for this class of drivers there is a contradiction in the in the HLK playlist. I’m told this will be addressed, but there’s no specific date for it.