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
STATUS_INVALID_PARAMETER
El parámetro IoTarget, InterfaceType o Interface es NULL.
STATUS_INSUFFICIENT_RESOURCES
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)

Consulte también

INTERFAZ

WdfDeviceAddQueryInterface

WdfFdoQueryForInterface

WdfIoTargetCreate