次の方法で共有


IWMDMDevice2::GetCanonicalName メソッド (mswmdm.h)

GetCanonicalName メソッドは、デバイスの正規名を取得します。

構文

HRESULT GetCanonicalName(
  [out] LPWSTR pwszPnPName,
  [in]  UINT   nMaxChars
);

パラメーター

[out] pwszPnPName

正規名のワイド文字バッファー。 このバッファーは、呼び出し元によって割り当てられ、解放される必要があります。

[in] nMaxChars

pwszPnPName に配置できる最大文字数 (終了文字を含む) を指定する整数。

戻り値

このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。

リターン コード 説明
E_INVALIDARG
pwszPnPName パラメーターが無効または NULL ポインターです。
WMDM_E_NOTSUPPORTED
デバイスは正規名をサポートしていません。
WMDM_E_BUFFERTOOSMALL
指定されたバッファーが標準名に対して小さすぎます。
E_FAIL
未指定のエラーが発生しました。

解説

アプリケーションは、取得した正規名を使用して IWMDeviceManager2::GetDeviceFromCanonicalName を呼び出して、このデバイスをもう一度見つけることができます。

返される正規名は PnP Device Path>$<index> の形式<です。ここで、index は、指定された PnP デバイス パスのサービス プロバイダーによって返されるデバイス オブジェクトへの 0 から始まるインデックスです。

正規名の形式は、Windows Media デバイス マネージャーの今後のリリースで変更される可能性があります。

次の C++ コードは、デバイスの正規名を取得します。


// Obtain an IWMDMDevice2 interface and call
// some methods.
const UINT MAX_CHARS = 100;
CComQIPtr<IWMDMDevice2> pIWMDMDevice2(pIWMDMDevice);
if (pIWMDMDevice2 != NULL)
{
    // Get the canonical name.
    WCHAR canonicalName[MAX_CHARS];
    hr = pIWMDMDevice2->GetCanonicalName(canonicalName, MAX_CHARS);
    if (hr == S_OK)
    {
        // TODO: Retrieve the canonical name.
    }

    // Find out the driver.
    myGetDriverName(pIWMDMDevice2);
}

要件

要件
対象プラットフォーム Windows
ヘッダー mswmdm.h
Library Mssachlp.lib

こちらもご覧ください

IWMDMDevice2 インターフェイス

IWMDeviceManager2::GetDeviceFromCanonicalName