Suporte a PnP e gerenciamento de energia em drivers de função
Os drivers de função controlam a operação de um dispositivo e, portanto, acessam o hardware do dispositivo. Esses drivers devem dar suporte a operações de gerenciamento de energia e PnP e normalmente registrar várias funções de retorno de chamada de evento ao criar objetos de dispositivo.
Normalmente, a função de retorno de chamada de evento EvtDriverDeviceAdd de um driver de função de função chama WdfDeviceInitSetPnpPowerEventCallbacks para registrar as seguintes funções de retorno de chamada:
EvtDevicePrepareHardware, que fornece os recursos atribuídos pelo sistema do dispositivo ao driver. O driver pode executar operações, como mapear a memória relativa do barramento do dispositivo para o espaço de endereço virtual do processador, que tornam o hardware acessível ao driver.
EvtDeviceD0Entry, que executa operações, como o carregamento de firmware, que são necessárias sempre que o dispositivo do driver entra em seu estado de trabalho (D0).
EvtDeviceD0Exit, que executa operações que são necessárias sempre que o dispositivo do driver deixa seu estado de trabalho (D0) e entra em um estado de baixa potência.
EvtDeviceReleaseHardware, que libera todos os recursos do sistema alocados por EvtDevicePrepareHardware .
Como todas as funções de retorno de chamada definidas pela estrutura, as da lista anterior são opcionais. Você só precisa fornecê-los se o motorista precisar deles.
Os drivers de função podem chamar WdfDeviceSetPnpCapabilities e WdfDeviceSetPowerCapabilities para relatar os recursos de PnP e gerenciamento de energia de um dispositivo para o sistema operacional.
Normalmente, você usará as filas de E/S gerenciadas por energia da estrutura para a maioria das solicitações de E/S. Se uma fila de E/S for gerenciada por energia, a estrutura fornecerá solicitações ao driver somente se o dispositivo estiver em seu estado de trabalho (D0). Para obter mais informações sobre filas de E/S gerenciadas por energia, consulte Gerenciamento de energia para filas de E/S.
Normalmente, o driver de função do dispositivo é o proprietário da política de energia para a pilha de driver. O proprietário da política de energia determina o estado de energia do dispositivo apropriado para um dispositivo e envia solicitações para a pilha de driver do dispositivo sempre que o estado de energia do dispositivo deve ser alterado. Para drivers baseados em estrutura, a estrutura lida com essa responsabilidade, portanto, você não precisa fornecer código em seu driver para solicitar alterações no estado de energia de um dispositivo.
O proprietário da política de energia tem duas responsabilidades adicionais: controla a capacidade de um dispositivo de entrar em um estado de baixa potência quando ele está ocioso e o sistema permanece em seu estado de trabalho (S0) e controla a capacidade do dispositivo de gerar um sinal de ativação quando detecta um evento externo de um estado de baixa potência. Se o dispositivo tiver recursos ociosos ou de ativação, o driver de funções poderá fornecer funções de retorno de chamada adicionais. Para obter mais informações sobre as responsabilidades do proprietário da política de energia, consulte Propriedade do Power Policy.