[wdmaudiodev] Re: StartDevice Empty Resource List?

  • From: Max K <xaseriii@xxxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Wed, 5 Jun 2013 22:35:19 +0200

Hi,

okay after more programming and research I have now my own, specialized, 
version based on Eugenes code and the devcon install sample code, i used a few 
more updated funtions. However I couldn't notice any part where a PDO is 
created, maybe in the SetupDiCallClassInstaller function?

>> I use DPInst to do my pre-installs

well aparently the Class Installer called by devcon copies the .sys to 
system32/drivers already, so what use DPInst for?

So a few new questions pop up:
Also you mentioned that you could use either the PNP or a Service Manager, 
which one is preferred?
Is there a tool that i can use to display the PDOs on the various busses?
Do I need to recreate the PDO on each system start?

Regards,
Max

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


  
    
  
  
    Revan Foly wrote:

    
    
      
      

        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

      
    
    

    OK, you talked me into it.

    

    

    
      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'!,
    
    

    The key point is to think about how you get loaded.  With a non-PnP
    driver, you have to be loaded explicitly by someone, using the
    Service Manager (such as "net start").  With a PnP driver, you get
    loaded automatically when your INF file matches the hardware ID on a
    newly created PDO.  Some bus driver somewhere has to create that
    PDO.  With virtual devices, that's often done with "devcon
    install".  PnP can't tell the difference between a new PCI device
    and a new virtual device.  So, the "hardware" part really is
    irrelevant.

    

    Once you are a PnP device, you play all the same games that a real
    hardware driver plays.  Your bus driver isn't going to hand you any
    memory or interrupt resources, but you get all the other requests
    (like power management).

    

    

    
       or should i use SetupAPI or the Driver Installer
        Framework). It's hard to fit all together.

      
    
    

    For a PnP device, you have to get your driver copied onto the
    system's hard disk ("pre-install"), and someone has to create the
    PDO to trigger your loading.  I use DPInst to do my pre-installs,
    but you'll need some other tool to trigger the creation of a PDO. 
    The Setup APIs can do that (see the source for "devcon install" for
    an example).

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

Other related posts: