デバイスの列挙 (WMDM)
Windows Media デバイス マネージャーは、Windows Media デバイス マネージャー アプリケーションの起動時、プラグ アンド プレイ (PnP) デバイスの接続または切断時、またはアプリケーションが IWMDeviceManager2::Reinitialize を呼び出すときに更新される、接続されたデバイスのキャッシュを保持します。 このキャッシュは、IWMDeviceManager::EnumDevices または IWMDeviceManager2::EnumDevices2 を呼び出すときにアプリケーションに公開されます。 各デバイスは、 IWMDMDevice インターフェイスとしてアプリケーションに公開されます。 PnP デバイスを処理するためにサービス プロバイダーが登録されている場合、Windows Media デバイス マネージャーは接続されているデバイスの現在の一覧を認識します。 サービス プロバイダーが PnP 以外のデバイスを処理するように登録されている場合、サービス プロバイダーは接続されているデバイスを検出する責任を負います。 サービス プロバイダーは、PnP または PnP 以外のデバイスにのみ登録でき、両方を登録することはできません。
次のアクションは、Windows Media デバイス マネージャーがキャッシュを維持または更新する方法を示しています。 PnP 以外のデバイスが接続または切断された場合、キャッシュは更新されません。
Windows Media デバイス マネージャー アプリケーションが起動する
- Windows Media デバイス マネージャーは、PnP サブシステムから接続されている PnP デバイスの一覧を取得し、接続されている各デバイスに登録されている SP で IMDServiceProvider2::CreateDevice を呼び出します。 (このデバイスを担当するサービス プロバイダーのクラス ID について WMDMSPCLSID デバイス パラメーターに対してクエリを実行して、正しいサービス プロバイダーを検出します。詳細については、「デバイス パラメーター」を参照してください)。返されるすべてのデバイスは、デバイスの Windows Media デバイス マネージャー キャッシュに追加されます。
- Windows Media デバイス マネージャーは、登録されているすべての PnP 以外のサービス プロバイダーを検索し、各サービス プロバイダーで IMDServiceProvider::EnumDevices を呼び出して、各サービス プロバイダーからリスト デバイスを取得します。 返されるすべてのデバイスがキャッシュに追加されます。
アプリケーションは IWMDeviceManager/2::EnumDevices/2 を呼び出します
- Windows Media デバイス マネージャーは、キャッシュされたデバイスリストを返します。
PnP デバイスが接続する
- Windows Media デバイス マネージャーは、関連するサービス プロバイダーを検索し、IMDServiceProvider2::CreateDevice を呼び出して、デバイスをキャッシュに追加します。
- アプリケーションで IWMDMNotification が実装されている場合、Windows Media デバイス マネージャーは到着通知を使用して IWMDMNotification::WMDMMessage を呼び出します。
PnP デバイスが切断される
- Windows Media デバイス マネージャーは、キャッシュから項目を削除します。
- アプリケーションで IWMDMNotification が実装されている場合、Windows Media デバイス マネージャーは出発通知を使用して IWMDMNotification::WMDMMessage を呼び出します。
アプリケーションは IWMDeviceManager2::Reinitialize を呼び出します
- 接続されているすべてのデバイスでキャッシュを更新します。
PnP 以外のデバイスが接続または切断される
- Windows Media デバイス マネージャー は到着または出発の通知を受け取らず、何も行いません。
関連トピック