Função WdfDeviceWdmAssignPowerFrameworkSettings (wdfdevice.h)
[Aplica-se a KMDF e UMDF]
O método WdfDeviceWdmAssignPowerFrameworkSettings registra as configurações da PoFx (estrutura de gerenciamento de energia) para dispositivos de componente único.
Sintaxe
NTSTATUS WdfDeviceWdmAssignPowerFrameworkSettings(
[in] WDFDEVICE Device,
[in] PWDF_POWER_FRAMEWORK_SETTINGS PowerFrameworkSettings
);
Parâmetros
[in] Device
Um identificador para o objeto de dispositivo de estrutura para o qual as configurações do PoFx estão sendo especificadas.
[in] PowerFrameworkSettings
Um ponteiro para uma estrutura WDF_POWER_FRAMEWORK_SETTINGS que descreve as configurações poFx do driver cliente.
Retornar valor
O método WdfDeviceWdmAssignPowerFrameworkSettings retorna um valor NTSTATUS que indica êxito ou falha da operação.
Código de retorno | Descrição |
---|---|
|
O tamanho da estrutura de WDF_DEVICE_POWER_POLICY_WAKE_SETTINGS está incorreto. |
|
O driver de chamada não é o proprietário da política de energia do dispositivo. |
|
Um valor de Configurações inválido é detectado. |
Esse método também pode retornar outros valores NTSTATUS.
Comentários
O método WdfDeviceWdmAssignPowerFrameworkSettings aplica-se somente a dispositivos de componente único.
Antes de chamar esse método, o driver cliente deve primeiro chamar WdfDeviceAssignS0IdleSettings com êxito e definir o campo IdleTimeoutType da estrutura WDF_DEVICE_POWER_POLICY_IDLE_SETTINGS como SystemManagedIdleTimeout ou SystemManagedIdleTimeoutWithHint.
Um driver deve chamar WdfDeviceWdmAssignPowerFrameworkSettings antes ou durante a primeira vez que um dispositivo é iniciado. Como um dispositivo pode iniciar mais de uma vez, por exemplo, se ocorrer um rebalanceamento de recursos, um driver pode chamar esse método de dentro de EvtDriverDeviceAdd ou EvtDeviceSelfManagedIoInit. A estrutura chama essas funções apenas uma vez, mesmo que o dispositivo seja iniciado mais de uma vez.
Como alternativa, o driver pode controlar se ele já chamou WdfDeviceWdmAssignPowerFrameworkSettings e chamá-lo de uma das seguintes funções de retorno de chamada: EvtDevicePrepareHardware, EvtDeviceD0Entry, EvtDeviceD0EntryPostInterruptsEnabled ou EvtDeviceSelfManagedIoRestart.
Se o driver chamar WdfDeviceWdmAssignPowerFrameworkSettings mais de uma vez, a estrutura gerará um erro de verificador.
A PoFx (estrutura de gerenciamento de energia) está disponível apenas em Windows 8 e posteriores. Ao executar em um sistema operacional que não dá suporte a PoFx, WdfDeviceWdmAssignPowerFrameworkSettings não executa nenhuma ação e retorna STATUS_SUCCESS.
Para obter mais informações, consulte Suporte a estados de energia funcionais e Visão geral do Power Management Framework.
Exemplos
No exemplo de código a seguir, o driver inicializa uma estrutura WDF_POWER_FRAMEWORK_SETTINGS chamando a função WDF_POWER_FRAMEWORK_SETTINGS_INIT . Em seguida, o driver define manualmente alguns dos membros da estrutura e chama WdfDeviceWdmAssignPowerFrameworkSettings.
NTSTATUS status;
WDF_POWER_FRAMEWORK_SETTINGS poFxSettings;
WDF_POWER_FRAMEWORK_SETTINGS_INIT(&poFxSettings);
poFxSettings.EvtDeviceWdmPostPoFxRegisterDevice =
SingleCompWdmEvtDeviceWdmPostPoFxRegisterDevice;
poFxSettings.EvtDeviceWdmPrePoFxUnregisterDevice =
SingleCompWdmEvtDeviceWdmPrePoFxUnregisterDevice;
poFxSettings.Component = &component;
poFxSettings.ComponentIdleStateCallback =
SingleCompWdmIdleStateCallback;
poFxSettings.PoFxDeviceContext = (PVOID) Device;
status = WdfDeviceWdmAssignPowerFrameworkSettings(Device, &poFxSettings);
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows 8 |
Plataforma de Destino | Universal |
Versão mínima do KMDF | 1.11 |
Versão mínima do UMDF | 2.33 |
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 | DriverCreate(kmdf) |
Confira também
EvtDeviceWdmPostPoFxRegisterDevice