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 |
---|---|
|
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 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) |