Поделиться через


Метод IWMDMDevice2::GetCanonicalName (mswmdm.h)

Метод GetCanonicalName извлекает каноническое имя устройства.

Синтаксис

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

Параметры

[out] pwszPnPName

Расширенный буфер символов для канонических имен. Этот буфер должен быть выделен и освобожден вызывающим объектом.

[in] nMaxChars

Целое число, указывающее максимальное количество символов, которое может быть помещено в pwszPnPName, включая символ завершения.

Возвращаемое значение

Метод возвращает HRESULT. Допустимые значения включают, но не ограничиваются, значения, приведенные в следующей таблице.

Код возврата Описание
E_INVALIDARG
Параметр pwszPnPName является недопустимым или пустым указателем.
WMDM_E_NOTSUPPORTED
Устройство не поддерживает каноническое имя.
WMDM_E_BUFFERTOOSMALL
Указанный буфер слишком мал для канонического имени.
E_FAIL
Произошла неизвестная ошибка.

Комментарии

Приложение может использовать полученное каноническое имя для вызова IWMDeviceManager2::GetDeviceFromCanonicalName , чтобы снова найти это устройство.

Возвращенное каноническое имя имеет формат < Путь >устройства PnP$<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
Header mswmdm.h
Библиотека Mssachlp.lib

См. также раздел

Интерфейс IWMDMDevice2

IWMDeviceManager2::GetDeviceFromCanonicalName