[wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.

  • From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 12 Jun 2013 22:13:20 +0000

How exactly are you registering your filter, and what exactly is your filter 
descriptor?

From: wdmaudiodev-bounce@xxxxxxxxxxxxx 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Max K
Sent: Wednesday, June 12, 2013 2:52 PM
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.

nope, I reverted my VM to a state where there can't be a cache of the inf.

There is probably a way to do this using SetupAPI but I cannot figure it out.

Regards,
Max
________________________________
From: HarryGraham@xxxxxxxxxx<mailto:HarryGraham@xxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.
Date: Wed, 12 Jun 2013 21:46:05 +0000
The .inf file is probably cached.  Make sure you tell device manager to delete 
the driver when uninstalling.

Harry

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Max K
Sent: Wednesday, June 12, 2013 2:44 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.

Right, desperate me just tried to enter the missing reg key manually using 
regedit.. and it worked.

So basically if someone can just tell me how to properly get this reg key 
created.. we are done! (rest can't be that hard.. *cough*)

I tried adding the AddInterface directive to the inf file, it had not effect 
what-so-ever.

Regards,
Max
________________________________
From: xaseriii@xxxxxxxxxx<mailto:xaseriii@xxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.
Date: Wed, 12 Jun 2013 23:09:16 +0200
As Tim wrote before, that inf directive should not be neccessary:

"That's true.  KsInitializeDriver and KsCreateFilterFactory will both register 
the interfaces for you, based on the information you provide in your 
KSFILTER_DESCRIPTOR."

Also MSVAD is only adding a topology interface there, I don't have a topology 
as such.
I'll experiment a bit with that directive.

Thanks,
Max
________________________________
From: Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.
Date: Wed, 12 Jun 2013 20:54:46 +0000
Are you populating those via your .inf or at runtime? Here's how MSVAD does it.

[MSVAD_Simple.Interfaces]
...
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,MSVAD.I.Topo

[MSVAD.I.Topo]
AddReg=MSVAD.I.Topo.AddReg

[MSVAD.I.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%MSVAD.Topo.szPname%

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Max K
Sent: Wednesday, June 12, 2013 1:38 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.

yes it's there, but it lacks the key "Device Parameters" which should contain a 
CLSID and a friendly name. The Properties key is not accessible.
________________________________
From: Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: Getting a MIDI Driver Port enumerated.
Date: Wed, 12 Jun 2013 20:17:00 +0000
Do you see your filter factory under 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceClasses\{6994ad04-93ef-11d0-a3cc-00a0c9223196}
 ?

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Max K
Sent: Wednesday, June 12, 2013 1:07 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Getting a MIDI Driver Port enumerated.

Hi,

I have updated the title to reflect the current problem better (in case someone 
googles it).

I have looked at all audio sample drivers, MSVad has a little bit of midi, but 
not as usefull as other samples.
believe in addition to exposing a MIDI pin factory, you need to register your 
filter factory in the KSCATEGORY_AUDIO device interface.
Right, I thought that would be done by ks.sys automatically as soon as it calls 
GetDescription on my driver.

Regards,
Max
________________________________
From: Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: StartDevice Empty Resource List?
Date: Wed, 12 Jun 2013 19:38:40 +0000
I believe the MSVad audio driver in the Windows Driver Kit exposes a MIDI path. 
I believe in addition to exposing a MIDI pin factory, you need to register your 
filter factory in the KSCATEGORY_AUDIO device interface.

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Max K
Sent: Wednesday, June 12, 2013 12:34 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: StartDevice Empty Resource List?

Hi,

I have written my own midi device enumeration program already using SetupAPI, 
however I usually use KSstudio or grapdedit now anyways.

My problem is not to enumerate the device but to make my MIDI device show up in 
the list, according to MSDN, all I have to do for that is to expose a MIDI pin, 
but that doesn't seem to suffice.

Regards,
Max
________________________________
From: Matthew.van.Eerde@xxxxxxxxxxxxx<mailto:Matthew.van.Eerde@xxxxxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: StartDevice Empty Resource List?
Date: Wed, 12 Jun 2013 19:27:00 +0000
The MMDevices key is for audio devices only, not MIDI devices. You can 
enumerate MIDI devices using the MIDI enumeration APIs.

http://blogs.msdn.com/b/matthew_van_eerde/archive/2012/09/21/enumerating-midi-devices.aspx

From: wdmaudiodev-bounce@xxxxxxxxxxxxx<mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx> 
[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Max K
Sent: Wednesday, June 12, 2013 12:18 PM
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: StartDevice Empty Resource List?

Hi again,

I know managed to configure the Pins and Nodes in a way that I can instantiate 
them in graphedt, I used the Information from the DmusUart and FMsynth samples 
to set up the pins properly.

However I still can't see a MIDI port, apparently, the driver still isn't 
installed correctly, some registry entries seem to be missing. KSStudio says:
"SetupDiOpenDeviceInterfaceRegKey failed
      Enumerated [???] 
\\?\root#media#0001#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\vmidi<file:///\\%3f\root%23media%230001%23%7b65e8773d-8f56-11d0-a3b9-00a0c9223196%7d\vmidi>
SetupDiEnumDeviceInterfaces failed
GetDeviceDetails failed."

for each Interface category.

I searched the registry a bit and found that I don't have an key for my device 
under CurrentControl/MMDevices, and I believe there should be.
Maybe what devcon install does, isn't sufficient?

Regards,
Max
________________________________
From: xaseriii@xxxxxxxxxx<mailto:xaseriii@xxxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
Subject: [wdmaudiodev] Re: StartDevice Empty Resource List?
Date: Tue, 11 Jun 2013 09:27:07 +0200

It doesn't appear under any of the WDM categories in graphedt?

No, only the virtual HD Audio sound card.
The service name can be chosen arbitrarily.  However, the system will not allow 
you to have two services with different names but the same "DisplayName".  
That's probably what you were running into.  Had you deleted the old one, you 
could have added the new one.
Thanks, right on spot :)
________________________________
Date: Mon, 10 Jun 2013 16:15:19 -0700
From: timr@xxxxxxxxx<mailto:timr@xxxxxxxxx>
To: wdmaudiodev@xxxxxxxxxxxxx<mailto:wdmaudiodev@xxxxxxxxxxxxx>
CC: xaseriii@xxxxxxxxxx<mailto:xaseriii@xxxxxxxxxx>
Subject: [wdmaudiodev] Re: StartDevice Empty Resource List?
Max K wrote:

No, I can only see the MIDI ports of my other MIDI devices, what do you mean by 
instantiate in this context?

It doesn't appear under any of the WDM categories in graphedt?
I had some odd behaviour on my virtual testing machine, whenever I change the 
name property of the AddService directive in my inf file, devcon and my own 
installer wouldn't install the driver anymore. Accordingly to MSDN, the name 
property can be chosen randomly, and it worked again after I have reverted my 
VM to an earlier state, but after that I couldn't change it again. Is that a 
sign for a problem with the driver?

The service name can be chosen arbitrarily.  However, the system will not allow 
you to have two services with different names but the same "DisplayName".  
That's probably what you were running into.  Had you deleted the old one, you 
could have added the new one.

--

Tim Roberts, timr@xxxxxxxxx<mailto:timr@xxxxxxxxx>

Providenza & Boekelheide, Inc.

Other related posts: