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


Функция SetupDiGetDeviceInterfaceAlias (setupapi.h)

Функция SetupDiGetDeviceInterfaceAlias возвращает псевдоним указанного интерфейса устройства.

Синтаксис

WINSETUPAPI BOOL SetupDiGetDeviceInterfaceAlias(
  [in]  HDEVINFO                  DeviceInfoSet,
  [in]  PSP_DEVICE_INTERFACE_DATA DeviceInterfaceData,
  [in]  const GUID                *AliasInterfaceClassGuid,
  [out] PSP_DEVICE_INTERFACE_DATA AliasDeviceInterfaceData
);

Параметры

[in] DeviceInfoSet

Указатель на набор сведений об устройстве , содержащий интерфейс устройства, для которого требуется получить псевдоним. Этот дескриптор обычно возвращается SetupDiGetClassDevs.

[in] DeviceInterfaceData

Указатель на структуру SP_DEVICE_INTERFACE_DATA , указывающую интерфейс устройства в DeviceInfoSet , для которого требуется получить псевдоним. Этот указатель обычно возвращается программой SetupDiEnumDeviceInterfaces.

[in] AliasInterfaceClassGuid

Указатель на GUID, указывающий класс интерфейса извлекаемого псевдонима.

[out] AliasDeviceInterfaceData

Указатель на буфер, выделенный вызывающим объектом, который содержит завершенную структуру SP_DEVICE_INTERFACE_DATA , идентифицирующая запрошенный псевдоним. Перед вызовом этой функции вызывающий объект должен задать для AliasDeviceInterfaceData.cbSizeзначение sizeof(SP_DEVICE_INTERFACE_DATA).

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

SetupDiGetDeviceInterfaceAlias возвращает значение TRUE , если функция завершена без ошибок. Если функция завершилась ошибкой, возвращается значение FALSE , а код ошибки для сбоя можно получить, вызвав Метод GetLastError.

Возможные ошибки, возвращаемые GetLastError , перечислены в следующей таблице.

Код возврата Описание
ERROR_INVALID_PARAMETER
Недопустимый параметр DeviceInfoSet или недопустимый параметр DeviceInterfaceData.
ERROR_NO_SUCH_INTERFACE_DEVICE
Псевдоним класса AliasInterfaceClassGuid для указанного интерфейса устройства отсутствует.
ERROR_INVALID_USER_BUFFER
Недопустимый буфер AliasDeviceInterfaceData.

Комментарии

Интерфейсы устройств считаются псевдонимами, если они относятся к разным классам интерфейсов, но поддерживаются одним и тем же устройством и имеют одинаковые ссылочные строки.

SetupDiGetDeviceInterfaceAlias можно использовать для поиска устройства, которое предоставляет несколько интерфейсов. Например, рассмотрим диск, который может быть частью отказоустойчивого тома и может содержать зашифрованные данные. Драйвер функции для дискового устройства может зарегистрировать интерфейс отказоустойчивого тома и интерфейс зашифрованного тома. Эти интерфейсы являются псевдонимами интерфейса устройства, если драйвер функции регистрирует их с идентичными ссылочными строками и ссылается на одно и то же устройство. (Ссылочные строки, скорее всего, будут иметь значение NULL и, следовательно, равны.)

Чтобы найти такое устройство с несколькими интерфейсами, сначала найдите все доступные устройства, предоставляющие один из интерфейсов, например интерфейс отказоустойчивого тома, с помощью SetupDiGetClassDevs и SetupDiEnumDeviceInterfaces. Затем передайте устройство с первым интерфейсом (отказоустойчивый том) в SetupDiGetDeviceInterfaceAlias и запросите псевдоним другого класса интерфейса (зашифрованный том).

Если запрошенный псевдоним существует, но предоставленный вызывающей стороны буфер AliasDeviceInterfaceData недопустим, эта функция успешно добавляет элемент интерфейса устройства в DevInfoSet , но возвращает значение FALSE для возвращаемого значения. В этом случае GetLastError возвращает ERROR_INVALID_USER_BUFFER.

Требования

Требование Значение
Минимальная версия клиента Доступно в Microsoft Windows 2000 и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть setupapi.h (включая Setupapi.h)
Библиотека Setupapi.lib
DLL Setupapi.dll

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

SetupDiEnumDeviceInterfaces

SetupDiGetClassDevs