Función WdfIoTargetQueryForInterface (wdfiotarget.h)
[Solo se aplica a KMDF]
El método WdfIoTargetQueryForInterface obtiene acceso a la interfaz definida por EL GUID definida por el controlador de un destino de E/S remoto.
Sintaxis
NTSTATUS WdfIoTargetQueryForInterface(
[in] WDFIOTARGET IoTarget,
[in] LPCGUID InterfaceType,
[out] PINTERFACE Interface,
[in] USHORT Size,
[in] USHORT Version,
[in, optional] PVOID InterfaceSpecificData
);
Parámetros
[in] IoTarget
Identificador de un objeto de destino de E/S remoto que se obtuvo de una llamada anterior a WdfIoTargetCreate.
[in] InterfaceType
Puntero a un GUID que identifica la interfaz.
[out] Interface
Puntero a una estructura asignada por el controlador que recibe la interfaz solicitada. Esta estructura se define mediante el controlador que exporta la interfaz solicitada y debe comenzar con una estructura INTERFACE .
[in] Size
Tamaño, en bytes, de la estructura asignada por el controlador a la que apunta interface .
[in] Version
Número de versión de la interfaz solicitada. El controlador que exporta la interfaz solicitada define el formato de este valor.
[in, optional] InterfaceSpecificData
Información adicional específica de la interfaz. Este parámetro es opcional y puede ser NULL.
Valor devuelto
WdfIoTargetQueryForInterface devuelve STATUS_SUCCESS si la operación se realiza correctamente. De lo contrario, este método podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
El parámetro IoTarget, InterfaceType o Interface es NULL. |
|
el marco no pudo asignar una solicitud para enviar a otro controlador. |
Este método también podría devolver otros valores NTSTATUS.
Se produce una comprobación de errores si el controlador proporciona un identificador de objeto no válido.
Comentarios
El controlador puede llamar a WdfIoTargetQueryForInterface para obtener acceso a una interfaz definida por el controlador creada por un controlador en una pila de controladores diferente. Para acceder a una interfaz definida por el controlador creada por un controlador que se encuentra en la misma pila de controladores que el controlador, el controlador debe llamar a WdfFdoQueryForInterface.
Los controladores basados en marcos definen interfaces llamando a WdfDeviceAddQueryInterface. Para obtener más información sobre las interfaces definidas por el controlador, consulte Uso de interfaces de Driver-Defined.
Ejemplos
En el ejemplo de código siguiente se intenta obtener acceso a una interfaz de destino de E/S remota especificada. GUID_RAWPDO_INTERFACE_STANDARD es el GUID que identifica la interfaz.
NTSTATUS status;
RAWPDO_INTERFACE_STANDARD busInterface;
status = WdfIoTargetQueryForInterface(
IoTarget,
&GUID_RAWPDO_INTERFACE_STANDARD,
(PINTERFACE) &busInterface,
sizeof(RAWPDO_INTERFACE_STANDARD),
1,
NULL
);
if (!NT_SUCCESS (status)){
return status;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Versión mínima de KMDF | 1.0 |
Encabezado | wdfiotarget.h (incluya Wdf.h) |
Library | Wdf01000.sys (consulte Control de versiones de la biblioteca de marcos). |
IRQL | PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |