Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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