共用方式為


IWMDMDevice2::GetCanonicalName 方法 (mswmdm.h)

GetCanonicalName 方法會擷取裝置的正式名稱。

語法

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

參數

[out] pwszPnPName

標準名稱的寬字元緩衝區。 呼叫端必須配置並釋放此緩衝區。

[in] nMaxChars

整數,指定可在 pwszPnPName 中放置的最大字元數,包括終止字元。

傳回值

方法會傳回 HRESULT。 可能的值包括 (但不限於) 下表中的這些值。

傳回碼 Description
E_INVALIDARG
pwszPnPName 參數是無效或 NULL 指標。
WMDM_E_NOTSUPPORTED
裝置不支援標準名稱。
WMDM_E_BUFFERTOOSMALL
指定的緩衝區對於標準名稱而言太小。
E_FAIL
發生未指定的錯誤。

備註

應用程式可以使用擷取的正式名稱來呼叫 IWMDeviceManager2::GetDeviceFromCanonicalName ,以再次尋找此裝置。

傳回的標準名稱格式<為 PnP 裝置路徑>$<index,其中 index> 是服務提供者針對指定 PnP 裝置路徑傳回的裝置物件中以零起始的索引。

標準名稱的格式可能會在未來的 Windows 媒體 裝置管理員 版本中變更。

範例

下列 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
程式庫 Mssachlp.lib

另請參閱

IWMDMDevice2 介面

IWMDeviceManager2::GetDeviceFromCanonicalName