[wdmaudiodev] Re: [EXTERNAL] LFX APO on Windows 7 x64

  • From: Artem <smirnoff.artem@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Wed, 11 Dec 2019 10:41:03 +0300

Hi, Matthew!

I've found the root cause of the issue - APOs appears unsigned for
Windows 7 despite it has all updates installed and the dll is actually
signed. When I set "DisableProtectedAudioDG" to 1 everything works
fine.
We sign it with EV digicert certificate using /fd sha256 and this
perfectly works in Windows 10. Also in Windows 7 if I right click and
look at the properties->digital signature everything looks OK.
But when I open "driver details" tab for the device in device manager,
it shows "Not digitally signed" for our APO dll. So, there are 2
questions:

1. Do we need MS EV certificate for userspace drivers and APOs? Or
what kind of digital signature and its properties Windows 7 x64
expects for APO dlls?

2. Why Windows calls Initialize() & isFormatSupported() when APO is unsigned?

regards,
Artem



On Tue, 10 Dec 2019 at 19:24, Matthew van Eerde
<dmarc-noreply@xxxxxxxxxxxxx> wrote:


The wFormatTag values are defined in mmreg.h. 85 = 0x55 = 
WAVE_FORMAT_MPEGLAYER3



From: Artem
Sent: Tuesday, December 10, 2019 12:03 AM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [EXTERNAL] [wdmaudiodev] LFX APO on Windows 7 x64



Hi!

I have an APO (that does some sound virtualization stuff) in LFX on
Windows 7 x64 and on some machines windows continuously calls this
(for stereo source):

->VirtualAPO()
->Initialize()
->IsInputFormatSupported()
Input format:
guidFormatType: 3
dwSamplesPerFrame: 2
dwBytesPerSampleContainer: 4
dwValidBitsPerSample: 32
fFramesPerSecond: 48000
dwChannelMask: 3
Output format:
guidFormatType: 3
dwSamplesPerFrame: 2
dwBytesPerSampleContainer: 4
dwValidBitsPerSample: 32
fFramesPerSecond: 48000
dwChannelMask: 3
->~VirtualAPO()

This repeats many times and format seems to be the same. Once I saw
something like (not sure what 85 means):

Input format:
guidFormatType: 85
dwSamplesPerFrame: 2
dwBytesPerSampleContainer: 0
dwValidBitsPerSample: 0
fFramesPerSecond: 44100

I have implemented IsInputFormatSupported() and it basically accepts
all input channel configurations and then calls base class, but
skipped implementation of IsOutputFormatSupported().
Everything works perfectly on Windows 10 and some Windows 7 PCs, but
on some Windows 7 PCs I see the behavior described above. I can't see
the difference between OSs,
all updates are there and build numbers are the same.

Please advice something, I've already cracked my head :) I know that
Windows 7 is going away, but we have requirements to support it.

regards,
Artem
******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
https://nam06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.wdmaudiodev.com%2F&amp;data=02%7C01%7Cmatthew.van.eerde%40microsoft.com%7Ca63211298960494c60d808d77d4772d6%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637115618134523691&amp;sdata=AALWBOg4wGxTyxTXwxeeRKcO2Z4NWdeN53DFokJVCJc%3D&amp;reserved=0


******************

WDMAUDIODEV addresses:
Post message: mailto:wdmaudiodev@xxxxxxxxxxxxx
Subscribe:    mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=subscribe
Unsubscribe:  mailto:wdmaudiodev-request@xxxxxxxxxxxxx?subject=unsubscribe
Moderator:    mailto:wdmaudiodev-moderators@xxxxxxxxxxxxx

URL to WDMAUDIODEV page:
http://www.wdmaudiodev.com/

Other related posts: