EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO función de devolución de llamada (sercx.h)
La función de devolución de llamada de eventos EvtSerCx2PioTransmitPurgeFifo se llama mediante la versión 2 de la extensión del marco de trabajo serie (SerCx2) para descartar los bytes de datos sin enviar que permanecen en el FIFO de transmisión en el controlador serie.
Sintaxis
EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO EvtSercx2PioTransmitPurgeFifo;
void EvtSercx2PioTransmitPurgeFifo(
[in] SERCX2PIOTRANSMIT PioTransmit,
[in] ULONG BytesAlreadyTransmittedToHardware
)
{...}
Parámetros
[in] PioTransmit
Identificador de SERCX2PIOTRANSMIT a un objeto pio-transmit. El controlador de serie anteriormente llamó al método SerCx2PioTransmitCreate para crear este objeto.
[in] BytesAlreadyTransmittedToHardware
Número de bytes que ya se han cargado en el FIFO de transmisión durante la transacción actual pio-transmit. Este parámetro es la suma de todos los bytes transferidos en llamadas anteriores a la función de devolución de llamada de eventos EvtSerCx2PioTransmitWriteBuffer que forman parte de esta transacción.
Valor devuelto
None
Observaciones
El controlador de controlador serie puede, como opción, implementar esta función. Si se implementa, el controlador registra la función en la llamada SerCx2PioTransmitCreate que crea el objeto pio-transmit.
El controlador debe implementar una función EvtSerCx2PioTransmitPurgeFifo si el controlador serie tiene un FIFO de hardware (o mecanismo de almacenamiento en búfer similar) para contener datos de transmisión. Si el controlador implementa esta función, también debe implementar las funciones de devolución de llamada de eventos EvtSerCx2PioTransmitDrainFifo y EvtSerCx2PioTransmitCancelDrainFifo .
SerCx2 inicia una transacción pio-transmit en respuesta a una solicitud de escritura (IRP_MJ_WRITE) de un cliente. Si esta solicitud agota el tiempo de espera o se cancela antes de que finalice, SerCx2 llama a la función EvtSerCx2PioTransmitPurgeFifo , si se implementa, para purgar los datos sin enviar que podrían permanecer en el FIFO de transmisión.
Después de purgar fiFO de transmisión, la función EvtSerCx2PioTransmitPurgeFifo debe llamar al método SerCx2PioTransmitPurgeFifoComplete para notificar a SerCx2 que el FIFO se purgó y SerCx2 completa la solicitud de escritura.
Para obtener más información, vea SerCx2 PIO-Transmit Transactions.
Ejemplos
Para definir una función de devolución de llamada EvtSerCx2PioTransmitPurgeFifo , 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 EvtSerCx2PioTransmitPurgeFifo denominada MyPioTransmitPurgeFifo
, use el tipo de función EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO , como se muestra en este ejemplo de código:
EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO MyPioTransmitPurgeFifo;
A continuación, implemente la función de devolución de llamada de la siguiente manera:
_Use_decl_annotations_
VOID
MyPioTransmitPurgeFifo(
SERCX2PIOTRANSMIT PioTransmit,
ULONG BytesAlreadyTransmittedToHardware
)
{...}
El tipo de función EVT_SERCX2_PIO_TRANSMIT_PURGE_FIFO 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_TRANSMIT_PURGE_FIFO del 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 IRQL <= DISPATCH_LEVEL. |
Consulte también
EvtSerCx2SystemDmaTransmitCancelDrainFifo
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de