Enabling PnP for Devices

Windows Media Device Manager monitors arrival and removal notifications of devices that advertise a Portable Audio Player device interface. On the arrival of such a device, Windows Media Device Manager queries a device parameter named WMDMSPCLSID for the class ID of the service provider responsible for this device. Windows Media Device Manager calls IMDServiceProvider2::CreateDevice on this service provider to create a device object, which is exposed to the application as an IWMDMDevice object.

A service provider can either handle PnP devices, or non-PnP devices; it cannot handle both types.

For a device to work with the preceding mechanism (and thus enable arrival and removal notifications for the device under Windows Media Device Manager applications), the following requirements must be met:

  • The device driver of this device must advertise the Windows Media Device Manager Portable Audio Player device interface. The GUID for this device interface is defined as:

    {0xf33fdc04, 0xd1ac, 0x4e8e, {0x9a, 0x30, 0x19, 0xbb, 0xd4, 0xb1, 0x8, 0xae} }
    

    Note

    A device should not advertise this interface if the device advertises the Volume interface (defined as VolumeClassGuid or GUID_DEVINTERFACE_VOLUME in winioctl.h). If the device advertises the Volume Interface, it is already PnP-enabled under Windows Media Device Manager.

     

    -AND/OR-

    A new registry subkey for the service provider must be created inside the subkey HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Device Manager\KnownDevices. This key should have the name of your service provider and must have the following two Reg_SZ value entries:

    DeviceInterface         {25DBCE51-6C8F-4A72-8A6D-B54C2B4FC835}
    WMDMSPCLSID             {067B4B81-B1EC-489F-B111-940EBDC44EBE}
    
  • The device must have a device parameter named WMDMSPCLSID. The value of this parameter should be set as the CLSID of the service provider in a string form. For more information about device parameters, see Device Parameters.

    Note

    The parameter value must be the CLSID, not the ProgID of the service provider.

     

  • The service provider for this device must implement the IMDServiceProvider2 interface.

  • The service provider key under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Media Device Manager\Plugins\SP\SPName must contain the following DWORD value

    PnPAware    1
    

Creating a Service Provider