SerCx2SystemDmaTransmitPurgeFifoComplete 함수(sercx.h)

SerCx2SystemDmaTransmitPurgeFifoComplete 메서드는 직렬 컨트롤러 드라이버가 직렬 컨트롤러 하드웨어의 전송 FIFO에서 데이터 제거를 완료했음을 SerCx2(직렬 프레임워크 확장) 버전 2에 알림합니다.

구문

void SerCx2SystemDmaTransmitPurgeFifoComplete(
  [in] SERCX2SYSTEMDMATRANSMIT SystemDmaTransmit,
  [in] ULONG                   BytesPurged
);

매개 변수

[in] SystemDmaTransmit

시스템 DMA 전송 개체에 대한 SERCX2SYSTEMDMATRANSMIT 핸들입니다. 이 개체를 만들기 위해 이전에 SerCx2SystemDmaTransmitCreate 메서드를 호출한 직렬 컨트롤러 드라이버입니다.

[in] BytesPurged

직렬 컨트롤러 드라이버가 전송 FIFO에서 제거한 전송되지 않은 데이터의 바이트 수입니다.

반환 값

없음

설명

SerCx2는 구현된 경우 EvtSerCx2SystemDmaTransmitPurgeFifo 이벤트 콜백 함수를 호출하여 직렬 컨트롤러 드라이버에 현재 시스템 DMA 전송 트랜잭션을 종료하도록 지시합니다. SerCx2는 이전에 클라이언트의 쓰기(IRP_MJ_WRITE) 요청에 대한 응답으로 이 트랜잭션을 시작했습니다. 예를 들어 클라이언트가 보류 중인 쓰기 요청을 취소하거나 쓰기 요청 시간이 초과된 경우 SerCx2에서 이 함수를 호출할 수 있습니다. 자세한 내용은 읽기 및 쓰기 요청의 SerCx2 처리를 참조하세요.

EvtSerCx2SystemDmaTransmitPurgeFifo 호출에 대한 응답으로 드라이버는 쓰기 버퍼에서 전송 FIFO로의 데이터 전송을 중지하고 전송 FIFO에 남아 있는 이전에 전송된 모든 데이터를 삭제합니다. 제거가 완료되면 직렬 컨트롤러 드라이버 가 SerCx2SystemDmaTransmitPurgeFifoComplete 를 호출하여 SerCx2에 알려야 합니다. SerCx2는 이 알림을 예상하며, 알림이 표시될 때까지 쓰기 요청을 완료하지 않습니다.

직렬 컨트롤러 드라이버는 EvtSerCx2SystemDmaTransmitPurgeFifo 함수에 대한 호출에 대한 응답으로만 SerCx2SystemDmaTransmitPurgeFifoComplete 를 호출해야 합니다.

SerCx2는 BytesPurged 매개 변수 값을 사용하여 전송 FIFO가 제거되기 전에 성공적으로 전송된 바이트 수를 결정합니다. SerCx2에서는 시간이 초과되는 쓰기 요청을 완료하거나 하나 이상의 바이트가 전송된 후 취소되는 쓰기 요청을 완료하려면 이 정보가 필요합니다.

자세한 내용은 SerCx2 System-DMA-Transmit 트랜잭션을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 8.1 시작해서 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 sercx.h
IRQL <= DISPATCH_LEVEL

참고 항목

EvtSerCx2SystemDmaTransmitPurgeFifo

IRP_MJ_WRITE

SERCX2SYSTEMDMATRANSMIT

SERIAL_TIMEOUTS

SerCx2SystemDmaTransmitCreate