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 设备路径返回的设备对象的从零开始的索引。

规范名称的格式在 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