Função PoRegisterDeviceForIdleDetection (wdm.h)
A rotina PoRegisterDeviceForIdleDetection habilita ou cancela a detecção ociosa e define valores de tempo limite ocioso para um dispositivo.
Sintaxe
PULONG PoRegisterDeviceForIdleDetection(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG ConservationIdleTime,
[in] ULONG PerformanceIdleTime,
[in] DEVICE_POWER_STATE State
);
Parâmetros
[in] DeviceObject
Um ponteiro para o DEVICE_OBJECT criado pelo driver para o dispositivo. No Windows 2000 e em sistemas posteriores, esse parâmetro pode apontar para um PDO (objeto de dispositivo físico) ou um FDO (objeto de dispositivo funcional). No Windows 98/Me, esse parâmetro deve apontar para o PDO do dispositivo subjacente.
[in] ConservationIdleTime
Define o valor de tempo limite (em segundos) a ser aplicado quando a política de energia do sistema otimiza para conservação de energia. Especifique zero para desabilitar a detecção ociosa quando a política de conservação estiver em vigor.
[in] PerformanceIdleTime
Define o valor de tempo limite (em segundos) a ser aplicado quando a política de energia do sistema otimiza o desempenho. Especifique zero para desabilitar a detecção ociosa quando a política de desempenho estiver em vigor.
[in] State
Especifica o estado de energia do dispositivo a ser solicitado em uma solicitação de IRP_MN_SET_POWER quando ConservationIdleTime ou PerformanceIdleTime tiver sido atendido. Os valores possíveis são os valores DEVICE_POWER_STATE .
Retornar valor
PoRegisterDeviceForIdleDetection retorna um ponteiro para o contador ocioso para indicar que a detecção ociosa foi habilitada. Ele retorna NULL para indicar que a detecção ociosa foi desabilitada, que um contador ocioso não pôde ser alocado ou que um ou ambos os valores de tempo limite eram inválidos.
Comentários
PoRegisterDeviceForIdleDetection permite que os drivers usem o mecanismo de detecção ociosa fornecido pelo power manager. Os drivers chamam PoRegisterDeviceForIdleDetection por qualquer um dos seguintes motivos:
- Para habilitar a detecção ociosa para o dispositivo e definir valores iniciais de tempo limite ocioso
- Para alterar os valores de tempo limite ocioso para um dispositivo
- Para desabilitar a detecção ociosa de um dispositivo
Sempre que o dispositivo satisfaz o valor de tempo limite ocioso atual, o power manager envia uma solicitação IRP_MN_SET_POWER para a parte superior da pilha do dispositivo, especificando o estado de energia do dispositivo. Em resposta ao IRP, cada driver executa todas as tarefas específicas do dispositivo necessárias antes da transição do estado de energia e passa o IRP para o driver mais baixo. Quando o IRP atinge o driver de ônibus, esse driver coloca o dispositivo no estado de energia inferior solicitado e conclui o IRP.
PoRegisterDeviceForIdleDetection define valores de tempo limite para conservação e desempenho. O valor ConservationIdleTime se aplica quando a política de energia do sistema otimiza para conservação; o valor PerformanceIdleTime se aplica quando a política de energia do sistema otimiza o desempenho. Normalmente, a política aplicável depende da fonte de energia: ao executar com energia AC, o sistema otimiza o desempenho e, ao executar uma bateria, o sistema otimiza para conservação.
Determinados dispositivos podem especificar valores de tempo limite de -1 para usar os tempos limite de política de energia padrão para sua classe de dispositivo. Os valores de tempo limite padrão fornecem uma melhor integração do sistema para classes de dispositivo padrão com suporte. Atualmente, o WDM dá suporte a esse recurso para dispositivos do tipo FILE_DEVICE_DISK e FILE_DEVICE_MASS_STORAGE. PoRegisterDeviceForIdleDetection retornará NULL se -1 for especificado para um dispositivo de um tipo sem suporte. (Para obter informações sobre tipos de dispositivo, consulte Especificando tipos de dispositivo.)
Somente uma detecção ociosa pode ser definida por dispositivo. Chamadas subsequentes para PoRegisterDeviceForIdleDetection alteram os valores de detecção ociosa.
Se ConservationIdleTime e PerformanceIdleTime forem zero, essa rotina cancelará toda a detecção ociosa do dispositivo e retornará NULL.
PoRegisterDeviceForIdleDetection pode liberar um driver da necessidade de executar sua própria detecção ociosa. No entanto, os drivers também podem implementar sua própria detecção ociosa.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Disponível a partir do Windows 2000. |
Plataforma de Destino | Universal |
Cabeçalho | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de