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

Sept/Oct 2019 Issue of The NT Insider available


Download PDF here: http://insider.osr.com/2019/ntinsider_2019_01.pdf

It’s a particularly BIG issue, too: 40 pages of technical goodness, ranging from WDF to Minifilters. Check it out.
Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

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

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,103
    xxxxx@teradici.com wrote:
    > 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.
    > ...
    > 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.

    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.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • Chris_DChris_D Member Posts: 6
    Yes, I have my dashboard account and I've posted the same query there. If I get a response I'll add a link.
  • Chris_DChris_D Member Posts: 6
    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.
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
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