Matthew,
Thanks for your help on this. I finally got the ApiValidator to pass
everything. DriverCallback was easier than I thought it would be to get
working properly within HLK. Now on to the "DF" tests.
Thank you,
David A. Hoatson
Lynx Studio Technology, Inc.
<http://www.lynxstudio.com/> www.lynxstudio.com
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
(Redacted sender "Matthew.van.Eerde" for DMARC)
Sent: Monday, June 10, 2019 3:30 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: HLK ApiValidator Failure
You can definitely fix InterlockedIncrement and InterlockedDecrement to be
OneCore-compatible by having them pull from the OneCore API set instead of
kernel32.dll.
winmm.dll doesn't exist in OneCore so if you want to be a universal driver
you will probably need to give up on DriverCallback.
If you don't care about being a universal driver (sounds like you don't)
then you need to somehow tell HLK. I don't know how that works. You might
need to ask on an HLK forum or contact HLK support. Or maybe somebody else
on wdmaudiodev knows.
_____
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> <wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> > on behalf of David A. Hoatson
<dhoatson@xxxxxxxxxxxxxx <mailto:dhoatson@xxxxxxxxxxxxxx> >
Sent: Monday, June 10, 2019 2:39:55 PM
To: wdmaudiodev@xxxxxxxxxxxxx <mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: HLK ApiValidator Failure
Hello Matthew,
Actually, it is complaining about kernel32.dll::InterlockedIncrement
kernel32.dll::InterlockedDecrement and winmm.dll::DriverCallback. I figured
switching to the latest toolset might fix this, but alas it did not. I am
building the DLL (which is what HLK is complaining about) with VS2019 I can
see nowhere to set that the DLL is not a "Universal" driver. It is just
building a standard DLL. Any clues as to how to get this going?
Thank you,
David A. Hoatson
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
(Redacted sender "Matthew.van.Eerde" for DMARC)
Sent: Friday, June 07, 2019 3:20 PM
To: wdmaudiodev@xxxxxxxxxxxxx <mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: HLK ApiValidator Failure
You need to figure out why the HLK thinks you're trying to certify as
universal, and fix that.
It's not complaining about InterlockedIncrement and InterlockedDecrement.
It's complaining about kernelbase.dll. Your linker options are such that
you're pulling InterlockedIncrement and IntelockedDecrement from
kernelbase.dll rather than whatever API set hosts it in the universal driver
world.
_____
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> <wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> > on behalf of David A. Hoatson
<dhoatson@xxxxxxxxxxxxxx <mailto:dhoatson@xxxxxxxxxxxxxx> >
Sent: Friday, June 7, 2019 1:55:02 PM
To: wdmaudiodev@xxxxxxxxxxxxx <mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: HLK ApiValidator Failure
Matthew,
Thanks for the quick reply. I have run ApiValidator.exe from the command
prompt and it only complains about DriverCallback not InterlockedIncrement /
InterlockedDecrement:
ApiValidation: Warning: API DriverCallback in winmm.dll is not a supported
universal API.
I'm not trying to make a Universal driver, as we can only run on desktop PCs
(we make a PCI Express card!), so how can I get around this failure in the
HLK?
I guess another question is, why is ApiValidator in HLK complaining about
our use of InterlockedIncrement / InterlockedDecrement when those clearly
were OK for our competitors driver?
Thank you,
David A. Hoatson
Lynx Studio Technology, Inc.
<http://www.lynxstudio.com/> www.lynxstudio.com
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx>
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Matthew van Eerde
(Redacted sender "Matthew.van.Eerde" for DMARC)
Sent: Friday, June 07, 2019 12:38 PM
To: wdmaudiodev@xxxxxxxxxxxxx <mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: HLK ApiValidator Failure
After searching the webs, this article might help you, especially the "link
to onecoreuap.lib" part.
https://docs.microsoft.com/en-us/windows-hardware/drivers/develop/validating
-universal-drivers
_____
From: wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> <wdmaudiodev-bounce@xxxxxxxxxxxxx
<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> > on behalf of Matthew van Eerde
<dmarc-noreply@xxxxxxxxxxxxx <mailto:dmarc-noreply@xxxxxxxxxxxxx> >
Sent: Friday, June 7, 2019 12:34:49 PM
To: wdmaudiodev@xxxxxxxxxxxxx <mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: HLK ApiValidator Failure
Sorry, I am not familiar with ApiValidator.
You can follow these steps to troubleshoot HLK failures in general:
https://docs.microsoft.com/en-us/windows-hardware/test/hlk/user/troubleshoot
ing-windows-hlk
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.micr
osoft.com%2Fen-us%2Fwindows-hardware%2Ftest%2Fhlk%2Fuser%2Ftroubleshooting-w
indows-hlk&data=02%7C01%7Cmatthew.van.eerde%40microsoft.com%7C3b27305a6fd440
5e08cb08d6edec70c2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636957997158
234683&sdata=1O7j9ybZoMOPRDYx79ik%2BduaNR0X%2FXe2J7N2aLIQick%3D&reserved=0>
In particular you can go to https://support.microsoft.com/
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fsupport.m
icrosoft.com%2F&data=02%7C01%7Cmatthew.van.eerde%40microsoft.com%7C3b27305a6
fd4405e08cb08d6edec70c2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6369579
97158244691&sdata=DnnUWuJdX%2F7e9xllbIbvtUb33ZjQJYUJP1wmV%2BvR14M%3D&reserve
d=0> > Support for business > Get started > Select the product family:
"Developer Tools" > Select a product: "Windows Driver Kit (WDK, HLK)" >
Select the product version: "Hardware Lab Kit for Windows 10".
You should open a separate support case for each failure, and provide an
.hlkx file containing the failing log.
From: David A. Hoatson <mailto:dhoatson@xxxxxxxxxxxxxx>
Sent: Friday, June 7, 2019 11:21 AM
To: wdmaudiodev@xxxxxxxxxxxxx <mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] HLK ApiValidator Failure
Hello,
Hopefully Matthew can shed some light on this.
I am trying to get through the HLK tests and the first one that fails is
ApiValidator. It is complaining that we are calling InterlockedIncrement /
InterlockedDecrement and DriverCallback. Both InterlockedIncrement and
InterlockedDecrement are called from Combase.cpp because we have an ASIO
driver that uses COM. Other drivers that also have ASIO are using
InterlockedIncrement / InterlockedDecrement and have passed HLK.
DriverCallback is used for our Mixer UI and is completely unrelated to audio
streaming.
Why is the ApiValidator complaining about these calls and how to I get
around it?
Thank you,
David A. Hoatson