Función IoGetDeviceInterfaceAlias (wdm.h)

La rutina IoGetDeviceInterfaceAlias devuelve la interfaz de dispositivo de alias de la instancia de interfaz de dispositivo especificada, si el alias existe.

Sintaxis

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

Parámetros

[in] SymbolicLinkName

Puntero al nombre de la instancia de interfaz de dispositivo para la que se va a recuperar un alias. El autor de la llamada normalmente recibió esta cadena de una llamada a IoGetDeviceInterfaces o en una estructura de notificación PnP.

[in] AliasInterfaceClassGuid

Puntero a un GUID que especifica la clase de interfaz del alias que se va a recuperar.

[out] AliasSymbolicLinkName

Especifica un puntero a una cadena Unicode NULL . Si la devolución es correcta, AliasSymbolicLinkName. El búfer apunta a una cadena que contiene el nombre del alias. El autor de la llamada debe liberar la cadena Unicode con RtlFreeUnicodeString cuando ya no se necesite.

Valor devuelto

IoGetDeviceInterfaceAlias devuelve STATUS_SUCCESS si la llamada se realizó correctamente. Los posibles valores devueltos de error se describen a continuación.

Código devuelto Descripción
STATUS_OBJECT_NAME_NOT_FOUND
Posiblemente indica que no hay ningún alias de la clase de interfaz especificada.
STATUS_OBJECT_PATH_NOT_FOUND
Posiblemente indica que no hay ningún alias de la clase de interfaz especificada.
STATUS_INVALID_HANDLE
Posiblemente indica un TokenLinkName no válido o un AliasClassGuid no válido.

Comentarios

Las interfaces de dispositivo se consideran alias si están expuestas por el mismo dispositivo subyacente y tienen cadenas de referencia de interfaz idénticas, pero son de clases de interfaz diferentes.

El parámetro SymbolicLinkName especifica una instancia de interfaz de dispositivo para un dispositivo determinado, que pertenece a una clase de interfaz determinada, con una cadena de referencia determinada. IoGetDeviceInterfaceAlias devuelve otra instancia de interfaz de dispositivo para el mismo dispositivo y cadena de referencia, pero de una clase de interfaz diferente, si existe.

Por ejemplo, el controlador de función para un volumen tolerante a errores podría registrar y establecer dos interfaces de dispositivo, una de las clases de interfaz de volumen tolerantes a errores y una de las clases de interfaz de volumen. Otro controlador podría llamar a IoGetDeviceInterfaceAlias con el vínculo simbólico de una de las interfaces y preguntar si existe la otra interfaz especificando su clase de interfaz.

Dos interfaces de dispositivo con cadenas de referencia NULL son alias si están expuestos por el mismo dispositivo subyacente y tienen GUID de clase de interfaz diferentes.

Los autores de llamadas de IoGetDeviceInterfaceAlias deben ejecutarse en IRQL = PASSIVE_LEVEL en el contexto de un subproceso del sistema.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 2000.
Plataforma de destino Universal
Encabezado wdm.h (incluya Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
Archivo DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte la sección Comentarios)
Reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

IoRegisterDeviceInterface

RtlFreeUnicodeString