다음을 통해 공유


AVStream의 전원 및 상태 변경

AVStream이 IRP_MN_SET_POWER 요청을 받으면 미니드라이버가 제공한 경우 미니드라이버의 AVStrMiniDeviceSetPower 콜백 루틴을 호출합니다.

AVStream이 KSPROPERTY_CONNECTION_STATE 속성의 집합 요청을 받으면 미니드라이버가 제공한 경우 미니드라이버의 AVStrMiniPinSetDeviceState 콜백 루틴을 호출합니다.

시스템이 절전 모드에서 해제되면 AVStream은 미니드라이버의 AVStrMiniPinSetDeviceStateAVStrMiniDeviceSetPower 콜백 루틴을 예상 순서와 반대로 호출할 수 있습니다. 예를 들어 AVStrMiniPinSetDeviceStateAVStrMiniDeviceSetPower 전에 호출될 수 있습니다.

따라서 드라이버는 예상 콜백 순서의 이러한 반전을 처리할 준비가 되어 있어야 합니다.

이 반전은 시스템이 절전 상태로 전원이 공급될 때 발생하지 않습니다. 전원이 낮을 때 이러한 두 콜백 루틴은 항상 예상 순서대로 발생합니다. 예를 들어 AVStrMiniPinSetDeviceState 는 항상 AVStrMiniDeviceSetPower 전에 호출됩니다.

이 반전이 발생하면 전체 시퀀스는 다음과 같습니다.

먼저 전원 다운 시퀀스가 발생합니다.

  1. AVStrMiniPinSetDeviceState 는 디바이스 상태를 KSSTATE_RUN KSSTATE_PAUSE 변경하라는 요청과 함께 호출됩니다.

  2. AVStrMiniDeviceSetPower 는 전원 상태를 D0에서 D2/D3로 변경하라는 요청과 함께 호출됩니다.

  3. 이 시점에서 시스템은 절전 모드 상태입니다.

  4. 다음으로 전원 켜기 시퀀스가 발생합니다.

  5. AVStrMiniDeviceSetPower 는 전원 상태를 D2/D3에서 D0으로 변경하라는 요청과 함께 호출됩니다.

  6. AVStrMiniPinSetDeviceState 는 디바이스 상태를 KSSTATE_PAUSE KSSTATE_RUN 변경하라는 요청과 함께 호출됩니다.

이 시나리오에서 5단계와 6단계는 예상 순서에서 반전되는 단계입니다.

또한 애플리케이션이 스트리밍 중이고 시스템이 전원 다운 시퀀스를 시작하면 실행 중인 캡처 그래프가 항상 일시 중지 상태에 배치됩니다. 그래프가 이미 중지된 경우 중지된 상태로 유지됩니다.