Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A rotina PoFxRegisterDevice registra um dispositivo com a PoFx (estrutura de gerenciamento de energia).
Sintaxe
NTSTATUS PoFxRegisterDevice(
[in] PDEVICE_OBJECT Pdo,
[in] PPO_FX_DEVICE Device,
[out] POHANDLE *Handle
);
Parâmetros
[in] Pdo
Um ponteiro para um objeto de dispositivo físico (PDO). Esse parâmetro aponta para uma estrutura DEVICE_OBJECT que representa o dispositivo físico que está sendo registrado. O chamador é o proprietário da política de energia do dispositivo, que normalmente é o driver de função do dispositivo.
[in] Device
Um ponteiro para uma estrutura de PO_FX_DEVICE alocada pelo chamador que contém as informações de registro do dispositivo. Essa estrutura contém ponteiros para um conjunto de rotinas de retorno de chamada que são implementadas pelo driver do dispositivo. A PoFx chama essas rotinas para se comunicar com o driver.
[out] Handle
Um ponteiro para um local no qual a rotina grava um identificador que representa o registro do dispositivo com PoFx. O driver do dispositivo passa esse identificador como um parâmetro de entrada para as outras rotinas PoFxXxx que ele chama. O driver deve primeiro chamar PoFxRegisterDevice para registrar o dispositivo antes que o driver chame qualquer outra rotina PoFxXxx para gerenciar o dispositivo.
Valor de retorno
PoFxRegisterDeviceretornará STATUS_SUCCESS se a rotina registrar com êxito o dispositivo. Os valores de retorno de erro possíveis incluem os seguintes códigos de status.
| Código de retorno | Description |
|---|---|
|
Pdo é NULL; ou a estrutura PPO_FX_DEVICE tem um número de versão inválido ou uma contagem de componentes igual a zero; ou o número de estados ociosos especificados para um componente é zero; ou a descrição de um estado ocioso é inválida. |
|
O dispositivo não está pronto. |
|
Recursos insuficientes estão disponíveis para concluir o registro. |
Observações
Um driver de dispositivo normalmente chama essa rotina do manipulador de solicitação de IRP_MN_START_DEVICE do driver. O driver não deve chamar essa rotina antes que o dispositivo receba uma solicitação IRP_MN_START_DEVICE . O dispositivo recebe a primeira solicitação IRP_MN_START_DEVICE quando o dispositivo está sendo iniciado pela primeira vez. O dispositivo recebe uma solicitação de IRP_MN_START_DEVICE adicional sempre que o dispositivo é reiniciado após ser interrompido para balanceamento de recursos. Uma chamada poFxRegisterDevice para registrar um dispositivo que já está registrado é um erro fatal e causa uma verificação de bugs. Observe que o PoFx executa uma cópia profunda das estruturas do dispositivo em sua memória.
Antes que o driver chame PoFxRegisterDevice, o dispositivo deve atender às seguintes condições:
- O dispositivo (ou seja, o PDO) ainda não está registrado com PoFx.
- O dispositivo está no estado de energia D0 (totalmente ativado).
- O dispositivo está na condição de execução.
- Todos os componentes do dispositivo estão no estado de energia F0 (totalmente ativado).
- Cada componente está na condição ativa.
Depois que um driver chama PoFxRegisterDevice para registrar um dispositivo com PoFx, todos os componentes no dispositivo estão totalmente ativados e na condição ativa para que o driver possa concluir a inicialização do hardware. Para iniciar o gerenciamento ativo de energia, o driver deve chamar a rotina PoFxStartDevicePowerManagement .
Por padrão, PoFxStartDevicePowerManagement alterna todos os componentes para a condição ociosa. Se o driver exigir que um componente esteja na condição ativa imediatamente após o início do gerenciamento de energia, o driver deverá ativar explicitamente o componente chamando a rotina PoFxActivateComponent e essa chamada deverá ocorrer após a chamada PoFxRegisterDevice , mas antes da chamada poFxStartDevicePowerManagement .
Normalmente, o driver KMDF (Kernel-Mode Driver Framework) para um dispositivo de componente único não chama PoFxRegisterDevice para registrar o dispositivo com PoFx. Em vez disso, esse driver recebe um identificador de registro PoFx quando KMDF chama a função de retorno de chamada EvtDeviceWdmPostPoFxRegisterDevice do driver. Para obter mais informações, consulte Suporte a vários estados de energia funcionais para dispositivos Single-Component.
Para obter informações sobre como o driver KMDF para um dispositivo de vários componentes se registra com PoFx, consulte Suporte a vários estados de energia funcionais para dispositivos Multiple-Component.
Requirements
| Requirement | Value |
|---|---|
| Cliente mínimo suportado | Disponível a partir do Windows 8. |
| da Plataforma de Destino |
Universal |
| Header | wdm.h |
| Library | Ntoskrnl.lib |
| de DLL |
Ntoskrnl.exe |
| IRQL | PASSIVE_LEVEL |