Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Crea o aggiorna un'istanza di una classe esistente. L'istanza viene scritta nel repository WMI.
Annotazioni
Questa API è solo per uso interno. Non è destinato all'uso dal codice dello sviluppatore.
Sintassi
HRESULT PutInstanceWmi (
[in] IWbemClassObject* pInst,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Parametri
pInst
[in] Puntatore all'istanza da scrivere.
lFlags
[in] Combinazione di flag che influiscono sul comportamento di questa funzione. I valori seguenti sono definiti nel file di intestazione WbemCli.h oppure è possibile definirli come costanti nel codice:
| Costante | Value | Description |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Se impostato, WMI non archivia i qualificatori con il Amended sapore. Se non è impostato, si presuppone che questo oggetto non sia localizzato e che tutti i qualificatori vengano archiviati con questa istanza. |
WBEM_FLAG_CREATE_OR_UPDATE |
0 | Creare l'istanza se non esiste o sovrascriverla se esiste già. |
WBEM_FLAG_UPDATE_ONLY |
1 | Aggiornare l'istanza di . L'istanza deve esistere affinché la chiamata venga completata correttamente. |
WBEM_FLAG_CREATE_ONLY |
2 | Creare l'istanza di . La chiamata ha esito negativo se l'istanza esiste già. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Il flag genera una chiamata semisincrona. |
pCtx
[in] In genere, questo valore è null. In caso contrario, è un puntatore a un'istanza di IWbemContext che può essere usata dal provider che fornisce le classi richieste.
ppCallResult
[out] Se null, questo parametro non è usato. Se lFlags contiene WBEM_FLAG_RETURN_IMMEDIATELY, la funzione restituisce immediatamente con WBEM_S_NO_ERROR. Il ppCallResult parametro riceve un puntatore a un nuovo oggetto IWbemCallResult .
Valore restituito
I valori seguenti restituiti da questa funzione sono definiti nel file di intestazione WbemCli.h oppure è possibile definirli come costanti nel codice:
| Costante | Value | Description |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | L'utente non dispone dell'autorizzazione per aggiornare un'istanza della classe specificata. |
WBEM_E_FAILED |
0x80041001 | Si è verificato un errore non specificato. |
WBEM_E_INVALID_CLASS |
0x80041010 | La classe che supporta questa istanza non è valida. |
WBEM_E_ILLEGAL_NULL |
0x80041028 |
null è stato specificato per una proprietà che non può essere null, ad esempio una proprietà contrassegnata da un Indexed qualificatore o Not_Null . |
WBEM_E_INVALID_OBJECT |
0x8004100f | L'istanza specificata non è valida. Ad esempio, la chiamata PutInstanceWmi con una classe restituisce questo valore. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Parametro non valido. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | Il WBEM_FLAG_CREATE_ONLY flag è stato specificato, ma l'istanza esiste già. |
WBEM_E_NOT_FOUND |
0x80041002 |
WBEM_FLAG_UPDATE_ONLY è stato specificato in lFlags, ma l'istanza non esiste. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Memoria insufficiente per completare l'operazione. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI è stato probabilmente arrestato e riavviato. Chiamare di nuovo ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Il collegamento rpc (Remote Procedure Call) tra il processo corrente e WMI non è riuscito. |
WBEM_S_NO_ERROR |
0 | La chiamata di funzione ha avuto esito positivo. |
Osservazioni:
Questa funzione esegue il wrapping di una chiamata al metodo IWbemServices::P utInstance .
La PutInstanceWmi funzione supporta la creazione di istanze e l'aggiornamento solo di istanze di classi esistenti. A seconda della modalità di impostazione del pCtx parametro, vengono aggiornate alcune o tutte le proprietà dell'istanza.
Quando l'istanza a pInst cui punta appartiene una sottoclasse, Gestione Windows chiama tutti i provider responsabili delle classi da cui deriva la sottoclasse. Tutti questi provider devono avere esito positivo affinché la richiesta originale PutInstanceWmi abbia esito positivo. Il provider che supporta la classe più in alto nella gerarchia viene chiamato per primo. L'ordine chiamante continua con la sottoclasse della classe topmost e procede dall'alto verso il basso fino a quando Gestione Windows raggiunge il provider per la classe proprietaria dell'istanza a pInstcui punta .
Gestione Windows non chiama i provider per nessuna delle classi figlio di un'istanza.
Quando un'applicazione deve aggiornare un'istanza appartenente a una gerarchia di classi, il pInst parametro deve puntare all'istanza contenente le proprietà da modificare. Si consideri quindi un'istanza di destinazione che appartiene a ClassB. L'istanza ClassB deriva da ClassA e ClassA definisce la proprietà PropA. Se un'applicazione vuole apportare una modifica al valore di PropA nell'istanza ClassB di , deve essere impostata su pInst tale istanza anziché su un'istanza di ClassA.
La chiamata PutInstanceWmi a un'istanza di una classe astratta non è consentita.
Se la chiamata di funzione non riesce, è possibile ottenere informazioni aggiuntive sull'errore chiamando la funzione GetErrorInfo .
Requisiti
Piattaforme: Vedere Requisiti di sistema.
Intestazione: WMINet_Utils.idl
Versioni di .NET Framework: Disponibile dalla versione 4.7.2