Sdílet prostřednictvím


PutClassWmi

Vytvoří novou třídu nebo aktualizuje existující třídu.

Poznámka

Toto rozhraní API je určené pouze pro interní použití. Není určen pro použití z kódu vývojáře.

Syntaxe

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

Parametry

pObject
[v] Ukazatel na platnou definici třídy. Musí být správně inicializován se všemi požadovanými hodnotami vlastností.

lFlags
[v] Kombinace příznaků, které ovlivňují chování této funkce. Následující hodnoty jsou definovány v hlavičkovém souboru WbemCli.h nebo je můžete definovat jako konstanty v kódu:

Konstanta Hodnota Popis
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Pokud je nastavená, rozhraní WMI neukládá žádné kvalifikátory s upravenou příchutí.
Pokud není nastaven, předpokládá se, že tento objekt není lokalizován a všechny kvalifikátory jsou uloženy s touto instancí.
WBEM_FLAG_CREATE_OR_UPDATE 0 Vytvořte třídu, pokud neexistuje, nebo ji přepište, pokud již existuje.
WBEM_FLAG_UPDATE_ONLY 1 Aktualizujte třídu . Třída musí existovat, aby volání bylo úspěšné.
WBEM_FLAG_CREATE_ONLY 2 Vytvořte třídu . Volání selže, pokud třída již existuje.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Příznak způsobí polosynchronní volání.
WBEM_FLAG_OWNER_UPDATE 0x10000 Zprostředkovatelé nabízených oznámení musí při volání PutClassWmi zadat tento příznak, aby bylo možné indikovat, že se tato třída změnila.
WBEM_FLAG_UPDATE_COMPATIBLE 0 Umožňuje aktualizaci třídy, pokud neexistují žádné odvozené třídy a žádné instance této třídy. Umožňuje také aktualizace ve všech případech, pokud se změna týká pouze nedůležitých kvalifikátorů, jako je kvalifikátor popisu. Pokud třída obsahuje instance nebo se změní důležité kvalifikátory, aktualizace se nezdaří.
WBEM_FLAG_UPDATE_SAFE_MODE 0x20 Umožňuje aktualizace tříd, i když existují podřízené třídy, pokud změna nezpůsobí žádné konflikty s podřízenými třídami. Tento příznak například umožňuje přidat novou vlastnost do základní třídy, která nebyla dříve zmíněna v žádné z podřízených tříd. Pokud třída obsahuje instance, aktualizace se nezdaří.
WBEM_FLAG_UPDATE_FORCE_MODE 0x40 vynutí aktualizace tříd, pokud existují konfliktní podřízené třídy. Tento příznak například vynutí aktualizaci, pokud je kvalifikátor třídy definován v podřízené třídě a základní třída se pokusí přidat stejný kvalifikátor, který je v konfliktu s existujícím. V režimu vynucení se konflikt tis vyřeší odstraněním konfliktní kvalifikátoru v podřízené třídě.

pCtx
[v] Tato hodnota je nullobvykle . Jinak se jedná o ukazatel na instanci IWbemContext , který může být použit zprostředkovatelem, který poskytuje požadované třídy.

ppCallResult
[out] Pokud null, tento parametr se nepoužívá. Pokud lFlags obsahuje WBEM_FLAG_RETURN_IMMEDIATELY, vrátí funkce okamžitě s WBEM_S_NO_ERROR. Parametr ppCallResult obdrží ukazatel na nový objekt IWbemCallResult .

Vrácená hodnota

Následující hodnoty vrácené touto funkcí jsou definovány v hlavičce souboru WbemCli.h nebo je můžete definovat jako konstanty v kódu:

Konstanta Hodnota Popis
WBEM_E_ACCESS_DENIED 0x80041003 Uživatel nemá oprávnění k vytváření nebo úpravám tříd.
WBEM_E_FAILED 0x80041001 Došlo k nespecifikované chybě.
WBEM_E_INVALID_CLASS 0x80041010 Zadaná třída není platná. Obvykle to znamená, že pObject určuje objekt instance.
WBEM_E_INVALID_PARAMETER 0x80041008 Parametr není platný.
WBEM_E_INVALID OPERATION 0x80041016 Zadaný název třídy není platný.
WBEM_E_CLASS_HAS_CHILDREN 0x80041025 Došlo k pokusu o provedení změny, která by zneplatnila podtřídu.
WBEM_E_ALREADY_EXISTS 0x80041019 Příznak WBEM_FLAG_CREATE_ONLY byl zadán, ale třída již existuje.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY byla zadána v lFlagsa třída nebyla nalezena.
WBEM_E_INCOMPLETE_CLASS 0x80041020 Požadované vlastnosti pro třídy nebyly nastaveny všechny.
WBEM_E_OUT_OF_MEMORY 0x80041006 K dokončení operace není k dispozici dostatek paměti.
WBEM_E_SHUTTING_DOWN 0x80041033 Rozhraní WMI se pravděpodobně zastavilo a restartovalo. Znovu zavolejte ConnectServerWmi .
WBEM_E_TRANSPORT_FAILURE 0x80041015 Propojení vzdáleného volání procedur (RPC) mezi aktuálním procesem a rozhraním WMI selhalo.
WBEM_S_NO_ERROR 0 Volání funkce bylo úspěšné.

Poznámky

Tato funkce zabalí volání metody IWbemServices::P utClass .

Uživatel nesmí vytvářet třídy s názvy, které začínají nebo končí podtržítkem.

Pokud volání funkce selže, můžete získat další informace o chybě voláním funkce GetErrorInfo .

Požadavky

Platformy: Viz Požadavky na systém.

Záhlaví: WMINet_Utils.idl

Verze rozhraní .NET Framework: K dispozici od verze 4.7.2

Viz také