Compartilhar via


Criar um driver de cliente de notificação de hardware

Esta seção fornece diretrizes gerais sobre o desenvolvimento de um driver cliente de notificação de hardware que utiliza a extensão de classe KMDF fornecida pela Microsoft.

  1. Crie um arquivo para a implementação do driver cliente que seja vinculado a Mshwnclxstub.lib e inclua os cabeçalhos hwn.h e hwnclx.h.

  2. Defina instâncias das funções de retorno de chamada de extensão de classe de notificação de hardware e KMDF necessárias. Especificamente, você deve implementar e registrar essas funções de retorno de chamada, conforme mostrado no código de exemplo a seguir.

    DRIVER_INITIALIZE DriverEntry;
    EVT_WDF_DRIVER_DEVICE_ADD HwnClientEvtDeviceAdd;
    HWN_CLIENT_INITIALIZE_DEVICE HwnClientInitializeDevice;
    HWN_CLIENT_UNINITIALIZE_DEVICE HwnClientUnInitializeDevice;
    HWN_CLIENT_QUERY_DEVICE_INFORMATION HwnClientQueryDeviceInformation;
    HWN_CLIENT_START_DEVICE HwnClientStartDevice;
    HWN_CLIENT_STOP_DEVICE HwnClientStopDevice;
    HWN_CLIENT_SET_STATE HwnClientSetState;
    HWN_CLIENT_GET_STATE HwnClientGetState;
    
  3. Implemente a rotina DriverEntry , que é o ponto de entrada do driver do cliente e responsável pela inicialização. Para o driver do cliente de notificação de hardware, essa função deve lidar com o seguinte:

  4. Implemente a função EVT_WDF_DRIVER_DEVICE_ADD , que é responsável por executar operações de inicialização de dispositivo quando o gerenciador PnP relata a existência de um dispositivo. Para o driver do cliente de notificação de hardware, essa função deve lidar com o seguinte:

  5. Implemente a função de HWN_CLIENT_INITIALIZE_DEVICE definida, que é chamada pela extensão de classe para preparar o controlador de notificação de hardware para uso.

  6. Implemente a função de HWN_CLIENT_UNINITIALIZE_DEVICE definida, que é chamada pela extensão de classe para não inicializar o controlador de notificação de hardware.

  7. Implemente a função de HWN_CLIENT_QUERY_DEVICE_INFORMATION definida, que é chamada pela extensão de classe . Essa função é responsável por recuperar os atributos de um componente de notificação de hardware.

  8. Implemente a função de HWN_CLIENT_START_DEVICE definida, que é chamada pela extensão de classe . Essa função é responsável por iniciar o controlador de notificação de hardware e por alocar recursos de ACPI para o driver cliente.

  9. Implemente a função de HWN_CLIENT_STOP_DEVICE definida, que é chamada pela extensão de classe . Essa função é responsável por interromper o controlador de notificação de hardware e por liberar recursos de ACPI usados pelo driver do cliente.

  10. Implemente a HWN_CLIENT_SET_STATE definida, que é chamada pela extensão de classe . Essa função é responsável por definir os estados do componente de notificação de hardware.

  11. Implemente o HWN_CLIENT_GET_STATE definido, que é chamado pela extensão de classe . Essa função é responsável por obter os valores atuais dos componentes de notificação de hardware. Quando o buffer de entrada é NULL, o que significa que o usuário não especificou o estado de notificação de hardware específico, essa função deve retornar informações de estado para todos os componentes de notificação de hardware.

Notificações de hardware