Compartir a través de


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

La función de devolución de llamada de eventos EvtSerCx2SystemDmaTransmitPurgeFi fo se llama mediante la versión 2 de la extensión del marco de serie (SerCx2) para descartar los bytes de datos sin enviar que permanecen en la transmisión de FIFO en el hardware del controlador serie.

Sintaxis

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO EvtSercx2SystemDmaTransmitPurgeFifo;

void EvtSercx2SystemDmaTransmitPurgeFifo(
  [in] SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
  [in] ULONG BytesAlreadyTransmittedToHardware
)
{...}

Parámetros

[in] SystemDmaTransmit

Identificador de SERCX2SYSTEMDMATRANSMIT a un objeto system-DMA-transmit. Anteriormente, el controlador de controlador serie llamó al método SerCx2SystemDmaTransmitCreate para crear este objeto.

[in] BytesAlreadyTransmittedToHardware

Número de bytes que ya se han cargado en la transmisión FIFO durante la transacción system-DMA-transmit actual.

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 SerCx2SystemDmaTransmitCreate llamada que crea el objeto system-DMA-transmit.

El controlador debe implementar una función EvtSerCx2SystemDmaTransmitPurgeFifo 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 el EvtSerCx2SystemDmaTransmitDrainFifo y EvtSerCx2SystemDmaTransmitCancelDrainFifo funciones de devolución de llamada de eventos.

Si una solicitud de escritura pendiente (IRP_MJ_WRITE) agota el tiempo de espera o se cancela, Es posible que SerCx2 necesite finalizar la transacción system-DMA actual antes de que finalice. Una vez finalizada la transacción, SerCx2 llama a la función EvtSerCx2SystemDmaTransmitPurgeFifo, si se implementa.

La función EvtSerCx2SystemDmaTransmitPurgeFifo detiene la transferencia de datos del búfer de escritura al FIFO de transmisión y descarta los datos transferidos previamente que permanezcan en el FIFO. Una vez finalizada la transacción de transmisión, el controlador debe llamar al SerCx2SystemDmaTransmitPurgeFifoComplete método para notificar a SerCx2 que fiFO se purgó y, a continuación, SerCx2 completa la solicitud de escritura.

Para obtener más información, vea SerCx2 System-DMA-Transmit Transactions.

Ejemplos

Para definir una función de devolución de llamada EvtSerCx2SystemDmaTransmitPurgeFifo, 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 EvtSerCx2SystemDmaTransmitPurgeFifo función de devolución de llamada denominada MySystemDmaTransmitPurgeFifo, use el tipo de función EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO, como se muestra en este ejemplo de código:

EVT_SERCX2_SYSTEM_DMA_TRANSMIT_PURGE_FIFO  MySystemDmaTransmitPurgeFifo;

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

_Use_decl_annotations_
VOID
  MySystemDmaTransmitPurgeFifo(
    SERCX2SYSTEMDMATRANSMIT  SystemDmaTransmit,
    ULONG BytesAlreadyTransmittedToHardware
    )
  {...}

El tipo de función EVT_SERCX2_SYSTEM_DMA_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_SYSTEM_DMA_TRANSMIT_PURGE_FIFO 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

EvtSerCx2SystemDmaTransmitCancelDrainFifo

EvtSerCx2SystemDmaTransmitDrainFifo

IRP_MJ_WRITE

SERCX2SYSTEMDMATRANSMIT

SerCx2SystemDmaTransmitCreate

SerCx2SystemDmaTransmitPurgeFifoComplete