Partager via


PutInstanceWmi, fonction

Crée ou met à jour une instance d’une classe existante. L’instance est écrite dans le référentiel WMI.

Note

Cette API est destinée uniquement à une utilisation interne. Il n’est pas destiné à être utilisé à partir du code du développeur.

Syntaxe

HRESULT PutInstanceWmi (
   [in] IWbemClassObject*    pInst,
   [in] long                 lFlags,
   [in] IWbemContext*        pCtx,
   [out] IWbemCallResult**   ppCallResult
);

Paramètres

pInst
[in] Pointeur vers l’instance à écrire.

lFlags
[in] Combinaison d’indicateurs qui affectent le comportement de cette fonction. Les valeurs suivantes sont définies dans le fichier d’en-tête WbemCli.h , ou vous pouvez les définir en tant que constantes dans votre code :

Constante Valeur Descriptif
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 S’il est défini, WMI ne stocke aucun qualificateur avec la Amended saveur.
Si ce n’est pas défini, il est supposé que cet objet n’est pas localisé et que tous les qualificateurs sont stockés avec cette instance.
WBEM_FLAG_CREATE_OR_UPDATE 0 Créez l’instance s’il n’existe pas ou remplacez-la s’il existe déjà.
WBEM_FLAG_UPDATE_ONLY 1 Mettez à jour l’instance. L’instance doit exister pour que l’appel réussisse.
WBEM_FLAG_CREATE_ONLY 2 Créez l’instance. L’appel échoue si l’instance existe déjà.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 L’indicateur provoque un appel semi-synchronisé.

pCtx
[in] En règle générale, cette valeur est null. Sinon, il s’agit d’un pointeur vers une instance IWbemContext qui peut être utilisée par le fournisseur qui fournit les classes demandées.

ppCallResult
[out] Si null, ce paramètre n’est pas utilisé. Si lFlags elle contient WBEM_FLAG_RETURN_IMMEDIATELY, la fonction retourne immédiatement avec WBEM_S_NO_ERROR. Le ppCallResult paramètre reçoit un pointeur vers un nouvel objet IWbemCallResult .

Valeur retournée

Les valeurs suivantes retournées par cette fonction sont définies dans le fichier d’en-tête WbemCli.h , ou vous pouvez les définir comme constantes dans votre code :

Constante Valeur Descriptif
WBEM_E_ACCESS_DENIED 0x80041003 L’utilisateur n’a pas l’autorisation de mettre à jour une instance de la classe spécifiée.
WBEM_E_FAILED 0x80041001 Une erreur non spécifiée s’est produite.
WBEM_E_INVALID_CLASS 0x80041010 La classe prenant en charge cette instance n’est pas valide.
WBEM_E_ILLEGAL_NULL 0x80041028 a null été spécifié pour une propriété qui ne peut pas être null, telle qu’une propriété marquée par un Indexed ou Not_Null un qualificateur.
WBEM_E_INVALID_OBJECT 0x8004100f L’instance spécifiée n’est pas valide. (Par exemple, l’appel PutInstanceWmi avec une classe retourne cette valeur.)
WBEM_E_INVALID_PARAMETER 0x80041008 Un paramètre n’est pas valide.
WBEM_E_ALREADY_EXISTS 0x80041019 L’indicateur WBEM_FLAG_CREATE_ONLY a été spécifié, mais l’instance existe déjà.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY a été spécifié dans lFlags, mais l’instance n’existe pas.
WBEM_E_OUT_OF_MEMORY 0x80041006 La mémoire est insuffisante pour terminer l’opération.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI a probablement été arrêté et redémarré. Appelez à nouveau ConnectServerWmi .
WBEM_E_TRANSPORT_FAILURE 0x80041015 Le lien d’appel de procédure distante (RPC) entre le processus actuel et WMI a échoué.
WBEM_S_NO_ERROR 0 L’appel de fonction a réussi.

Remarques

Cette fonction encapsule un appel à la méthode IWbemServices ::P utInstance .

La PutInstanceWmi fonction prend en charge la création d’instances et la mise à jour d’instances de classes existantes uniquement. Selon la façon dont le pCtx paramètre est défini, certaines ou toutes les propriétés de l’instance sont mises à jour.

Lorsque l’instance pointée par pInst appartient à une sous-classe, Windows Management appelle tous les fournisseurs responsables des classes dont dérive la sous-classe. Tous ces fournisseurs doivent réussir pour que la demande d’origine PutInstanceWmi réussisse. Le fournisseur prenant en charge la classe la plus haute dans la hiérarchie est appelé en premier. L’ordre d’appel continue avec la sous-classe de la classe la plus haute et passe de haut en bas jusqu’à ce que Windows Management atteigne le fournisseur pour la classe propriétaire de l’instance pointée par pInst. Windows Management n’appelle pas les fournisseurs pour les classes enfants d’une instance.

Lorsqu’une application doit mettre à jour une instance appartenant à une hiérarchie de classes, le pInst paramètre doit pointer vers l’instance contenant les propriétés à modifier. Autrement dit, considérez une instance cible qui appartient à ClassB. L’instance ClassB dérive de ClassA et ClassA définit la propriété PropA. Si une application souhaite apporter une modification à la valeur de PropA l’instance ClassB , elle doit définir pInst cette instance plutôt qu’une instance de ClassA.

L’appel PutInstanceWmi à une instance d’une classe abstraite n’est pas autorisé.

Si l’appel de fonction échoue, vous pouvez obtenir des informations d’erreur supplémentaires en appelant la fonction GetErrorInfo .

Spécifications

Plateformes : Consultez Configuration requise.

En-tête: WMINet_Utils.idl

Versions du .NET Framework : Disponible depuis la version 4.7.2

Voir aussi