Sdílet prostřednictvím


PutInstanceWmi – funkce

Vytvoří nebo aktualizuje instanci existující třídy. Instance se zapíše do úložiště WMI.

Poznámka:

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

Syntaxe

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

Parametry

pInst
[v] Ukazatel na instanci, která se má zapsat.

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

Konstanta Hodnota Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 V případě nastavení rozhraní WMI neukládá žádné kvalifikátory s příchutí Amended .
Pokud není nastavena, předpokládá se, že tento objekt není lokalizovaný a všechny kvalifikátory jsou uloženy s touto instancí.
WBEM_FLAG_CREATE_OR_UPDATE 0 Vytvořte instanci, pokud neexistuje, nebo ji přepište, pokud již existuje.
WBEM_FLAG_UPDATE_ONLY 1 Aktualizujte instanci. Instance musí existovat, aby volání bylo úspěšné.
WBEM_FLAG_CREATE_ONLY 2 Vytvořte instanci. Volání selže, pokud instance již existuje.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Příznak způsobí polosynchronní volání.

pCtx
[v] Obvykle je tato hodnota null. Jinak se jedná o ukazatel na instanci IWbemContext , kterou může použít zprostředkovatel poskytující požadované třídy.

ppCallResult
[ven] Pokud nullse tento parametr 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ý IWbemCallResult objektu.

Návratová hodnota

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

Konstanta Hodnota Description
WBEM_E_ACCESS_DENIED 0x80041003 Uživatel nemá oprávnění k aktualizaci instance zadané třídy.
WBEM_E_FAILED 0x80041001 Došlo k nezadané chybě.
WBEM_E_INVALID_CLASS 0x80041010 Třída podporující tuto instanci není platná.
WBEM_E_ILLEGAL_NULL 0x80041028 null byla zadána pro vlastnost, která nemůže být null, například vlastnost, která je označena Indexed nebo Not_Null kvalifikátorem.
WBEM_E_INVALID_OBJECT 0x8004100f Zadaná instance není platná. (Volání s třídou například PutInstanceWmi vrátí tuto hodnotu.)
WBEM_E_INVALID_PARAMETER 0x80041008 Parametr není platný.
WBEM_E_ALREADY_EXISTS 0x80041019 Byl WBEM_FLAG_CREATE_ONLY zadán příznak, ale instance již existuje.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY byla zadána v lFlags, ale instance neexistuje.
WBEM_E_OUT_OF_MEMORY 0x80041006 K dokončení operace není k dispozici dostatek paměti.
WBEM_E_SHUTTING_DOWN 0x80041033 Rozhraní WMI bylo pravděpodobně zastaveno a restartován. Znovu volejte ConnectServerWmi .
WBEM_E_TRANSPORT_FAILURE 0x80041015 Propojení vzdáleného volání procedur (RPC) mezi aktuálním procesem a rozhraním WMI se nezdařilo.
WBEM_S_NO_ERROR 0 Volání funkce bylo úspěšné.

Poznámky

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

Funkce PutInstanceWmi podporuje pouze vytváření instancí a aktualizaci instancí existujících tříd. V závislosti na nastavení parametru pCtx se aktualizují některé nebo všechny vlastnosti instance.

Když instance, na kterou pInst odkazuje, patří do podtřídy, windows Management volá všechny zprostředkovatele zodpovědné za třídy, ze kterých je podtřída odvozena. Všichni tito poskytovatelé musí být úspěšní, aby původní PutInstanceWmi požadavek uspěl. Poskytovatel podporující nejvyšší třídu v hierarchii se nazývá jako první. Pořadí volání pokračuje podtřídou nejvyšší třídy a pokračuje shora dolů, dokud správa systému Windows nedosáhne zprostředkovatele pro třídu, která vlastní instanci, na kterou pInstodkazuje . Správa systému Windows nevolá zprostředkovatele pro žádnou podřízenou třídu instance.

Když aplikace musí aktualizovat instanci, která patří do hierarchie tříd, pInst musí parametr odkazovat na instanci obsahující vlastnosti, které se mají upravit. To znamená, že zvažte cílovou instanci, která patří do TřídyB. Instance ClassB je odvozena z ClassA a ClassA definuje vlastnost PropA. Pokud aplikace chce provést změnu hodnoty PropA v ClassB instanci, musí být nastavena pInst na danou instanci místo instance ClassA.

Volání PutInstanceWmi instance abstraktní třídy není povoleno.

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é