Compartir a través de


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 un cadena Unicode NULL. Si se devuelve correctamente, AliasSymbolicLinkName.buffer 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 sea necesario.

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 de SymbolicLinkName no válido o un AliasClassGuid no válido.

Observaciones

Las interfaces de dispositivo se consideran alias si están expuestos 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 para 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 Valor
cliente mínimo admitido Disponible a partir de Windows 2000.
de la plataforma de destino de Universal
encabezado de wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
biblioteca de NtosKrnl.lib
DLL de NtosKrnl.exe
irQL PASSIVE_LEVEL (consulte la sección Comentarios)
reglas de cumplimiento de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Consulte también

IoRegisterDeviceInterface

RtlFreeUnicodeString