Fonction SetupDiGetClassPropertyKeysExW (setupapi.h)
La fonction SetupDiGetClassPropertyKeysEx récupère un tableau des clés de propriété d’appareil qui représentent les propriétés d’appareil définies pour une classe d’installation d’appareil ou une classe d’interface d’appareil sur un ordinateur local ou distant.
Syntaxe
WINSETUPAPI BOOL SetupDiGetClassPropertyKeysExW(
[in] const GUID *ClassGuid,
[out, optional] DEVPROPKEY *PropertyKeyArray,
[in] DWORD PropertyKeyCount,
[out, optional] PDWORD RequiredPropertyKeyCount,
[in] DWORD Flags,
[in, optional] PCWSTR MachineName,
PVOID Reserved
);
Paramètres
[in] ClassGuid
Pointeur vers un GUID qui représente une classe d’installation d’appareil ou une classe d’interface d’appareil. SetupDiGetClassPropertyKeysEx récupère un tableau des clés de propriété d’appareil qui représentent les propriétés d’appareil définies pour la classe spécifiée. Pour plus d’informations sur la spécification du type de classe, consultez le paramètre Flags .
[out, optional] PropertyKeyArray
Pointeur vers une mémoire tampon qui reçoit un tableau de valeurs de type DEVPROPKEY, où chaque valeur est une clé de propriété d’appareil qui représente une propriété d’appareil définie pour la classe d’installation de l’appareil. Le pointeur est facultatif et peut être NULL. Pour plus d’informations, consultez la section Remarques plus loin dans cette rubrique.
[in] PropertyKeyCount
Taille, en valeurs de type DEVPROPKEY, de la mémoire tampon PropertyKeyArray . Si PropertyKeyArray a la valeur NULL, PropertyKeyCount doit avoir la valeur zéro.
[out, optional] RequiredPropertyKeyCount
Pointeur vers une variable de type DWORD qui reçoit le nombre de clés de propriété demandées. Le pointeur est facultatif et peut être défini sur NULL.
[in] Flags
L’une des valeurs suivantes, qui spécifie s’il faut récupérer les clés de propriété de classe pour une classe d’installation d’appareil ou pour une classe d’interface d’appareil.
DICLASSPROP_INSTALLER
ClassGuid spécifie une classe d’installation d’appareil. Cet indicateur ne peut pas être utilisé avec DICLASSPROP_INTERFACE.
DICLASSPROP_INTERFACE
ClassGuid spécifie une classe d’interface d’appareil. Cet indicateur ne peut pas être utilisé avec DICLASSPROP_INSTALLER.
[in, optional] MachineName
Pointeur vers une chaîne terminée par NULL qui contient le nom UNC, y compris le préfixe « \ », d’un ordinateur. Le pointeur peut avoir la valeur NULL. Si le pointeur a la valeur NULL, SetupDiGetClassPropertyKeysEx récupère les informations demandées à partir de l’ordinateur local.
Attention
L’utilisation de cette fonction pour accéder aux machines distantes n’est pas prise en charge à partir de Windows 8 et Windows Server 2012, car cette fonctionnalité a été supprimée.
Reserved
Ce paramètre doit avoir la valeur NULL.
Valeur retournée
SetupDiGetClassPropertyKeysEx retourne TRUE si elle réussit. Sinon, il retourne FALSE, et l’erreur journalisée peut être récupérée en appelant GetLastError.
Le tableau suivant inclut certains des codes d’erreur les plus courants que cette fonction peut enregistrer.
Code de retour | Description |
---|---|
|
La valeur de Flags n’est pas valide. |
|
Si l’indicateur DICLASSPROP_INSTALLER est spécifié, ce code d’erreur indique que la classe d’installation de l’appareil spécifiée par ClassGuid n’existe pas. |
|
La chaîne de référence pour l’interface de l’appareil spécifiée par ClassGuild n’est pas valide. Cette erreur peut être retournée lorsque l’indicateur DICLASSPROP_INTERFACE est spécifié. |
|
Une valeur de données non spécifiée n’est pas valide. Il est possible que la valeur ClassGuid ne soit pas valide. |
|
Un paramètre non spécifié n’est pas valide. |
|
Une mémoire tampon utilisateur n’est pas valide. Une possibilité est que PropertyKeyArray a la valeur NULL et que PropertKeyCount n’est pas zéro. |
|
Le nom de l’ordinateur spécifié par MachineName n’est pas valide. |
|
Si l’indicateur DICLASSPROP_INTERFACE est spécifié, ce code d’erreur indique que la classe d’interface d’appareil spécifiée par ClassGuid n’existe pas. |
|
La mémoire tampon PropertyKeyArray n’est pas assez grande pour contenir toutes les clés de propriété, ou une mémoire tampon de données interne qui a été passée à un appel système était trop petite. |
|
Il n’y avait pas assez de mémoire système disponible pour terminer l’opération. |
|
L’appelant ne dispose pas de privilèges d’administrateur. |
Remarques
SetupDiGetClassPropertyKeysEx fait partie du modèle de propriété d’appareil unifié.
Un appelant de SetupDiGetClassPropertyKeysEx doit être membre du groupe Administrateurs pour récupérer les clés de propriété d’appareil pour une classe d’appareil.
Si la mémoire tampon PropertyKeyArray n’est pas assez grande pour contenir toutes les clés de propriété demandées, SetupDiGetClassPropertyKeysEx ne récupère aucune clé de propriété et retourne ERROR_INSUFFICIENT_BUFFER. Si l’appelant a fourni un pointeur RequiredPropertyKeyCount, SetupDiGetClassPropertyKeysEx définit la valeur de *RequiredPropertyKeyCount à la taille requise, dans les valeurs de type DEVPROPKEY, de la mémoire tampon PropertyKeyArray.
Pour récupérer une propriété de classe d’appareil sur un ordinateur distant, appelez SetupDiGetClassPropertyEx et pour définir une propriété de classe d’appareil sur un ordinateur distant, appelez SetupDiSetClassPropertyEx.
Pour récupérer les clés de propriété d’une classe d’installation d’appareil ou d’une classe d’interface d’appareil sur un ordinateur local, appelez SetupDiGetClassPropertyKeys.
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Disponible dans Windows Vista et les versions plus récentes de Windows. |
Plateforme cible | DesktopPour universel, appelez CM_Get_Class_Property_Keys_Ex |
En-tête | setupapi.h (inclure Setupapi.h) |
Bibliothèque | Setupapi.lib |