Software device in Windows Hardware Lab Kit

I’ve been working in a software device driver, similar to the “echo” sample available at MS github (https://github.com/microsoft/Windows-driver-samples/tree/main/general/echo/kmdf/driver/AutoSync). The driver is working fine. However, it is currently using not properly signed, needing to use “test signatures” and turn off secure boot.

I’m trying to get driver signed and need to submit a request to MS, after running succesfully the tests in Windows Hardware Lab Kit (WHLK). As I was struggling with WHLK with my driver, I decided to try with the exact code of the github sample. However, the signature process behavior is the same…

When I install the driver in the machine running WHLK, WHLK lists my driver in the category “device manager”.

Driver device list

Then, it enforces me to run 58 tests, including some related to hardware such as ARM stuff, as figure below shows. My driver is not able to pass through all those tests, failing 6 of them. I’ve already tried to update the WHLK filters. Besides that, running these 58 tests take a long time.

Tests

As the driver has no direct iteraction with a specific hardware device, I would like that my driver was listed in “software device” category. In this case, the tests are related to what my driver really does. Also, the amount of tests needed to run is reduced and take a reasonable time. I’d like to know what may I do to achieve that or if anyone know how this classification is done in WHLK. I’ve already tried to switch the class (and classguid) in INF file, but the result is always the same (my driver in the category “device manager”).

Software device list

My current guess is that this behavior (always be considered as a “device manager” driver) is related to the way that I install the driver in the machine where WHLK runs. I’m using devcon to do that. Is it possible to achieve my driver as a “software device” using devcon ? Or, in this case, should I install my driver of another way ?

Appreciate any tips or comments.

Best regards

Which tests do you fail? As a rule, the generic tests are ones that you really want to pass.

Why do you need to WHQL a software only driver? If you don’t really need the WHQL signing just get it attestation signed. If you really do need WHQL I would suggest running the minimum required tests using a hyper-v vm as the test system, as there will be a lot less random hardware on it with drivers that may interfere with getting a clean test run.

1 Like

Thanks for the responses.

@Tim_Roberts, the driver passes the generic tests. I thought that all the tests should pass to MS get my driver signed.

@Mark_Roddy, I was already using a hyper-v vm to run WHLK. I was able to get the driver signed through attestation signing. As you pointed, for a software driver, this may suffice. Thanks in advance.

The inclusion of a software device in the Windows Hardware Lab Kit is instrumental for robust hardware testing. This versatile tool streamlines compatibility assessments, ensuring seamless integration with Windows environments. Its comprehensive features empower developers to optimize performance, contributing to the creation of reliable and efficient hardware solutions.

Oh look, a LLM-bot is necroposting.

1 Like