Inclusion de GUID dans le code du pilote
Pour utiliser des GUID dans un pilote en mode noyau, vous devez effectuer deux opérations :
Incluez le fichier d’en-tête Initguid.h qui redéfinit la macro DEFINE_GUID .
Le fichier d’en-tête Initguid.h redéfinit la macro DEFINE_GUID pour instancier des GUID (au lieu de déclarer simplement une référence EXTERN). Incluez ce fichier d’en-tête dans le fichier source du pilote où les GUID doivent être instanciés. (Les applications en mode utilisateur incluent Objbase.h avant d’inclure les fichiers d’en-tête contenant des définitions GUID.)
Incluez le ou les fichiers d’en-tête qui définissent les GUID.
Après l’instruction pour inclure Initguid.h, vous incluez les fichiers d’en-tête contenant les définitions GUID. Un pilote peut inclure plusieurs fichiers d’en-tête contenant des définitions GUID, notamment des fichiers d’en-tête fournis par le système et des fichiers d’en-tête tiers.
L’extrait de code suivant montre la séquence d’instructions pour inclure des GUID :
:
// include system headers here such as wdm.h
#include <initguid.h>
// include system and driver-specific header files here that contain
// GUID definitions
...
Placez les instructions ci-dessus dans un module du pilote ; généralement le module main. Lorsque les instructions ci-dessus sont présentes, le pilote fait référence à un GUID à l’aide de son nom symbolique.