[wdmaudiodev] Re: HLK ApiValidator Failure

  • From: "David A. Hoatson" <dhoatson@xxxxxxxxxxxxxx>
  • To: <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 10 Jun 2019 14:39:55 -0700

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] On Behalf Of Matthew van Eerde
(Redacted sender "Matthew.van.Eerde" for DMARC)
Sent: Friday, June 07, 2019 3:20 PM
To: 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.
 
<https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.lynxst
udio.com%2F&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7Cf9fa49a383a44
24c303f08d6eb8a81f0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63695537751
6388091&sdata=d6C6wvmtTPo2o50TxCQH5tPIADdpWHJ8U7xToHwU91w%3D&reserved=0>
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
<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.micr
osoft.com%2Fen-us%2Fwindows-hardware%2Fdrivers%2Fdevelop%2Fvalidating-univer
sal-drivers&data=02%7C01%7CMatthew.van.Eerde%40microsoft.com%7Cf9fa49a383a44
24c303f08d6eb8a81f0%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C63695537751
6388091&sdata=zYn%2BGNDnfQEv8O71%2BLv%2FzhvpiS7DS4FjOWWNfjxQE5w%3D&reserved=
0> 

 

  _____  

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 

 

In particular you can go to https://support.microsoft.com/ ;> 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

 

 

Other related posts: