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 设备路径>$<索引>的格式,其中 索引 是服务提供程序为指定 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);
}

要求

要求 价值
目标平台 窗户
标头 mswmdm.h
Mssachlp.lib

另请参阅

IWMDMDevice2 接口

IWMDeviceManager2::GetDeviceFromCanonicalName