SerCx2PioTransmitPurgeFifoComplete function (sercx.h)

The SerCx2PioTransmitPurgeFifoComplete method notifies version 2 of the serial framework extension (SerCx2) that the serial controller driver has finished purging the data from the transmit FIFO in the serial controller hardware.

Syntax

void SerCx2PioTransmitPurgeFifoComplete(
  [in] SERCX2PIOTRANSMIT PioTransmit,
  [in] ULONG             BytesPurged
);

Parameters

[in] PioTransmit

A SERCX2PIOTRANSMIT handle to a PIO-transmit object. The serial controller driver previously called the SerCx2PioTransmitCreate method to create this object.

[in] BytesPurged

The number of bytes of unsent data that the serial controller driver purged from the transmit FIFO.

Return value

None

Remarks

SerCx2 calls the EvtSerCx2PioTransmitPurgeFifo event callback function, if it is implemented, to end the current PIO-transmit transaction. SerCx2 previously initiated this transaction in response to a write (IRP_MJ_WRITE) request from a client. For example, SerCx2 might call this function if the client cancels the pending write request, or the write request times out. For more information, see SerCx2 Handling of Read and Write Requests.

In response to the EvtSerCx2PioTransmitPurgeFifo function call, the driver first discards any data that remains in the transmit FIFO; then the driver must call SerCx2PioTransmitPurgeFifoComplete to notify SerCx2. SerCx2 expects this notification and does not complete the write request until it is notified.

The serial controller driver must call SerCx2PioTransmitPurgeFifoComplete only in response to a call to the EvtSerCx2PioTransmitPurgeFifo function.

SerCx2 uses the BytesPurged parameter value to determine how many bytes were successfully transmitted before the transmit FIFO was purged. SerCx2 requires this information to complete a write request that times out, or a write request that is canceled after one or more bytes are transmitted.

For more information, see SerCx2 PIO-Transmit Transactions.

Requirements

Requirement Value
Minimum supported client Available starting with Windows 8.1.
Target Platform Universal
Header sercx.h
IRQL <= DISPATCH_LEVEL

See also

EvtSerCx2PioTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2PIOTRANSMIT

SERIAL_TIMEOUTS

SerCx2PioTransmitCreate