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 |
---|---|
|
Posiblemente indica que no hay ningún alias de la clase de interfaz especificada. |
|
Posiblemente indica que no hay ningún alias de la clase de interfaz especificada. |
|
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) |