IPowerNotify 구현
드라이버의 미니포트 개체(오디오 미니포트 개체 인터페이스 참조) 또는 스트림 개체(오디오 스트림 개체 인터페이스 참조)가 전원 상태 변경에 대해 알아야 하는 경우 QueryInterface 메서드에서 IPowerNotify 인터페이스를 지원하고 전원 변경이 발생할 때마다 PortCls 시스템 드라이버로부터 알림을 받을 수 있습니다.
전원 상태가 변경되면 PortCls는 IPowerNotify::P owerChangeNotify 메서드를 호출하여 IPowerNotify 인터페이스를 지원하는 각 미니포트 및 스트림 개체에 개별적으로 알립니다. PowerChangeNotify 호출 중에 미니포트 개체는 새 디바이스 전원 상태를 캐시해야 합니다. CAdapterCommon::Init 호출 중(예: Microsoft Windows 드라이버 키트 [WDK]의 Msvad 샘플 어댑터 구현 참조) 미니포트 드라이버는 캐시된 전원 상태를 초기 값 PowerDeviceD0으로 설정해야 합니다.
PowerChangeState를 호출하여 전원을 낮추기 전에 PortCls는 IPowerNotify::P owerChangeNotify를 호출하여 미니포트 드라이버에 필요한 디바이스 컨텍스트를 저장할 수 있는 기회를 제공합니다. 예를 들어 이 컨텍스트에는 현재 필터 토폴로지 및 믹서 라인 설정을 구현하는 하드웨어 레지스터 값이 포함될 수 있습니다. PowerChangeState를 호출하여 전원을 공급한 후 PortCls는 PowerChangeNotify를 호출하여 미니포트 드라이버가 저장된 컨텍스트를 복원할 수 있도록 합니다.
전원이 켜지면 PowerChangeNotify를 호출하기 전에 PortCls가 활성 오디오 데이터 스트림을 일시 중지합니다. 전원이 켜지면 PortCls는 일시 중지된 오디오 데이터 스트림을 다시 시작하기 전에 PowerChangeNotify 를 호출합니다.
미니포트 드라이버의 미니포트 및 스트림 개체 클래스는 IPowerNotify 인터페이스에서 상속할 수 있으며 NonDelegatingQueryInterface 메서드에서 이 인터페이스를 지원할 수 있습니다. 헤더 파일 Portcls.h의 IMP_IPowerNotify 정의를 사용하여 PowerChangeNotify 메서드에 대한 함수 선언을 드라이버의 미니포트 및 스트림 개체에 대한 클래스 정의에 추가할 수 있습니다.