다음을 통해 공유


SerCxGetActivity 함수(sercx.h)

SerCxGetActivity 메서드는 직렬 컨트롤러 드라이버에 대한 보류 중인 작업의 상태를 검색합니다.

통사론

void SerCxGetActivity(
  [in]      WDFDEVICE       Device,
  [in, out] PSERCX_ACTIVITY Activity
);

매개 변수

[in] Device

직렬 컨트롤러를 나타내는 프레임워크 디바이스 개체에 대한 WDFDEVICE 핸들입니다.

[in, out] Activity

호출자가 할당한 SERCX_ACTIVITY 구조체에 대한 포인터입니다. 호출자는 처음 사용하기 전에 이 구조를 초기화하기 위해 이전에 SERCX_ACTIVITY_INIT 함수를 호출해야 합니다. 그 후 각 SerCxGetActivity 호출은 이 구조의 내용을 업데이트하여 컨트롤러 드라이버에서 처리할 준비가 된 작업 항목을 추적합니다.

반환 값

없음

발언

직렬 컨트롤러 드라이버는 이 메서드를 호출하여 SerCx(직렬 프레임워크 확장)를 대신하여 수행해야 하는 처리 작업의 요약을 받습니다. 일반적으로 SerCxGetActivity 컨트롤러 드라이버의 전송/수신 DPC 루틴에 의해 호출됩니다.

작업 매개 변수는 컨트롤러 드라이버의 보류 중인 작업을 설명하는 SERCX_ACTIVITY 구조를 가리킵니다. SerCx가 컨트롤러 드라이버에 할당하는 보류 중인 작업은 클라이언트의 I/O 요청에 의해 구동되지만 I/O 요청이 반드시 작업 항목을 생성하는 것은 아닙니다. 예를 들어 SerCx의 메모리 버퍼에 수신된 데이터가 충분한 경우 보류 중인 읽기 요청을 완료할 수 있는 경우 이 요청으로 인해 SERCX_ACTIVITY 구조의 수신 멤버가 TRUE로 설정되지 않습니다.

보류 중인 작업 항목을 순환하기 위해 전송/수신 DPC 루틴은 SerCxGetActivity호출하고, 전체 전송 또는 수신 작업을 처리한 다음, SerCxGetActivity 다시 호출하여 다른 유형의 다른 작업에 작업이 필요한지 여부를 확인합니다. 다른 작업에 작업이 필요한 경우 이 작업은 동일한 콜백 중에 시작될 수 있지만 SerCxProgressReceive 호출의 반환 값 또는 SerCxProgressTransmit DPC 루틴이 나중에 실행되도록 다시 예약하도록 지시하는 경우 중지해야 합니다.

잠금은 SerCxGetActivity 호출에 의해 업데이트되는 SERCX_ACTIVITY 구조를 보호합니다. 호출 중에 SerCx의 이벤트 처리기에서 이 잠금을 획득하여 컨트롤러 드라이버에 대해 현재 보류 중인 작업의 요약을 업데이트합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows 8부터 사용할 수 있습니다.
대상 플랫폼 보편적
헤더 sercx.h
IRQL <= DISPATCH_LEVEL

참고 항목

SERCX_ACTIVITY

SERCX_ACTIVITY_INIT

SerCxCompleteWait

SerCxProgressReceive

SerCxProgressTransmit