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.
Observação
Se o driver tiver como alvo apenas o Windows 10, não será necessário redistribuir o WDF ou fornecer um Coinstaller no pacote de driver. Para o Windows 10:
- No Visual Studio, na página de propriedades Configurações do Projeto, em Configurações de Driver ->Versão do SO de Destino, selecione Windows 10 ou superior. Isso equivale a adicionar o seguinte ao arquivo .vcxproj:
<PropertyGroup Label="Configuration">
<TargetVersion>Windows10</TargetVersion>
- Na Secção do Fabricante do INF, especifique 10.0 como a versão do sistema operativo de destino, da seguinte maneira:
[Manufacturer]
%MyMfg% = MyMfg, NTamd64.10.0
Se incluíres um coinstalador no pacote de driver, lê este tópico para obter informação sobre as secções que deves fornecer no ficheiro INF do driver. Essas informações não se aplicam se você fornecer seu próprio programa de configuração que chama redistribuíveis .msu fornecidos pela Microsoft.
Seções de arquivo INF para o coinstalador
O arquivo INF do driver deve conter uma seção INF DDInstall.CoInstallers que instala o co-instalador. Por exemplo, esta seção pode ser nomeada MyDevice.ntx86.CoInstallers. Para obter mais informações sobre como especificar um coinstalador em um arquivo INF, consulte INF DDInstall.CoInstallers Section.
Além disso, o ficheiro INF do controlador deve conter uma DDInstall.Wdf seção que o co-instalador lê depois de estar instalado. Por exemplo, esta seção pode ser nomeada MyDevice.ntx86.Wdf. Depois que o coinstalador da estrutura tiver sido instalado, ele lê esta seção enquanto está instalando seu driver.
A secção INF DDInstall.Wdf contém a seguinte diretiva:
- KmdfService =DriverService,Wdf-install-section
DriverService representa o nome que o sistema operativo atribuirá ao serviço de modo kernel do driver, e Wdf-install-section representa o nome de uma seção INF que o coinstalador lê para obter informações sobre o driver.
A seção INF que Wdf-install-section identifica deve conter a seguinte diretiva:
- KmdfLibraryVersion =WdfLibraryVersion
WdfLibraryVersion representa uma versão da biblioteca, como "1.0" ou "1.11".
Por exemplo, a seguinte secção INF DDInstall.Wdf especifica Echo_wdfsect como nome da secção de instalação Wdf.
[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0
Você pode evitar a criação de vários arquivos INF para várias versões da estrutura usando arquivos INX e a ferramenta Stampinf. Para obter mais informações sobre arquivos INX, consulte Usando arquivos INX para criar arquivos INF.
#B0 #A1 Amostra INF #A2 #C3 #A3 DDInstall #A4 . CoInstallers e #C5 #A6 DDInstall #A7 . Secções Wdf #A8 #A9#C10
O exemplo de código a seguir mostra como criar a secção INF DDInstall.CoInstallers e a secção INF DDInstall.Wdf de um ficheiro INF para um driver PnP. O exemplo mostra como criar um ficheiro INF chamado MyDevice.inf, que é baseado no ficheiro Echo.inf do driver de exemplo ECHO. O driver de exemplo Echo está localizado no diretório de amostras do WDK.
Para criar MyDevice.inf, você mesmo deve alterar todas as subcadeias ECHO_Device em Echo.inf para um nome apropriado para o seu produto. O exemplo de código a seguir usa MyDevice.
Você deve tentar igualar o layout da secção que o exemplo Echo.inf usa. Em outras palavras, se possível, mantenha as seções relacionadas ao coinstalador juntas para detetar mais facilmente erros de corte e colagem.
Antes de modificar echo.inf, as seções que instalam o co-instalador são as seguintes:
=============== Top of Echo.inf ====================
....
....
[DestinationDirs]
DefaultDestDir = 12
ECHO_Device_CoInstaller_CopyFiles = 11
....
....
;
;--- ECHO_Device Co-installer installation ------
;
[ECHO_Device.NT.CoInstallers]
AddReg=ECHO_Device_CoInstaller_AddReg
CopyFiles=ECHO_Device_CoInstaller_CopyFiles
[ECHO_Device_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"
[ECHO_Device_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll
[ECHO_Device.NT.Wdf]
KmdfService = Echo, Echo_wdfsect
[Echo_wdfsect]
KmdfLibraryVersion = 1.0
=============== End of Echo.inf ===============
Depois de alterar todas as substrings de ECHO_Device, o seu ficheiro MyDevice.inf ficará da seguinte maneira:
=============== Top of MyDevice.inf ===============
....
....
[DestinationDirs]
DefaultDestDir = 12
MyDevice_CoInstaller_CopyFiles = 11
....
....
;
;--- MyDevice Co-installer installation ------
;
[MyDevice.NT.CoInstallers]
AddReg=MyDevice_CoInstaller_AddReg
CopyFiles=MyDevice_CoInstaller_CopyFiles
[MyDevice_CoInstaller_AddReg]
HKR,,CoInstallers32,0x00010000, "WdfCoInstaller01000.dll,WdfCoInstaller"
[MyDevice_CoInstaller_CopyFiles]
WdfCoInstaller01000.dll
[MyDevice.NT.Wdf]
KmdfService = MyDevice, MyDevice_wdfsect
[MyDevice_wdfsect]
KmdfLibraryVersion = 1.0
....
....
=============== End of MyDevice.inf ===============