IWMDMDevice2::GetCanonicalName メソッド (mswmdm.h)
GetCanonicalName メソッドは、デバイスの正規名を取得します。
構文
HRESULT GetCanonicalName(
[out] LPWSTR pwszPnPName,
[in] UINT nMaxChars
);
パラメーター
[out] pwszPnPName
正規名のワイド文字バッファー。 このバッファーは、呼び出し元によって割り当てられ、解放される必要があります。
[in] nMaxChars
pwszPnPName に配置できる最大文字数 (終了文字を含む) を指定する整数。
戻り値
このメソッドは HRESULT を返します。 有効な値を次の表に示しますが、これ以外にもあります。
リターン コード | 説明 |
---|---|
|
pwszPnPName パラメーターが無効または NULL ポインターです。 |
|
デバイスは正規名をサポートしていません。 |
|
指定されたバッファーが標準名に対して小さすぎます。 |
|
未指定のエラーが発生しました。 |
解説
アプリケーションは、取得した正規名を使用して 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 |