Partager via


Fichiers d’en-tête dans le Kit de pilotes Windows

La documentation de référence de l’API pour 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 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 avec version 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 constantes 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

In the example you can see that the KeSetTargetProcessorDpcEx function is available only in Windows 7 and later versions of Windows.

Cette déclaration conditionnelle apparaît 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)

In the example can see that the GetPrintExecutionData function is available only in Windows 7 and later versions of Windows.

Fichiers d’en-tête pour l’infrastructure du pilote en mode noyau

WdK prend en charge plusieurs versions de Windows, et 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 se rapportent aux versions de Windows, mais pas aux versions KMDF ou UMDF. Les fichiers d’en-tête pour différentes versions de KMDF et UMDF sont placés dans des répertoires distincts.