다음을 통해 공유


SerCx2SaveReceiveFifoOnD0Exit 함수(sercx.h)

SerCx2SaveReceiveFifoOnD0Exit 메서드는 직렬 컨트롤러 하드웨어의 수신 FIFO에 직렬 컨트롤러가 디바이스 저전력 상태가 되기 전에 저장해야 하는 데이터가 포함되어 있음을 SerCx2(직렬 프레임워크 확장) 버전 2에 알릴 수 있습니다.

구문

void SerCx2SaveReceiveFifoOnD0Exit(
  [in] SERCX2PIORECEIVE PioReceive,
  [in] ULONG            FifoSize
);

매개 변수

[in] PioReceive

PIO 수신 개체에 대한 SERCX2PIORECEIVE 핸들입니다. 이 개체를 만들기 위해 이전에 SerCx2PioReceiveCreate 메서드를 호출한 직렬 컨트롤러 드라이버입니다.

[in] FifoSize

전송 FIFO에 포함된 읽지 않은 데이터의 바이트 수입니다.

반환 값

없음

설명

직렬 컨트롤러가 저전력 상태로 들어가려고 할 때 SerCx2 및 직렬 컨트롤러 드라이버는 수신 FIFO에 남아 있을 수 있는 읽지 않은 데이터의 바이트를 저장해야 합니다. 그렇지 않으면 직렬 컨트롤러가 저전력 상태로 들어가면 이 데이터가 손실됩니다. 이 데이터를 저장하기 위해 SerCx2에서 지원을 요청하기 위해 드라이버는 SerCx2SaveReceiveFifoOnD0Exit를 호출합니다.

드라이버 프레임워크는 드라이버의 EvtDeviceD0Exit 또는 EvtDeviceD0ExitPreInterruptsDisabled 이벤트 콜백 함수를 호출하여 드라이버에 D0 디바이스 상태를 종료하도록 직렬 컨트롤러를 준비하도록 지시합니다. 이에 대한 응답으로 이 함수는 먼저 RTS( Ready to Send ) 줄을 삭제하여 직렬 연결의 다른 쪽 끝에 있는 디바이스에 더 이상 데이터를 보내지 않도록 지시합니다. 다음으로, 함수는 SerCx2SaveReceiveFifoOnD0Exit를 호출합니다.

SerCx2SaveReceiveFifoOnD0Exit 는 드라이버의 EvtSerCx2PioReceiveReadBuffer 이벤트 콜백 함수를 호출하여 수신 FIFO에서 데이터를 검색합니다. 이 호출에서 SerCx2는 저전력 상태로 진입하기 위해 수신 FIFO에서 읽지 않은 데이터를 저장하기 위해 SerCx2가 유지 관리하는 내부 소프트웨어 버퍼에 대한 포인터를 매개 변수로 제공합니다.

나중에 클라이언트가 직렬 컨트롤러에 읽기(IRP_MJ_READ) 요청을 보낸 후 SerCx2는 이 내부 소프트웨어 버퍼의 바이트를 요청의 읽기 버퍼로 복사합니다.

요구 사항

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

추가 정보

EvtDeviceD0Exit

EvtDeviceD0ExitPreInterruptsDisabled

EvtSerCx2PioReceiveReadBuffer

IRP_MJ_READ

SERCX2PIORECEIVE

SerCx2PioReceiveCreate