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.
Este tópico fornece uma visão geral de alto nível dos objetos da estrutura que você usará para desenvolver um driver KMDF (Kernel-Mode Driver Framework). Exceto onde indicado, você usará os mesmos objetos para desenvolver um driver UMDF (User-Mode Driver Framework) a partir da versão 2 do UMDF.
Os drivers WDF (Windows Driver Frameworks) consistem em umde rotina DriverEntrye um conjunto de funções de retorno de chamada de evento que são definidas pelos objetos Windows Driver Framework que os drivers baseados em estrutura usam. As funções de retorno de chamada chamam métodos de objeto que a estrutura exporta. O Kit de Drivers do Windows (WDK) contém exemplos de drivers WDF que demonstram como implementar funções de callback de eventos de um driver. Você pode baixar esses exemplos do Centro de Desenvolvimento do Windows - Hardware. Para obter informações sobre quais exemplos estão disponíveis, consulte Drivers KMDF de exemplo e Drivers UMDF de exemplo.
Ao criar um driver WDF, você normalmente fará o seguinte:
Utilize um objeto de driver da estrutura para representar o seu driver.
Ode rotina DriverEntry do driverdeve chamar WdfDriverCreate para criar um objeto de driver de estrutura que represente o driver. O método WdfDriverCreate também regista a função de retorno de chamada EvtDriverDeviceAdd do motorista, que o framework chama cada vez que o gestor Plug and Play (PnP) relata a existência de um dispositivo suportado pelo motorista.
Use a estrutura de objetos de dispositivo para suportar PnP e gestão de energia no seu driver.
Todos os drivers devem chamar WdfDeviceCreate para criar um objeto de dispositivo do framework para cada dispositivo suportado por um driver. Um dispositivo pode ser uma peça de hardware que está conectado ao computador, ou pode ser um dispositivo somente de software. Os objetos de dispositivo do Framework suportam operações PnP e de gestão de energia, e os drivers podem registar funções de retorno de eventos que notificam o driver quando um dispositivo entra ou sai do seu estado operacional.
Para obter mais informações sobre objetos de dispositivo de framework, consulte Suporte para PnP e gerenciamento de energia no seu driver.
Utilize objetos de estrutura de fila e objetos de estrutura de solicitação para dar suporte a operações de E/S no seu driver.
Todos os drivers que recebem solicitações de leitura, escrita ou controle de E/S de dispositivos de aplicações ou de outros drivers devem chamar WdfIoQueueCreate para criar objetos de fila de framework que representam filas de E/S. Normalmente, os drivers registram um ou mais manipuladores de solicitação para cada fila de E/S. Quando o gestor de E/S envia um pedido de E/S para o driver, o framework cria um objeto de pedido do framework para o pedido, coloca o objeto de pedido numa fila de E/S e chama um dos gestores de pedidos do driver para informar este de que um pedido está disponível. O driver obtém a solicitação de E/S e pode reencaminhar, concluir, cancelar ou encaminhar a solicitação.
Para obter mais informações sobre como usar os objetos de fila da estrutura e os objetos de solicitação da estrutura, consulte Objetos de Fila do Framework e Objetos de Solicitação do Framework .
Use objetos de interrupção da estrutura para lidar com interrupções de dispositivo.
Os drivers que manipulam interrupções de dispositivo devem chamar WdfInterruptCreate para criar um objeto de interrupção de estrutura para cada interrupção e registrar funções de retorno de chamada. Essas funções de callback ativam e desativam a interrupção e servem como a rotina de serviço de interrupção (ISR) e chamada de procedimento adiado (DPC) para a interrupção.
Para obter mais informações sobre objetos de interrupção de framework, consulte Manipulando interrupções de hardware.
Os drivers KMDF podem usar os objetos habilitadores DMA da estrutura e objetos de transação DMA para lidar com as operações de acesso direto à memória (DMA) de um dispositivo.
Se o dispositivo do driver KMDF suportar operações DMA, o driver deverá chamar WdfDmaEnablerCreate para criar um objeto habilitador DMA e WdfDmaTransactionCreate criar um ou mais objetos de transação DMA. O objeto de transação DMA define uma função de retorno de chamada EvtProgramDma que programa o hardware do dispositivo para executar uma operação DMA.
Para obter mais informações sobre como dar suporte a operações DMA, consulte Handling DMA Operations in Framework-based Drivers.
Use os objetos de destino de E/S da estrutura para enviar solicitações de E/S para outros drivers.
Para passar solicitações de E/S para outros drivers (normalmente o próximo driver inferior na pilha de drivers), o driver envia a solicitação para um objeto de destino de E/S.
Para obter mais informações sobre objetos de destino de E/S, consulte Usando destinos de E/S.
Um driver KMDF pode usar os objetos de provedor WMI da estrutura e objetos de instância WMI para oferecer suporte aos recursos WMI (Instrumentação de Gerenciamento do Windows).
A maioria dos drivers KMDF deve suportar WMI e deve chamar WdfWmiInstanceCreate para registrar funções de retorno de chamada que enviam ou recebem dados WMI.
Para obter mais informações sobre WMI, consulte Supporting WMI in Framework-based Drivers.
Use os recursos de sincronização da estrutura.
Todos os drivers devem estar cientes dos problemas de sincronização do multiprocessador e devem usar técnicas de sincronização que a estrutura fornece.
Use objetos e recursos adicionais que a estrutura fornece.
A estrutura fornece objetos adicionais que seu driver pode usar. Para obter mais informações sobre estes objetos, consulte WDF Support Objects.