Compartilhar via


Função IoGetDeviceInterfaceAlias (wdm.h)

A rotina IoGetDeviceInterfaceAlias retorna a interface do dispositivo de alias da instância de interface do dispositivo especificada, se o alias existir.

Sintaxe

NTSTATUS IoGetDeviceInterfaceAlias(
  [in]  PUNICODE_STRING SymbolicLinkName,
  [in]  const GUID      *AliasInterfaceClassGuid,
  [out] PUNICODE_STRING AliasSymbolicLinkName
);

Parâmetros

[in] SymbolicLinkName

Ponteiro para o nome da instância da interface do dispositivo para a qual recuperar um alias. O chamador normalmente recebeu essa cadeia de caracteres de uma chamada para IoGetDeviceInterfaces ou em uma estrutura de notificação PnP.

[in] AliasInterfaceClassGuid

Ponteiro para um GUID que especifica a classe de interface do alias a ser recuperado.

[out] AliasSymbolicLinkName

Especifica um ponteiro para uma cadeia de caracteres Unicode NULL . No retorno bem-sucedido, AliasSymbolicLinkName. O buffer aponta para uma cadeia de caracteres que contém o nome do alias. O chamador deve liberar a cadeia de caracteres Unicode com RtlFreeUnicodeString quando ela não for mais necessária.

Retornar valor

IoGetDeviceInterfaceAlias retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Possíveis valores retornados de erro são descritos a seguir.

Código de retorno Descrição
STATUS_OBJECT_NAME_NOT_FOUND
Possivelmente indica que não há nenhum alias da classe de interface especificada.
STATUS_OBJECT_PATH_NOT_FOUND
Possivelmente indica que não há nenhum alias da classe de interface especificada.
STATUS_INVALID_HANDLE
Possivelmente indica um SymbolicLinkName inválido ou um AliasClassGuid inválido.

Comentários

As interfaces do dispositivo serão consideradas aliases se forem expostas pelo mesmo dispositivo subjacente e tiverem cadeias de caracteres de referência de interface idênticas, mas forem de classes de interface diferentes.

O parâmetro SymbolicLinkName especifica uma instância de interface do dispositivo para um dispositivo específico, pertencente a uma classe de interface específica, com uma cadeia de caracteres de referência específica. IoGetDeviceInterfaceAlias retorna outra instância de interface do dispositivo para o mesmo dispositivo e cadeia de caracteres de referência, mas de uma classe de interface diferente, se existir.

Por exemplo, o driver de função para um volume tolerante a falhas pode registrar e definir duas interfaces de dispositivo, uma da classe de interface de volume tolerante a falhas e uma da classe de interface de volume. Outro driver poderia chamar IoGetDeviceInterfaceAlias com o link simbólico de uma das interfaces e perguntar se a outra interface existe especificando sua classe de interface.

Duas interfaces de dispositivo com cadeias de caracteres de referência NULL são aliases se forem expostas pelo mesmo dispositivo subjacente e tiverem GUIDs de classe de interface diferentes.

Os chamadores de IoGetDeviceInterfaceAlias devem estar em execução em IRQL = PASSIVE_LEVEL no contexto de um thread do sistema.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 2000.
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte a seção Comentários)
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Confira também

IoRegisterDeviceInterface

RtlFreeUnicodeString