Partager via


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
ERROR_INVALID_FLAGS
La valeur de Flags n’est pas valide.
ERROR_INVALID_CLASS
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.
ERROR_INVALID_REFERENCE_STRING
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é.
ERROR_INVALID_DATA
Une valeur de données non spécifiée n’est pas valide. Il est possible que la valeur ClassGuid ne soit pas valide.
ERROR_INVALID_PARAMETER
Un paramètre non spécifié n’est pas valide.
ERROR_INVALID_USER_BUFFER
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.
ERROR_INVALID_MACHINENAME
Le nom de l’ordinateur spécifié par MachineName n’est pas valide.
ERROR_NO_SUCH_INTERFACE_CLASS
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.
ERROR_INSUFFICENT_BUFFER
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.
ERROR_NOT_ENOUGH_MEMORY
Il n’y avait pas assez de mémoire système disponible pour terminer l’opération.
ERROR_ACCESS_DENIED
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

Voir aussi

SetupDiGetClassPropertyEx

SetupDiGetClassPropertyKeys

SetupDiSetClassPropertyEx