Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Este artigo descreve como escrever um driver universal para Windows usando User-Mode Driver Framework (UMDF) 2. Começas com um modelo Microsoft Visual Studio e depois implementas e instalas o driver num computador separado.
Pré-requisitos
Siga as etapas para instalar Windows Driver Kit (WDK). Ferramentas de Depuração para Windows estão incluídas quando o utilizador instala o WDK.
Instale Visual Studio 2022. Ao instalar o Visual Studio 2022, selecione a carga de trabalho Desenvolvimento de área de trabalho com C++ e, em seguida, em Componentes individuais adicione:
- MSVC v143 - VS 2022 C++ ARM64/ARM64EC bibliotecas mitigadas contra Spectre (Mais recente)
- MSVC v143 - VS 2022 C++ x64/x86 bibliotecas mitigadas contra Spectre (Mais recente)
- C++ ATL para as mais recentes ferramentas de compilação v143 com Spectre Mitigations (ARM64/ARM64EC)
- C++ ATL para as mais recentes ferramentas de compilação v143 com mitigações do Spectre (x86 e x64)
- C++ MFC para as mais recentes ferramentas de compilação v143 com Spectre Mitigations (ARM64/ARM64EC)
- C++ MFC para as ferramentas de compilação v143 mais recentes com mitigações de Spectre (x86 & x64)
- Kit de Controladores do Windows
Criar e desenvolver um driver
Observação
Ao criar um novo driver KMDF ou UMDF, você deve selecionar um nome de driver que tenha 32 caracteres ou menos. Este limite de comprimento é definido em wdfglobals.h.
Abra o Visual Studio. No menu Arquivo, escolha Novo > Projeto.
Na caixa de diálogo Criar um novo projeto, selecione C++ na lista suspensa esquerda, escolha Windows no meio e escolha Driver na lista suspensa direita.
Selecione Driver de Modo de Utilizador (UMDF V2) na lista de tipos de projeto. Selecione Avançar.
Dica
Se você não conseguir encontrar modelos de projeto de driver no Visual Studio, a extensão WDK Visual Studio não foi instalada corretamente. Para resolver este problema, inicie Visual Studio Installer, selecione Modificar, adicione Kits de Drivers do Windows na guia Componente Individual e selecione Modificar.
Na caixa de diálogo Configurar o seu novo projeto, digite "UmdfDriver" no campo nome do projeto.
Observação
Ao criar um novo driver KMDF ou UMDF, você deve selecionar um nome de driver que tenha 32 caracteres ou menos. Este limite de comprimento é definido em wdfglobals.h.
No campo Local, insira o diretório onde você deseja criar o novo projeto.
Marque Colocar solução e projeto no mesmo diretório e selecione Criar.
Visual Studio cria um projeto e uma solução. Você pode vê-los na janela Explorador de Soluções. (Se a janela do Explorador de Soluções não estiver visível, escolha Explorador de Soluções no menu Visualizar .) A solução tem um projeto de driver chamado UmdfDriver. Para ver o código-fonte do driver, abra qualquer um dos arquivos em Source Files. Driver.c e Device.c são bons lugares para começar.
Na janela Explorador de Soluções, selecione e mantenha pressionado (ou clique com o botão direito do mouse) Solução 'UmdfDriver' (1 de 1 projeto) e escolha Gestor de Configuração. Escolha uma configuração e plataforma para o projeto de driver. Por exemplo, escolha Depurar e x64.
Na janela Explorador de Soluções, selecione e segure (ou clique com o botão direito) UmdfDrivere escolha Propriedades. Navegue até Propriedades de Configuração > Configurações de Driver >Geral e observe que Plataforma de Destino tem como padrão Universal.
Para criar o driver, selecione Build Solution no menu Build. O Microsoft Visual Studio exibe o progresso da compilação na janela Output. (Se a janela de Saída não estiver visível, escolha Saída no menu Visualizar .)
Verifique se a saída da compilação inclui:
> Driver is 'Universal'.Quando verificares que a solução foi construída com sucesso, podes fechar o Visual Studio.
Para ver o driver compilado, no Explorador de Ficheiros, vá para a pasta UmdfDriver e, em seguida, para x64\Debug\UmdfDriver. O diretório inclui os seguintes arquivos:
- UmdfDriver.dll--o ficheiro do driver em modo utilizador
- UmdfDriver.inf — um ficheiro de informação que o Windows utiliza quando instala o driver
Implantar e instalar o driver Universal do Windows
Normalmente, quando você testa e depura um driver, o depurador e o driver são executados em computadores separados. O computador que executa o depurador é chamado de computador hoste o computador que executa o driver é chamado de computador de destino. O computador de destino também é chamado de computador de teste .
Importante
Até agora, usaste o Visual Studio para construir um driver no computador anfitrião. Agora você precisa configurar um computador de destino. Siga as instruções em Preparar um computador para implantação e teste de driver (WDK 10). Depois, está pronto para implementar, instalar, carregar e depurar o seu driver.
No computador host, abra sua solução no Visual Studio. Você pode clicar duas vezes no arquivo de solução, UmdfDriver.sln, na pasta UmdfDriver.
Na janela Explorador de Soluções, selecione e segure (ou clique com o botão direito) UmdfDrivere escolha Propriedades.
Na janela Páginas de Propriedades do UmdfDriver, vá para Propriedades de Configuração > Instalação do Driver > Implementação, conforme mostrado aqui.
Verifique Remover versões anteriores do driver antes de implantação.
Para Nome do Dispositivo de Destino, selecione o nome do computador que você configurou para teste e depuração.
Selecione Atualização de Driver por ID de Hardwaree insira o ID de Hardware para o seu driver. Neste exercício, a ID de hardware é Root\UmdfDriver. Selecione OK.
Observação
Neste exercício, o ID de hardware não identifica uma peça real de hardware. Identifica um dispositivo imaginário que recebe um lugar na árvore de dispositivos como filho do nó raiz. Para hardware real, não selecione Hardware ID Driver Update; em vez disso, selecione Instalar e Verificar. Você pode ver o ID do hardware no arquivo de informações do driver (INF). Na janela Solution Explorer, vá para UmdfDriver > Driver Filese clique duas vezes em UmdfDriver.inf. O ID do hardware está em [Standard.NT$ARCH$].
[Standard.NT$ARCH$] %DeviceName%=MyDevice_Install,Root\UmdfDriverNo menu Depurar, escolha Iniciar Depuraçãoou pressione F5 no teclado.
Espere até que o seu driver esteja implementado, instalado e carregado no computador alvo. Isso pode levar vários minutos.
Usando o Driver Module Framework (DMF)
O Driver Module Framework (DMF) é uma extensão do WDF que permite funcionalidade extra para um desenvolvedor de WDF. Ele ajuda os desenvolvedores a escrever qualquer tipo de driver WDF melhor e mais rápido.
DMF como uma estrutura permite a criação de objetos WDF chamados DMF Modules. O código para esses módulos DMF pode ser compartilhado entre diferentes drivers. Além disso, o DMF inclui uma biblioteca de módulos DMF que desenvolvemos para os nossos drivers e consideramos que poderiam trazer valor a outros desenvolvedores de drivers.
O DMF não substitui o WDF. DMF é uma segunda estrutura que é usada com WDF. O programador que usa DMF ainda usa o WDF e todas as suas primitivas para escrever drivers de dispositivos.
Para obter mais informações, consulte DMF (Driver Module Framework) .
Artigos relacionados
- Desenvolvimento, Teste e Implementação de Drivers
- Ferramentas de Depuração para Windows
- Escreva o seu primeiro driver