Функция IoGetDeviceInterfaceAlias (wdm.h)
Подпрограмма IoGetDeviceInterfaceAlias возвращает интерфейс псевдонима устройства указанного экземпляра интерфейса устройства, если псевдоним существует.
Синтаксис
NTSTATUS IoGetDeviceInterfaceAlias(
[in] PUNICODE_STRING SymbolicLinkName,
[in] const GUID *AliasInterfaceClassGuid,
[out] PUNICODE_STRING AliasSymbolicLinkName
);
Параметры
[in] SymbolicLinkName
Указатель на имя экземпляра интерфейса устройства, для которого требуется получить псевдоним. Вызывающий объект обычно получает эту строку из вызова IoGetDeviceInterfaces или в структуре уведомлений PnP.
[in] AliasInterfaceClassGuid
Указатель на GUID, указывающий класс интерфейса извлекаемого псевдонима.
[out] AliasSymbolicLinkName
Указывает указатель на строку Юникода NULL . При успешном возвращении — AliasSymbolicLinkName. Buffer указывает на строку, содержащую имя псевдонима. Вызывающий объект должен освободить строку Юникода с помощью RtlFreeUnicodeString , если она больше не нужна.
Возвращаемое значение
IoGetDeviceInterfaceAlias возвращает STATUS_SUCCESS, если вызов был успешным. Возможные возвращаемые значения ошибок описаны ниже.
Код возврата | Описание |
---|---|
|
Возможно, указывает на отсутствие псевдонима указанного класса интерфейса. |
|
Возможно, указывает на отсутствие псевдонима указанного класса интерфейса. |
|
Возможно, указывает на недопустимое значение SymbolicLinkName или недопустимый AliasClassGuid. |
Комментарии
Интерфейсы устройств считаются псевдонимами, если они предоставляются одним и тем же базовым устройством и имеют одинаковые строки ссылок на интерфейс, но имеют разные классы интерфейсов.
Параметр SymbolicLinkName указывает экземпляр интерфейса устройства для определенного устройства, относящегося к определенному классу интерфейса, с определенной ссылочной строкой. IoGetDeviceInterfaceAlias возвращает другой экземпляр интерфейса устройства для того же устройства и ссылочной строки, но другого класса интерфейса, если он существует.
Например, драйвер функции для отказоустойчивого тома может зарегистрировать и задать два интерфейса устройства: один из классов интерфейса отказоустойчивого тома и один из классов интерфейса тома. Другой драйвер может вызвать IoGetDeviceInterfaceAlias с символьной ссылкой для одного из интерфейсов и задать, существует ли другой интерфейс, указав его класс интерфейса.
Два интерфейса устройства со ссылочными строками NULL являются псевдонимами, если они предоставляются тем же базовым устройством и имеют разные идентификаторы GUID класса интерфейса.
Вызывающие объект IoGetDeviceInterfaceAlias должны выполняться в irQL = PASSIVE_LEVEL в контексте системного потока.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows 2000. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (см. раздел "Примечания") |
Правила соответствия DDI | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |