Fonction SetupDiEnumDriverInfoW (setupapi.h)
La fonction SetupDiEnumDriverInfo énumère les membres d’une liste de pilotes.
Syntaxe
WINSETUPAPI BOOL SetupDiEnumDriverInfoW(
[in] HDEVINFO DeviceInfoSet,
[in, optional] PSP_DEVINFO_DATA DeviceInfoData,
[in] DWORD DriverType,
[in] DWORD MemberIndex,
[out] PSP_DRVINFO_DATA_W DriverInfoData
);
Paramètres
[in] DeviceInfoSet
Handle du jeu d’informations sur l’appareil qui contient la liste des pilotes à énumérer.
[in, optional] DeviceInfoData
Pointeur vers une structure SP_DEVINFO_DATA qui spécifie un élément d’informations sur l’appareil dans DeviceInfoSet. Ce paramètre est facultatif et peut être NULL. Si ce paramètre est spécifié, SetupDiEnumDriverInfo énumère une liste de pilotes pour l’appareil spécifié. Si ce paramètre a la valeur NULL, SetupDiEnumDriverInfo énumère la liste des pilotes de classe globale associée à DeviceInfoSet (cette liste est de type SPDIT_CLASSDRIVER).
[in] DriverType
Type de liste de pilotes à énumérer, qui doit être l’une des valeurs suivantes :
SPDIT_CLASSDRIVER
Énumérez une liste de pilotes de classe. Ce type de liste de pilotes doit être spécifié si DeviceInfoData n’est pas spécifié.
SPDIT_COMPATDRIVER
Énumérez la liste des pilotes compatibles pour l’appareil spécifié. Ce type de liste de pilotes ne peut être spécifié que si DeviceInfoData est également spécifié.
[in] MemberIndex
Index de base zéro du membre d’informations du pilote à récupérer.
[out] DriverInfoData
Pointeur vers une structure de SP_DRVINFO_DATA initialisée par l’appelant qui reçoit des informations sur le pilote énuméré. L’appelant doit définir DriverInfoData.cbSize à sizeof(SP_DRVINFO_DATA) avant d’appeler SetupDiEnumDriverInfo. Si le membre cbSize n’est pas correctement défini, SetupDiEnumDriverInfo retourne FALSE.
Valeur retournée
La fonction retourne TRUE si elle réussit. Sinon, il retourne FALSE et l’erreur journalisée peut être récupérée avec un appel à GetLastError.
Remarques
Pour énumérer les membres du jeu d’informations de pilote, un programme d’installation doit d’abord appeler SetupDiEnumDriverInfo avec le paramètre MemberIndex défini sur 0. Il doit ensuite incrémenter MemberIndex et appeler SetupDiEnumDriverInfo jusqu’à ce qu’il n’y ait plus de valeurs. Lorsqu’il n’y a plus de valeurs, la fonction échoue et un appel à GetLastError retourne ERROR_NO_MORE_ITEMS.
Si vous n’initialisez pas correctement le membre cbSize de la structure SP_DRVINFO_DATA fournie par le pointeur DriverInfoData, la fonction échoue et journalise l’erreur ERROR_INVALID_USER_BUFFER.
Pour créer une liste de pilotes associés à un appareil spécifique ou à la liste des pilotes de classe globale d’un ensemble d’informations sur l’appareil, utilisez d’abord SetupDiBuildDriverInfoList , puis transmettez cette liste à SetupDiEnumDriverInfo.
Notes
L’en-tête setupapi.h définit SetupDiEnumDriverInfo comme un alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Microsoft Windows 2000 et versions ultérieures de Windows. |
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | setupapi.h (inclure Setupapi.h) |
Bibliothèque | Setupapi.lib |