EVT_SERCX2_PIO_RECEIVE_ENABLE_READY_NOTIFICATION función de devolución de llamada (sercx.h)
La función de devolución de llamada de eventos EvtSerCx2PioReceiveEnableReadyNot ification se llama mediante la versión 2 de la extensión de marco serie (SerCx2) para permitir que el controlador del controlador serie notifique a SerCx2 cuando el controlador serie recibe nuevos datos.
Sintaxis
EVT_SERCX2_PIO_RECEIVE_ENABLE_READY_NOTIFICATION EvtSercx2PioReceiveEnableReadyNotification;
void EvtSercx2PioReceiveEnableReadyNotification(
[in] SERCX2PIORECEIVE PioReceive
)
{...}
Parámetros
[in] PioReceive
Identificador de SERCX2PIORECEIVE a un objeto pio-receive. El controlador de controlador serie llamó anteriormente al método SerCx2PioReceiveCreate para crear este objeto.
Valor devuelto
Ninguno
Observaciones
El controlador de controlador serie debe implementar esta función. El controlador registra la función en la llamada SerCx2PioReceiveCreate que crea el objeto PIO-receive.
Después de llamar a la función EvtSerCx2PioReceiveEnableReadyNotification para habilitar una notificación lista para una transacción de recepción de PIO, el controlador de controlador de serie debe llamar al método SerCx2PioReceiveReady para notificar a SerCx2 cuando el controlador detecta que uno o varios bytes de datos están disponibles para leerse desde el FIFO de recepción en el hardware del controlador serie. Si los datos ya están disponibles en el FIFO de recepción cuando la notificación lista está habilitada, el controlador llama inmediatamente a este método para notificar a SerCx2.
La notificación lista para una transacción de recepción de PIO es una notificación única. Después de enviar una notificación lista a SerCx2, el controlador del controlador serie no envía más notificaciones hasta que SerCx2 llama a la función EvtSerCx2PioReceiveEnableReadyNotification función para habilitar otra notificación.
Una llamada a la función de devolución de llamada de eventos EvtSerCx2PioReceiveReadBu ffer solo puede completar parcialmente una transacción de recepción de PIO porque no hay más datos disponibles para leerse desde el FIFO de recepción. En este caso, SerCx2 llama a la función EvtSerCx2PioReceiveEnableReadyNotification para habilitar una notificación lista, en cuyo caso el controlador del controlador serie debe notificar a SerCx2 cuando el FIFO de recepción contiene más datos. En respuesta a esta notificación, SerCx2 reanuda la transacción de recepción completada parcialmente llamando a la función EvtSerCx2PioReceiveReadBuffer de nuevo.
Normalmente, una función de EvtSerCx2PioReceiveEnableReadyNotification permite una interrupción que se produce cuando el controlador serie tiene más datos disponibles para ser leídos. En respuesta a esta interrupción, el controlador de controlador serie llama a SerCx2PioReceiveReady.
No puede haber más de una notificación lista pendiente a la vez. Después de que SerCx2 llama a la función EvtSerCx2PioReceiveEnableReadyNotification para habilitar una notificación lista, SerCx2 no llama a esta función de nuevo hasta que el controlador del controlador llame a SerCx2PioReceiveReady.
SerCx2 nunca llama a la función EvtSerCx2PioReceiveReadBuffer cuando la notificación lista está habilitada.
Se puede cancelar una notificación lista pendiente si la solicitud de lectura asociada agota el tiempo de espera o se cancela. Para cancelar una notificación lista para una transacción de recepción de PIO, SerCx2 llama a la función de devolución de llamada de eventos EvtSerCx2PioReceiveCancelReadyNot ification.
SerCx2 usa notificaciones listas para administrar de forma eficaz los tiempos de espera de intervalo que se producen durante el control de las solicitudes de lectura que se procesan como transacciones de recepción de PIO.
Para obtener más información, vea SerCx2 PIO-Receive Transactions.
Ejemplos
Para definir un función de devolución de llamada EvtSerCx2PioReceiveEnableReadyNot ification, primero debe proporcionar una declaración de función que identifique el tipo de función 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 EvtSerCx2PioReceiveEnableReadyNotification función de devolución de llamada denominada MyPioReceiveEnableReadyNotification
, use el tipo de función EVT_SERCX2_PIO_RECEIVE_ENABLE_READY_NOTIFICATION, como se muestra en este ejemplo de código:
EVT_SERCX2_PIO_RECEIVE_ENABLE_READY_NOTIFICATION MyPioReceiveEnableReadyNotification;
A continuación, implemente la función de devolución de llamada de la siguiente manera:
_Use_decl_annotations_
VOID
MyPioReceiveEnableReadyNotification(
SERCX2PIORECEIVE PioReceive
)
{...}
El tipo de función EVT_SERCX2_PIO_RECEIVE_ENABLE_READY_NOTIFICATION 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_PIO_RECEIVE_ENABLE_READY_NOTIFICATION 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 a irQL <= DISPATCH_LEVEL. |
Consulte también
EvtSerCx2PioReceiveCancelReadyNotification