Compartir a través de


EVT_SERCX2_PURGE_FIFOS función de devolución de llamada (sercx.h)

La función de devolución de llamada de eventos EvtSerCx2PurgeFifos se llama mediante la versión 2 de la extensión del marco de trabajo serie (SerCx2) para purgar los búferes FIFO en el hardware del controlador serie.

Sintaxis

EVT_SERCX2_PURGE_FIFOS EvtSercx2PurgeFifos;

void EvtSercx2PurgeFifos(
  [in] WDFDEVICE Device,
  [in] BOOLEAN PurgeRxFifo,
  [in] BOOLEAN PurgeTxFifo
)
{...}

Parámetros

[in] Device

Un controlador WDFDEVICE para el objeto de dispositivo de marco que representa el controlador serie. El controlador del controlador serie creó este objeto en su función de devolución de llamada EvtDriverDeviceAdd . Para obtener más información, vea SerCx2InitializeDevice.

[in] PurgeRxFifo

Si se va a purgar el FIFO de recepción. Si este parámetro se establece en TRUE, purgue el FIFO de recepción. Si es FALSE, no purgue el FIFO de recepción.

[in] PurgeTxFifo

Si se va a purgar el FIFO de transmisión. Si este parámetro se establece en TRUE, purgue el FIFO de transmisión. Si es FALSE, no purgue el FIFO de transmisión.

Valor devuelto

None

Observaciones

El controlador de controlador serie debe implementar esta función. El controlador registra la función en la llamada al método SerCx2InitializeDevice que finaliza la inicialización del objeto de dispositivo de marco para el controlador serie.

SerCx2 llama a la función EvtSerCx2PurgeFifos cuando un cliente (controlador periférico) envía una solicitud de control IOCTL_SERIAL_PURGE que requiere uno o ambos búferes FIFO en el hardware del controlador serie que se va a purgar. Si la solicitud de control de IOCTL_SERIAL_PURGE requiere que se cancelen las solicitudes de lectura o escritura pendientes (IRP_MJ_READ o IRP_MJ_WRITE), SerCx2 cancela estas solicitudes antes de llamar a la función EvtSerCx2PurgeFifos .

SerCx2 también llama a la función EvtSerCx2PurgeFifos cuando un cliente abre una conexión lógica al dispositivo de controlador serie y obtiene un identificador de archivo para esta conexión. Para obtener más información, vea Objetos de archivo de marco.

Ejemplos

Para definir una función de devolución de llamada EvtSerCx2PurgeFifos , primero debe proporcionar una declaración de función que identifique el tipo de función de devolución de llamada que está definiendo. Windows proporciona un conjunto de tipos de función de devolución de llamada para controladores. Declarar una función mediante los tipos de función de devolución de llamada ayuda a Análisis de código para controladores, Comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.

Por ejemplo, para definir una función de devolución de llamada EvtSerCx2PurgeFifos denominada MyPurgeFifos, use el tipo de función EVT_SERCX2_PURGE_FIFOS , como se muestra en este ejemplo de código:

EVT_SERCX2_PURGE_FIFOS  MyPurgeFifos;

A continuación, implemente la función de devolución de llamada de la siguiente manera:

_Use_decl_annotations_
VOID
  MyPurgeFifos(
    WDFDEVICE  Device,
    BOOLEAN PurgeRxFifo,
    BOOLEAN PurgeTxFifo
    )
  {...}

El tipo de función EVT_SERCX2_PURGE_FIFOS se define en el archivo de encabezado Sercx.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función EVT_SERCX2_PURGE_FIFOS en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte Declaración de funciones mediante tipos de rol de función para controladores KMDF. Para obtener más información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 8.1.
Plataforma de destino Escritorio
Encabezado sercx.h
IRQL Se llama en PASSIVE_LEVEL.

Consulte también

IOCTL_SERIAL_PURGE

SerCx2InitializeDevice