Funzione PutClassWmi
Crea una nuova classe o ne aggiorna una esistente.
Nota
Questa API è solo per uso interno. Non è destinata all'uso dal codice dello sviluppatore.
Sintassi
HRESULT PutClassWmi (
[in] IWbemClassObject* pObject,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Parametri
pObject
[in] Puntatore a una definizione di classe valida. Deve essere inizializzato correttamente con tutti i valori di proprietà necessari.
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 | Valore | Descrizione |
---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Se impostato, WMI non archivia alcun qualificatore con il sapore modificato. In caso contrario, 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 la classe se non esiste o sovrascriverla se esiste già. |
WBEM_FLAG_UPDATE_ONLY |
1 | Aggiornare la classe. La classe deve esistere per la corretta riuscita della chiamata. |
WBEM_FLAG_CREATE_ONLY |
2 | Creare la classe. La chiamata ha esito negativo se la classe esiste già. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Il flag causa una chiamata semisynchronous. |
WBEM_FLAG_OWNER_UPDATE |
0x10000 | I provider push devono specificare questo flag quando si chiama PutClassWmi per indicare che questa classe è stata modificata. |
WBEM_FLAG_UPDATE_COMPATIBLE |
0 | Consente l'aggiornamento di una classe se non sono presenti classi derivate e nessuna istanza di tale classe. Consente anche gli aggiornamenti in tutti i casi se la modifica è solo per qualificatori non importanti, ad esempio il qualificatore Descrizione. Se la classe ha istanze o modifiche sono di qualificatori importanti, l'aggiornamento ha esito negativo. |
WBEM_FLAG_UPDATE_SAFE_MODE |
0x20 | Consente gli aggiornamenti delle classi anche se sono presenti classi figlio, purché la modifica non causa conflitti con le classi figlio. Ad esempio, questo flag consente di aggiungere una nuova proprietà alla classe di base non menzionata in precedenza nelle classi figlio. Se la classe ha istanze, l'aggiornamento ha esito negativo. |
WBEM_FLAG_UPDATE_FORCE_MODE |
0x40 | forza gli aggiornamenti delle classi quando esistono classi figlio in conflitto. Ad esempio, questo flag forza un aggiornamento se un qualificatore di classe è definito in una classe figlio e la classe base tenta di aggiungere lo stesso qualificatore che è in conflitto con quello esistente. In modalità di forza, il conflitto tis viene risolto eliminando il qualificatore in conflitto nella classe figlio. |
pCtx
[in] In genere, questo valore è null
. In caso contrario, è un puntatore a un'istanza IWbemContext che può essere usata dal provider che fornisce le classi richieste.
ppCallResult
[out] Se null
, questo parametro è inutilizzato. 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 | Valore | Descrizione |
---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | L'utente non dispone dell'autorizzazione per creare o modificare le classi. |
WBEM_E_FAILED |
0x80041001 | Si è verificato un errore non specificato. |
WBEM_E_INVALID_CLASS |
0x80041010 | La classe specificata non è valida. In genere, questo indica che pObject specifica un oggetto di istanza. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Un parametro non è valido. |
WBEM_E_INVALID OPERATION |
0x80041016 | Il nome della classe specificato non è valido. |
WBEM_E_CLASS_HAS_CHILDREN |
0x80041025 | È stato effettuato un tentativo di apportare una modifica che invaliderebbe una sottoclasse. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | Il WBEM_FLAG_CREATE_ONLY flag è stato specificato, ma la classe esiste già. |
WBEM_E_NOT_FOUND |
0x80041002 | WBEM_FLAG_UPDATE_ONLY è stato specificato in lFlags e la classe non è stata trovata. |
WBEM_E_INCOMPLETE_CLASS |
0x80041020 | Le proprietà necessarie per le classi non sono tutte impostate. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Memoria insufficiente per completare l’operazione. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | WMI probabilmente è stato 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 alla funzione ha avuto esito positivo. |
Commenti
Questa funzione esegue il wrapping di una chiamata al metodo IWbemServices::P utClass .
L'utente potrebbe non creare classi con nomi che iniziano o terminano con un carattere di sottolineatura.
Se la chiamata alla funzione ha esito negativo, è possibile ottenere informazioni di errore aggiuntive chiamando la funzione GetErrorInfo .
Requisiti
Piattaforme: vedere Requisiti di sistema di .NET Framework.
Intestazione: WMINet_Utils.idl
Versioni di .NET Framework: Disponibile da 4.7.2