Compartilhar via


Função WdfDeviceInitRegisterPowerStateChangeCallback (wdfdevice.h)

[Aplica-se somente ao KMDF]

Observação

Esse método é somente para uso interno da Microsoft.

O método WdfDeviceInitRegisterPowerStateChangeCallback registra uma função de retorno de chamada de evento fornecida pelo driver que a estrutura chama quando o computador de estado de energia de um dispositivo altera o estado.

Sintaxe

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

Parâmetros

[in] DeviceInit

Um ponteiro fornecido pelo chamador para uma estrutura de WDFDEVICE_INIT .

[in] PowerState

Um enumerador WDF_DEVICE_POWER_STATE que identifica o estado do computador de energia para o qual o driver está solicitando notificação.

[in] EvtDevicePowerStateChange

Um ponteiro fornecido pelo chamador para a função de retorno de chamada de evento EvtDevicePowerStateChange do driver.

[in] CallbackTypes

Uma combinação ORed de enumeradores do tipo WDF_STATE_NOTIFICATION_TYPE.

Retornar valor

Se a operação for bem-sucedida, WdfDeviceInitRegisterPowerStateChangeCallback retornará STATUS_SUCCESS. Os valores retornados adicionais incluem:

Código de retorno Descrição
STATUS_INVALID_PARAMETER
Um parâmetro inválido foi detectado.
STATUS_INSUFFICIENT_RESOURCES
Não há memória suficiente para concluir a operação.

Comentários

Se o driver chamar WdfDeviceInitRegisterPowerStateChangeCallback, ele deverá fazer isso antes de chamar WdfDeviceCreate.

Para obter mais informações sobre como chamar WdfDeviceCreate, consulte State Machines in the Framework.

Exemplos

O exemplo de código a seguir registra uma função de retorno de chamada de evento que a estrutura chamará quando o computador de estado de energia do dispositivo alterar o estado.

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

Requisitos

Requisito Valor
Plataforma de Destino Universal
Versão mínima do KMDF 1.0
Cabeçalho wdfdevice.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL PASSIVE_LEVEL
Regras de conformidade de 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)