Compartir a través de


Función WdfFdoQueryForInterface (wdffdo.h)

[Solo se aplica a KMDF]

El método WdfFdoQueryForInterface obtiene acceso a la interfaz identificada por GUID de otro controlador.

Sintaxis

NTSTATUS WdfFdoQueryForInterface(
  [in]           WDFDEVICE  Fdo,
  [in]           LPCGUID    InterfaceType,
  [out]          PINTERFACE Interface,
  [in]           USHORT     Size,
  [in]           USHORT     Version,
  [in, optional] PVOID      InterfaceSpecificData
);

Parámetros

[in] Fdo

Identificador de un objeto de dispositivo de marco.

[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 que representa la interfaz solicitada.

[in] Version

Número de versión de la interfaz solicitada. El formato de este valor se define mediante el controlador que exporta la interfaz solicitada.

[in, optional] InterfaceSpecificData

Información adicional específica de la interfaz. Este parámetro es opcional y se puede NULL.

Valor devuelto

Si la operación se realiza correctamente, el método devuelve STATUS_SUCCESS. Entre los valores devueltos adicionales se incluyen:

Código de retorno Descripción
STATUS_INVALID_PARAMETER
El objeto de dispositivo no es válido o si el Device, InterfaceTypeo parámetro Interface es null.
STATUS_INSUFFICIENT_RESOURCES
El marco no pudo asignar una solicitud para enviar a otro controlador.
 

El método también puede devolver otros valores de NTSTATUS.

Se produce una comprobación de errores del sistema si el controlador proporciona un identificador de objeto no válido.

Observaciones

El controlador puede llamar a WdfFdoQueryForInterface para obtener acceso a una interfaz definida por el controlador creada por un controlador que se encuentra en la misma pila de controladores en la que se encuentra el controlador. Para acceder a una interfaz definida por el controlador creada por un controlador que se encuentra en una pila de controladores diferente, el controlador debe llamar a WdfIoTargetQueryForInterface.

Los controladores basados en marcos definen interfaces llamando a WdfDeviceAddQueryInterface.

Para obtener más información sobre WdfFdoQueryForInterface, vea Using Driver-Defined Interfaces.

Ejemplos

El ejemplo de código siguiente procede del controlador de función de ejemplo Toaster. En este ejemplo se obtiene acceso a una interfaz que define el controlador de bus de ejemplo del tostador.

status = WdfFdoQueryForInterface(
                                 Device,
                                 &GUID_TOASTER_INTERFACE_STANDARD,
                                 (PINTERFACE) &fdoData->BusInterface, // Object context space
                                 sizeof(TOASTER_INTERFACE_STANDARD),
                                 1,
                                 NULL
                                 );

Requisitos

Requisito Valor
de la plataforma de destino de Universal
versión mínima de KMDF 1.0
encabezado wdffdo.h (incluya Wdf.h)
Biblioteca 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

WdfIoTargetQueryForInterface