EVT_SERCX2_PURGE_FIFOS función de devolución de llamada (sercx.h)
La función de devolución de llamada de eventos EvtSerCx2PurgeFifos llama a la versión 2 de la extensión del marco 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 identificador WDFDEVICE para el objeto de dispositivo de marco que representa el controlador serie. El controlador de 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 FALSE, no purgue el FIFO de recepción.
[in] PurgeTxFifo
Si se va a purgar la transmisión de FIFO. Si este parámetro se establece en TRUE, purgue el FIFO de transmisión. Si FALSE, no purgue el FIFO de transmisión.
Valor devuelto
Ninguno
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 de IOCTL_SERIAL_PURGE que requiere que se purguen uno o ambos búferes FIFO en el hardware del controlador serie. 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 del controlador serie y obtiene un identificador de archivo para esta conexión. Para obtener más información, vea Framework File Objects.
Ejemplos
Para definir un EvtSerCx2PurgeFifos función de devolución de llamada, 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 un EvtSerCx2PurgeFifos función de devolución de llamada 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, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible a partir de Windows 8.1. |
de la plataforma de destino de |
Escritorio |
encabezado de |
sercx.h |
irQL | Se llama en PASSIVE_LEVEL. |