Megosztás a következőn keresztül:


PutInstanceWmi függvény

Egy meglévő osztály egy példányát hozza létre vagy frissíti. A példány a WMI-adattárba van írva.

Megjegyzés:

Ez az API csak belső használatra készült. Nem fejlesztői kódból való használatra készült.

Szemantika

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

Paraméterek

pInst
[in] Mutató az írandó példányra.

lFlags
[in] A függvény működését befolyásoló jelzők kombinációja. A következő értékek a WbemCli.h fejlécfájlban vannak definiálva, vagy konstansként definiálhatók a kódban:

Állandó Érték Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Ha be van állítva, a WMI nem tárol semmilyen minősítőt az Amended ízével.
Ha nincs beállítva, a rendszer feltételezi, hogy ez az objektum nincs honosítva, és az összes minősítő ezzel a példánysal van tárolva.
WBEM_FLAG_CREATE_OR_UPDATE 0 Hozza létre a példányt, ha nem létezik, vagy írja felül, ha már létezik.
WBEM_FLAG_UPDATE_ONLY 1 Frissítse a példányt. A példánynak léteznie kell ahhoz, hogy a hívás sikeres legyen.
WBEM_FLAG_CREATE_ONLY 2 Hozza létre a példányt. A hívás meghiúsul, ha a példány már létezik.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 A jelző félszinkron hívást okoz.

pCtx
[in] Ez az érték általában .null Ellenkező esetben ez egy IWbemContext-példányra mutató mutató, amelyet a kért osztályokat biztosító szolgáltató használhat.

ppCallResult
[kifelé] Ha nullez a paraméter nincs használatban. Ha lFlags tartalmazza WBEM_FLAG_RETURN_IMMEDIATELY, a függvény azonnal a következővel WBEM_S_NO_ERRORtér vissza: . A ppCallResult paraméter egy új IWbemCallResult objektumra mutató mutatót kap.

Visszaadott érték

A függvény által visszaadott alábbi értékek a WbemCli.h fejlécfájlban vannak definiálva, vagy konstansként definiálhatók a kódban:

Állandó Érték Description
WBEM_E_ACCESS_DENIED 0x80041003 A felhasználónak nincs engedélye a megadott osztály egy példányának frissítésére.
WBEM_E_FAILED 0x80041001 Meghatározatlan hiba történt.
WBEM_E_INVALID_CLASS 0x80041010 A példányt támogató osztály érvénytelen.
WBEM_E_ILLEGAL_NULL 0x80041028 egy null olyan tulajdonsághoz lett megadva, amely nem lehetnull, például egy vagy Not_Null egy minősítő által Indexed megjelölt tulajdonsághoz.
WBEM_E_INVALID_OBJECT 0x8004100f A megadott példány érvénytelen. (Egy osztály hívása például PutInstanceWmi ezt az értéket adja vissza.)
WBEM_E_INVALID_PARAMETER 0x80041008 A paraméter érvénytelen.
WBEM_E_ALREADY_EXISTS 0x80041019 A WBEM_FLAG_CREATE_ONLY jelölő meg van adva, de a példány már létezik.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY van megadva, lFlagsde a példány nem létezik.
WBEM_E_OUT_OF_MEMORY 0x80041006 Nincs elegendő memória a művelet végrehajtásához.
WBEM_E_SHUTTING_DOWN 0x80041033 A WMI valószínűleg leállt, és újraindult. Hívja újra a ConnectServerWmi parancsot.
WBEM_E_TRANSPORT_FAILURE 0x80041015 Az aktuális folyamat és a WMI közötti távoli eljáráshívás (RPC) kapcsolata sikertelen volt.
WBEM_S_NO_ERROR 0 A függvényhívás sikeres volt.

Megjegyzések

Ez a függvény körbefuttat egy hívást az IWbemServices::P utInstance metódushoz .

A PutInstanceWmi függvény csak a meglévő osztályok példányainak létrehozását és frissítését támogatja. A paraméter beállításától függően pCtx a példány néhány vagy az összes tulajdonsága frissül.

Amikor a példány pInst egy alosztályhoz tartozik, a Windows Management meghívja azokat a szolgáltatókat, amelyek az alosztály alapjául szolgáló osztályokért felelősek. Mindegyik szolgáltatónak sikeresnek kell lennie ahhoz, hogy az eredeti PutInstanceWmi kérés sikeres legyen. A hierarchia legfelső osztályát támogató szolgáltató neve az első. A hívási sorrend a legfelső osztály alosztályával folytatódik, és felülről lefelé halad, amíg a Windows Management el nem éri a szolgáltatót a példányt pInstbirtokoló osztályhoz. A Windows Management nem hívja meg a példány egyik gyermekosztályának szolgáltatóját sem.

Amikor egy alkalmazásnak frissítenie kell egy osztályhierarchiához tartozó példányt, a pInst paraméternek a módosítani kívánt tulajdonságokat tartalmazó példányra kell mutatnia. Vagyis fontolja meg a ClassB-hez tartozó célpéldányt. A ClassB példány a ClassA osztályból származik, és ClassA meghatározza a PropA tulajdonságot. Ha egy alkalmazás módosítani szeretné a példány értékét PropAClassB, annak a ClassA-példány helyett az adott példányra kell állítaniapInst.

Absztrakt osztály egy példányának meghívása PutInstanceWmi nem engedélyezett.

Ha a függvényhívás sikertelen, további hibainformációkhoz juthat a GetErrorInfo függvény meghívásával.

Requirements

Platformok: Lásd a rendszerkövetelményeket.

Fejléc: WMINet_Utils.idl

.NET-keretrendszerverziók: 4.7.2 óta érhető el

Lásd még