Fichiers d’en-tête dans le Kit de pilotes Windows
Le Kit de pilotes Windows (WDK) contient tous les fichiers d’en-tête (fichiers .h) dont vous avez besoin pour générer des pilotes en mode noyau et en mode utilisateur. Les fichiers d’en-tête se trouvent dans le dossier Include de votre dossier d’installation WDK. Exemple : C :\Program Files (x86)\Windows Kits\10\Include.
Les fichiers d’en-tête contiennent des informations de version afin que vous puissiez utiliser le même ensemble de fichiers d’en-tête, quelle que soit la version de Windows sur laquelle votre pilote s’exécutera.
Constantes qui représentent les versions de Windows
Les fichiers d’en-tête dans le WDK contiennent des instructions conditionnelles qui spécifient des éléments de programmation disponibles uniquement dans certaines versions du système d’exploitation Windows. Les éléments versionnés incluent des fonctions, des énumérations, des structures et des membres de structure.
Pour spécifier les éléments de programmation disponibles dans chaque version du système d’exploitation, les fichiers d’en-tête contiennent des conditions de préprocesseur qui comparent la valeur de NTDDI_VERSION à un ensemble de valeurs constantes prédéfinies définies dans Sdkddkver.h.
Voici les valeurs de constante prédéfinies qui représentent les versions du système d’exploitation Microsoft Windows.
Constant | Version du système d'exploitation |
---|---|
NTDDI_WIN10 |
Windows 10 |
NTDDI_WINBLUE |
Windows 8.1 |
NTDDI_WIN8 |
Windows 8 |
NTDDI_WIN7 |
Windows 7 |
NTDDI_WS08SP4 |
Windows Server 2008 avec SP4 |
NTDDI_WS08SP3 |
Windows Server 2008 avec SP3 |
NTDDI_WS08SP2 |
Windows Server 2008 avec SP2 |
NTDDI_WS08 |
Windows Server 2008 |
Vous pouvez voir de nombreux exemples d’éléments DDI spécifiques à la version dans les fichiers d’en-tête WDK. Cette déclaration conditionnelle apparaît dans Wdm.h, qui est un fichier d’en-tête qui peut être inclus par un pilote en mode noyau.
#if (NTDDI_VERSION >= NTDDI_WIN7)
_Must_inspect_result_
NTKERNELAPI
NTSTATUS
KeSetTargetProcessorDpcEx (
_Inout_ PKDPC Dpc,
_In_ PPROCESSOR_NUMBER ProcNumber
);
#endif
Dans l’exemple, vous pouvez voir que la fonction KeSetTargetProcessorDpcEx est disponible uniquement dans Windows 7 et les versions ultérieures de Windows.
Cette déclaration conditionnelle s’affiche dans Winspool.h, qui est un fichier d’en-tête qui peut être inclus par un pilote en mode utilisateur.
#if (NTDDI_VERSION >= NTDDI_WIN7)
...
BOOL
WINAPI
GetPrintExecutionData(
_Out_ PRINT_EXECUTION_DATA *pData
);
#endif // (NTDDI_VERSION >= NTDDI_WIN7)
Dans l’exemple peut voir que la fonction GetPrintExecutionData est disponible uniquement dans Windows 7 et les versions ultérieures de Windows.
Fichiers d’en-tête pour l’infrastructure du pilote en mode noyau
Le WDK prend en charge plusieurs versions de Windows, et il prend également en charge plusieurs versions de l’infrastructure kmdf (Kernel Mode Driver Framework) et de l’infrastructure de pilote en mode utilisateur (UMDF). Les informations de contrôle de version dans les fichiers d’en-tête WDK concernent les versions De Windows, mais pas les versions KMDF ou UMDF. Les fichiers d’en-tête pour différentes versions de KMDF et d’UMDF sont placés dans des répertoires distincts.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour