Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podczas implementowania interfejsu IAdapterPowerManagement dla sterownika zapoznaj się z implementacją klasy CAdapterCommon w przykładowych sterownikach audio w zestawie Microsoft Windows Driver Kit (WDK). Ta klasa obsługuje przerwania urządzeń i wykonuje inne funkcje wspólne dla wszystkich sterowników adapterów audio. Klasa CAdapterCommon adaptera powinna dziedziczyć z interfejsu IAdapterPowerManagement i obsługiwać ten interfejs w metodzie NonDelegatingQueryInterface. (Aby uzyskać szczegółowe informacje na temat interfejsów niedelegujących, zobacz opis interfejsu INonDelegatingUnknown ).
Możesz użyć definicji IMP_IAdapterPowerManagement z pliku nagłówka Portcls.h, aby dodać deklaracje funkcji dla metod IAdapterPowerManagement::P owerChangeState, IAdapterPowerManagement::QueryPowerChangeState i IAdapterPowerManagement::QueryDeviceCapabilities do definicji klasy CAdapterCommon sterownika.
Podczas wywołania przez sterownik systemowy PortCls procedury uruchamiania urządzenia adaptera (zobacz Uruchamianie urządzenia), adapter powinien zarejestrować swój interfejs IAdapterPowerManagement w PortCls, wywołując PcRegisterAdapterPowerManagement. Aby zapoznać się z przykładem kodu, zobacz funkcję StartDevice w przykładowym sterowniku Sysvad, który został omówiony w temacie Sample Audio Drivers (Przykładowe sterowniki audio). Pierwszy parametr funkcji PcRegisterAdapterPowerManagement jest wskaźnikiem IUnknown do obiektu CAdapterCommon sterownika adaptera. PortCls zapytuje obiekt w celu uzyskania interfejsu IAdapterPowerManagement.
Kiedy PortCls wywołuje metodę IAdapterPowerManagement::PowerChangeState, aby zmienić stan zasilania urządzenia, sterownik karty powinien zapisać nowy stan zasilania urządzenia w pamięci podręcznej obiektu CAdapterCommon karty. Podczas wywołania CAdapterCommon::Init (zobacz implementację w przykładowych sterownikach adapterów zestawu WDK) sterownik powinien ustawić początkowy stan zasilania na PowerDeviceD0 (opisany w deviceState) przed powrotem z pomyślnej inicjacji. Sterownik powinien zapisywać na urządzeniu tylko wtedy, gdy wiadomo, że jest ono w odpowiednim stanie zasilania.
Przed wyłączeniem zasilania w odpowiedzi na wywołanie PowerChangeState, sterownik adaptera powinien umieścić dane wyjściowe audio w stanie, który zapobiega wystąpieniu szumu głośnika po wyłączeniu zasilania. Na przykład proces zamykania może obejmować zwiększenie danych wyjściowych DAC do zera, wyłączenie kontrolerów DAC i wyciszenie linii MIDI.