Функция 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 , перечислены в следующей таблице.
Код возврата | Описание |
---|---|
|
Недопустимый параметр DeviceInfoSet или недопустимый параметр DeviceInterfaceData. |
|
Псевдоним класса AliasInterfaceClassGuid для указанного интерфейса устройства отсутствует. |
|
Недопустимый буфер 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 |