Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Quando si implementa l'interfaccia IAdapterPowerManagement per il driver, fare riferimento all'implementazione della classe CAdapterCommon nei driver audio di esempio in Microsoft Windows Driver Kit (WDK). Questa classe gestisce gli interrupt del dispositivo ed esegue altre funzioni comuni a tutti i driver dell'adattatore audio. La classe CAdapterCommon dell'adapter deve ereditare dall'interfaccia IAdapterPowerManagement e supportare questa interfaccia nel metodo NonDelegatingQueryInterface . Per informazioni dettagliate sulle interfacce non didelegazione, vedere la descrizione dell'interfaccia INonDelegatingUnknown .
È possibile usare la definizione IMP_IAdapterPowerManagement dal file di intestazione Portcls.h per aggiungere le dichiarazioni di funzione per i metodi IAdapterPowerManagement::P owerChangeState, IAdapterPowerManagement::QueryPowerChangeState e IAdapterPowerManagement::QueryDeviceCapabilities alla definizione della classe CAdapterCommon del driver.
Durante la chiamata del driver di sistema PortCls alla routine di avvio del dispositivo di un adattatore (vedere Avvio di un dispositivo), l'adattatore deve registrare l'interfaccia IAdapterPowerManagement con PortCls chiamando PcRegisterAdapterPowerManagement. Per un esempio di codice, vedere la funzione StartDevice nel driver di esempio Sysvad, che è descritta in Driver audio di esempio. Il primo parametro della funzione PcRegisterAdapterPowerManagement è un puntatore IUnknown all'oggetto CAdapterCommon del driver dell'adattatore. PortCls esegue una query su questo oggetto per l'interfaccia IAdapterPowerManagement .
Quando PortCls chiama il metodo IAdapterPowerManagement::P owerChangeState del driver della scheda per modificare lo stato di alimentazione del dispositivo, il driver della scheda deve memorizzare nella cache il nuovo stato di alimentazione del dispositivo nell'oggetto CAdapterCommon dell'adattatore. Durante la chiamata CAdapterCommon::Init (vedere l'implementazione nei driver dell'adattatore di esempio di WDK), il driver deve impostare lo stato di alimentazione iniziale su PowerDeviceD0 (descritto in DeviceState) prima di tornare da un'inizializzazione corretta. Il driver deve scrivere nell'hardware solo se è noto che si trova in uno stato di alimentazione appropriato.
Prima di spegnere in risposta a una chiamata di PowerChangeState, il driver dell'adattatore deve mettere gli output audio in uno stato che impedisca il rumore dell'altoparlante quando l'alimentazione viene spenta. Ad esempio, il processo di arresto potrebbe includere portare gli output del DAC a zero, spegnimento dei DAC e silenziare le linee MIDI.