EVT_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION función de devolución de llamada (sercx.h)
La función de devolución de llamada de eventos EvtSerCx2SystemDmaReceiveEnableNewDataNotification llama a la función de devolución de llamada de eventos de la versión 2 de la extensión del marco de serie (SerCx2) para permitir que el controlador del controlador serie notifique a SerCx2 cuando el controlador serie recibe nuevos datos.
Sintaxis
EVT_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION EvtSercx2SystemDmaReceiveEnableNewDataNotification;
void EvtSercx2SystemDmaReceiveEnableNewDataNotification(
[in] SERCX2SYSTEMDMARECEIVE SystemDmaReceive
)
{...}
Parámetros
[in] SystemDmaReceive
Identificador de SERCX2SYSTEMDMARECEIVE a un objeto system-DMA-receive. El controlador de controlador serie llamó anteriormente al método SerCx2SystemDmaReceiveCreate para crear este objeto.
Valor devuelto
Ninguno
Observaciones
El controlador de controlador serie puede, como opción, implementar esta función. Si se implementa, el controlador registra la función en el SerCx2SystemDmaReceiveCreate llamada que crea el objeto system-DMA-receive.
Después de llamar a la función EvtSerCx2SystemDmaReceiveEnableNewDataNotification para habilitar una notificación de datos nuevo para una transacción system-DMA-receive, El controlador del controlador serie debe llamar al método SerCx2SystemDmaReceiveNewDataNotification para notificar a SerCx2 cuando el controlador detecta que uno o varios bytes de datos recibidos están listos para ser transferidos o que el controlador DMA del sistema ya lo ha transferido.
La notificación de nuevos datos habilitada por la función EvtSerCx2SystemDmaReceiveEnableNewDataNotification es una notificación de captura única. Después de llamar a esta función y el controlador del controlador serie envía una notificación de datos nuevo a SerCx2, no se envía ninguna notificación adicional hasta que SerCx2 llame a la función de nuevo para habilitar otra notificación.
La función EvtSerCx2SystemDmaReceiveEnableNewDataNotification normalmente permite desencadenar una interrupción cuando el controlador serie recibe datos del dispositivo periférico.
No puede haber más de una notificación de datos nuevos pendiente a la vez. Después de que SerCx2 llama a la función EvtSerCx2SystemDmaReceiveEnableNewDataNotification para habilitar una notificación de datos nuevo, SerCx2 no llama a esta función de nuevo hasta que el controlador del controlador llame a SerCx2SystemDmaReceiveNewDataNotification.
Se puede cancelar una notificación de datos nuevos pendiente si la solicitud de lectura asociada agota el tiempo de espera o se cancela. Para cancelar una notificación de datos nueva para una transacción de recepción de system-DMA, SerCx2 llama a la función de devolución de llamada de eventos EvtSerCx2SystemDmaReceiveCancelNewDataNotification. Un controlador que implementa una función EvtSerCx2SystemDmaReceiveEnableNewDataNotification también debe implementar una función EvtSerCx2SystemDmaReceiveCancelNewDataNotification.
SerCx2 usa notificaciones de datos nuevos para administrar eficazmente 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 del sistema DMA.
Para obtener más información, vea SerCx2 System-DMA-Receive Transactions.
Ejemplos
Para definir un EvtSerCx2SystemDmaReceiveEnableNewDataNotification 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 EvtSerCx2SystemDmaReceiveEnableNewDataNotification función de devolución de llamada denominada MySystemDmaReceiveEnableNewDataNotification
, use el tipo de función EVT_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION, como se muestra en este ejemplo de código:
EVT_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_NOTIFICATION MySystemDmaReceiveEnableNewDataNotification;
A continuación, implemente la función de devolución de llamada de la siguiente manera:
_Use_decl_annotations_
VOID
MySystemDmaReceiveEnableNewDataNotification(
SERCX2SYSTEMDMARECEIVE SystemDmaReceive
)
{...}
El tipo de función EVT_SERCX2_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_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_SYSTEM_DMA_RECEIVE_ENABLE_NEW_DATA_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
EvtSerCx2SystemDmaReceiveCancelNewDataNotification