Guia de design de arquitetura de driver no modo kernel
Observação
Para informações sobre interfaces de programação que seu driver pode implementar ou chamar, consulte a Referência do driver do modo kernel.
Esta seção inclui conceitos gerais para entender a programação em modo kernel e descreve técnicas específicas de programação do kernel. Para uma visão geral dos drivers do Windows, consulte Introdução ao desenvolvimento de drivers do Windows, que fornece uma visão geral dos componentes do Windows, lista os tipos de drivers de dispositivo usados no Windows, discute os objetivos dos drivers de dispositivo do Windows e trata dos drivers de dispositivo de exemplo genéricos incluídos no kit.
Esta seção contém informações conceituais que descrevem e ajudam a criar drivers de modo kernel.
Uma visão geral com:
- Uma visão geral dos componentes do Windows
- Metas de design para drivers de modo kernel
- Um catálogo de drivers do modo kernel de exemplo
- Práticas recomendadas de desenvolvimento de driver de kernel, conforme compilado pela equipe do Microsoft Surface
A seção Componentes do modo kernel descreve os principais gerenciadores de modo kernel e componentes do sistema operacional Windows.
Componente Descrição Gerentes Gerenciador de objetos do modo kernel do Windows Gerencia objetos: arquivos, dispositivos, mecanismos de sincronização, chaves do registro e assim por diante. Gerenciador de memória do modo kernel do Windows Gerencia a memória física do sistema operacional. Gerenciador de Threads e processo de modo kernel do Windows Lida com a execução de todos os threads em um processo. Gerenciador de E/S no modo kernel do Windows Gerencia a comunicação entre aplicativos e as interfaces fornecidas pelos drivers de dispositivos. Gerenciador de Plug and Play no modo kernel do Windows Um subsistema do gerenciador de E/S, o Gerenciador Plug and Play (PnP) permite que um PC reconheça quando um dispositivo é adicionado ao sistema. Gerenciador de energia do modo kernel do Windows Gerencia a alteração ordenada no status de energia para todos os dispositivos que oferecem suporte a alterações de estado de energia. Gerenciador de configuração do modo kernel do Windows Gerencia o registro, por exemplo, monitorando alterações no registro ou registrando retornos de chamada em dados específicos do registro. Gerenciador de transações do kernel no modo kernel do Windows Implementa o processamento de transações no modo kernel. Monitor de referência de segurança do modo kernel do Windows Fornece rotinas para seu driver trabalhar com controle de acesso. Bibliotecas Biblioteca do kernel do modo kernel do Windows Implementa a funcionalidade principal da qual depende todo o resto no sistema operacional. O kernel do Microsoft Windows fornece operações básicas de baixo nível, como agendamento de threads ou roteamento de interrupções de hardware. Biblioteca de suporte executivo do modo Kernel do Windows Refere-se a componentes de modo kernel que fornecem uma variedade de serviços para drivers de dispositivos, incluindo: gerenciamento de objetos, gerenciamento de memória, gerenciamento de processos e threads, gerenciamento de entrada/saída e gerenciamento de configuração. Biblioteca de runtime do modo kernel do Windows Um conjunto de rotinas de utilitários comuns necessárias para vários componentes do modo kernel. Biblioteca de cadeias de caracteres seguras do modo kernel do Windows Uma biblioteca de strings segura para fornecer maior segurança no desenvolvimento em modo kernel. Biblioteca DMA do modo kernel do Windows Uma biblioteca de acesso direto à memória (DMA) para desenvolvedores de drivers de dispositivo. Biblioteca HAL do modo kernel do Windows Uma camada de abstração de hardware (HAL) para desenvolvimento de drivers no modo kernel. Biblioteca CLFS do modo kernel do Windows Um sistema de log transacional, o Common Log File System (CLFS). Biblioteca WMI do modo kernel do Windows Um mecanismo geral para gerenciar componentes chamado WMI (Windows Management Instrumentation). Gravar drivers WDM e Introdução ao WDM fornecem informações necessárias para gravar drivers usando o WDM (Windows Driver Model).
Objetos de dispositivo e os outros tópicos em Objetos de dispositivo e pilhas de dispositivos descrevem como o sistema operacional representa dispositivos por objetos de dispositivo.
Em Gerenciamento de memória para drivers do Windows, é possível ver como os drivers de modo kernel alocam memória para, por exemplo, armazenar dados internos, armazenar dados em buffer durante operações de E/S e compartilhar memória com outros componentes de modo kernel e de usuário.
Em Segurança de Controlar o acesso de dispositivos e Privilégios para SDDL para objetos de dispositivos, garanta que seus drivers estejam o mais seguros possível.
A seção Lidar com IRPs descreve como os drivers de modo kernel lidam com pacotes de solicitação de E/S (IRPs).
DMA Direct Memory Access (DMA) é um aspecto essencial do desenvolvimento de drivers, e os tópicos neste nó abrangem tudo sobre DMA.
Os Objetos do controlador representam um controlador de dispositivo físico com dispositivos conectados.
As ISRs (Interrupt Service Routines) lidam com interrupções para drivers de um dispositivo físico que recebe interrupções.
As Message-Signaled Interrupts disparam uma interrupção gravando um valor em um endereço de memória específico.
As Deferred Procedure Calls (objetos DPC) podem ser enfileiradas a partir de ISRs e são executadas posteriormente e em um IRQL mais baixo do que o ISR.
A seção Plug and Play (PnP) foca o suporte de software do sistema para PnP e como os drivers usam esse suporte para implementar PnP.
Em Gerenciamento de energia, há uma descrição da arquitetura com uma abordagem abrangente para o gerenciamento de energia de sistemas e dispositivos.
Windows Management Instrumentation (WMI) são extensões para o driver de modo kernel, que permitem que o driver se torne um provedor WMI. Um provedor WMI disponibiliza dados de medição e instrumentação para consumidores WMI, como aplicativos de modo de usuário.
Técnicas de programação de drivers A programação de drivers no modo kernel do Windows requer técnicas que às vezes diferem bastante daquelas da programação de modo de usuário comum.