Condividi tramite


Funzione WdfDeviceInitRegisterPowerStateChangeCallback (wdfdevice.h)

[Si applica solo a KMDF]

Nota

Questo metodo è destinato solo all'uso interno di Microsoft.

Il metodo WdfDeviceInitRegisterPowerStateChangeCallback registra una funzione di callback di eventi fornita dal driver che il framework chiama quando lo stato della macchina a stati di alimentazione di un dispositivo cambia.

Sintassi

NTSTATUS WdfDeviceInitRegisterPowerStateChangeCallback(
  [in] PWDFDEVICE_INIT                                DeviceInit,
  [in] WDF_DEVICE_POWER_STATE                         PowerState,
  [in] PFN_WDF_DEVICE_POWER_STATE_CHANGE_NOTIFICATION EvtDevicePowerStateChange,
  [in] ULONG                                          CallbackTypes
);

Parametri

[in] DeviceInit

Puntatore fornito dal chiamante a una struttura WDFDEVICE_INIT .

[in] PowerState

Enumeratore WDF_DEVICE_POWER_STATE che identifica lo stato della macchina elettrica per cui il driver richiede la notifica.

[in] EvtDevicePowerStateChange

Puntatore fornito dal chiamante alla funzione di callback dell'evento EvtDevicePowerStateChange del driver.

[in] CallbackTypes

Combinazione ORed di enumeratori tipizzato di WDF_STATE_NOTIFICATION_TYPE.

Valore restituito

Se l'operazione ha esito positivo, WdfDeviceInitRegisterPowerStateChangeCallback restituisce STATUS_SUCCESS. I valori restituiti aggiuntivi includono:

Codice restituito Descrizione
STATUS_INVALID_PARAMETER
È stato rilevato un parametro non valido.
STATUS_INSUFFICIENT_RESOURCES
Memoria insufficiente per completare l'operazione.

Commenti

Se il driver chiama WdfDeviceInitRegisterPowerStateChangeCallback, deve farlo prima di chiamare WdfDeviceCreate.

Per altre informazioni sulla chiamata a WdfDeviceCreate, vedere State Machines in the Framework.For more information about calling WdfDeviceCreate, see State Machines in the Framework.

Esempio

Nell'esempio di codice seguente viene registrata una funzione di callback di evento che il framework chiamerà quando lo stato della macchina a stati di alimentazione del dispositivo cambia.

status = WdfDeviceInitRegisterPowerStateChangeCallback(
                                     DeviceInit,
                                     WdfDevStatePowerD0StartingConnectInterrupt,
                                     PciDrvPowerStateChangeCallback,
                                     StateNotificationAllStates
                                     );

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Versione KMDF minima 1,0
Intestazione wdfdevice.h (include Wdf.h)
Libreria Wdf01000.sys (vedere Controllo delle versioni della libreria framework).
IRQL PASSIVE_LEVEL
Regole di conformità DDI ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), InitFreeDeviceCallback(kmdf), InitFreeDeviceCreate(kmdf), InitFreeNull(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf), PdoInitFreeDeviceCallback(kmdf), PdoInitFreeDeviceCreate(kmdf)