[wdmaudiodev] Re: StartDevice Empty Resource List?

  • From: Revan Foly <xaseriii@xxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 5 Jun 2013 19:05:51 +0200

Hi Tim,

great to see you're still around ;)

I chose those three interfaces after reading this MSDN article, which states 
that raw MIDI processing devices should not ue KSCATEGORY_SYNTHESIZER:
http://msdn.microsoft.com/en-us/library/windows/hardware/ff536813%28v=vs.85%29.aspx

The Wave name indeed originates from copy and paste ;)

Eugene's mail was a great push in the right direction, I'm looking more into 
driver installation now, which seems to be a whole world for itself. Eugenes 
code was a good starting point but needs alot of adapting. I'm still a little 
confused about all the different concepts (e.g. whenever i stumble across 
PNP-Manager references in MSDN I think 'uh well but there is no hardware'!, or 
should i use SetupAPI or the Driver Installer Framework). It's hard to fit all 
together.

Currently I'm writing a driver installer application that will install the 
driver and its interfaces properly (as opposed to devcon), I'll probably need 
the help of co-installers as well.

Good news is I got remote kernel debugging working to my VM via a virtual 
serial port, that should make things alot easier.

I'm going to reply again as soon as I got more precise questions, if you got 
any more hints or tipps, please feel free to contribute :)

Regards,
Max

Date: Wed, 5 Jun 2013 09:42:28 -0700
From: timr@xxxxxxxxx
To: wdmaudiodev@xxxxxxxxxxxxx
Subject: [wdmaudiodev] Re: StartDevice Empty Resource List?


  
    
  
  
    Revan Foly wrote:

    
    
      
      ...

        I now have been able to use the DMusUART and MPU401 adapter
        Sample to create an installable driver that frankly does nothing
        so far. I understand quite a bit of whats going on in the
        miniport part of the driver and stripped the DMusUART sample of
        most hardware related stuff.

        

        Where I'm stuck now is the part where the virtual Device ist
        started and the MIDI ports are created (i.e. the MIDI Pin of the
        miniport driver is connected to a resource i believe). As
        opposed to Tobias' virtualMIDI driver, i do not require dynamic
        creation of ports, so I added an interfaces section to my inf
        file:

        

        [vmidi.NTamd64.Interfaces]

        AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,vmidi.Wave

        AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,vmidi.Wave

        AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,vmidi.Wave

      
    
    

    If you are a MIDI device, you probably want KSCATEGORY_SYNTHESIZER. 
    I'm not sure you want KSCATEGORY_CAPTURE.  Did you copy this from a
    WAVE INF file, or from another MIDI INF file?

    

    
    

    
      [vmidi.Wave.AddReg]

        HKR,,CLSID,,%Proxy.CLSID%

        HKR,,FriendlyName,,"VMIDI Wave"

      
    
    

    You are not a WAVE device.  The friendly name should probably not
    say so.

    

    

    
      And indeed DbgView shows that the system is calling
        the startDevice function of the adapterpart of the driver,
        however apparently the ResourceList is empty and therefore no
        Miniport is created. If i circumpass the if checking the
        ResourceList for entries, I create a bluescreen.

      
    
    

    This is a virtual device, right?  Why would you expect to have any
    resources at all?

    -- 
Tim Roberts, timr@xxxxxxxxx
Providenza & Boekelheide, Inc.
                                          

Other related posts: