Dela via


PutInstanceWmi-funktion

Skapar eller uppdaterar en instans av en befintlig klass. Instansen skrivs till WMI-lagringsplatsen.

Anmärkning

Det här API:et är endast för internt bruk. Den är inte avsedd för användning från utvecklarkod.

Syntax

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

Parameterar

pInst
[i] En pekare till den instans som ska skrivas.

lFlags
[i] En kombination av flaggor som påverkar funktionens beteende. Följande värden definieras i rubrikfilen WbemCli.h , eller så kan du definiera dem som konstanter i koden:

Konstant Värde Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Om det anges lagrar WMI inte några kvalificerare med smaken Amended .
Om det inte anges antas det att det här objektet inte är lokaliserat och att alla kvalificerare lagras med den här instansen.
WBEM_FLAG_CREATE_OR_UPDATE 0 Skapa instansen om den inte finns eller skriv över den om den redan finns.
WBEM_FLAG_UPDATE_ONLY 1 Uppdatera instansen. Instansen måste finnas för att anropet ska lyckas.
WBEM_FLAG_CREATE_ONLY 2 Skapa instansen. Anropet misslyckas om instansen redan finns.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Flaggan orsakar ett semisynkront anrop.

pCtx
[i] Normalt är nulldet här värdet . Annars är det en pekare till en IWbemContext-instans som kan användas av providern som tillhandahåller de begärda klasserna.

ppCallResult
[ut] Om nullanvänds inte den här parametern. Om lFlags innehåller returnerar WBEM_FLAG_RETURN_IMMEDIATELYfunktionen omedelbart med WBEM_S_NO_ERROR. Parametern ppCallResult tar emot en pekare till ett nytt IWbemCallResult-objekt .

Returvärde

Följande värden som returneras av den här funktionen definieras i rubrikfilen WbemCli.h , eller så kan du definiera dem som konstanter i koden:

Konstant Värde Description
WBEM_E_ACCESS_DENIED 0x80041003 Användaren har inte behörighet att uppdatera en instans av den angivna klassen.
WBEM_E_FAILED 0x80041001 Ett ospecificerat fel har inträffat.
WBEM_E_INVALID_CLASS 0x80041010 Klassen som stöder den här instansen är inte giltig.
WBEM_E_ILLEGAL_NULL 0x80041028 a null har angetts för en egenskap som inte kan vara null, till exempel en som har markerats av en eller Not_Null en Indexed kvalificerare.
WBEM_E_INVALID_OBJECT 0x8004100f Den angivna instansen är ogiltig. (Om du till exempel anropar PutInstanceWmi med en klass returneras det här värdet.)
WBEM_E_INVALID_PARAMETER 0x80041008 En parameter är ogiltig.
WBEM_E_ALREADY_EXISTS 0x80041019 Flaggan WBEM_FLAG_CREATE_ONLY har angetts, men instansen finns redan.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY angavs i lFlags, men instansen finns inte.
WBEM_E_OUT_OF_MEMORY 0x80041006 Det finns inte tillräckligt med minne för att slutföra åtgärden.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI stoppades förmodligen och startades om. Anropa ConnectServerWmi igen.
WBEM_E_TRANSPORT_FAILURE 0x80041015 RPC-länken (Remote Procedure Call) mellan den aktuella processen och WMI misslyckades.
WBEM_S_NO_ERROR 0 Funktionsanropet lyckades.

Anmärkningar

Den här funktionen omsluter ett anrop till metoden IWbemServices::P utInstance .

Funktionen PutInstanceWmi stöder endast skapande av instanser och uppdatering av instanser av befintliga klasser. Beroende på hur parametern pCtx har angetts uppdateras antingen vissa eller alla egenskaper för instansen.

När instansen som pekas av pInst tillhör en underklass anropar Windows Management alla leverantörer som ansvarar för de klasser som underklassen härleder från. Alla dessa leverantörer måste lyckas för att den ursprungliga PutInstanceWmi begäran ska lyckas. Providern som stöder den översta klassen i hierarkin kallas först. Anropsordningen fortsätter med underklassen för den översta klassen och fortsätter uppifrån och ned tills Windows Management når providern för klassen som äger instansen som pekas på av pInst. Windows Management anropar inte leverantörerna för någon av de underordnade klasserna i en instans.

När ett program måste uppdatera en instans som tillhör en klasshierarki måste parametern pInst peka på den instans som innehåller de egenskaper som ska ändras. Överväg alltså en målinstans som tillhör ClassB. Instansen ClassB härleds från ClassA och ClassA definierar egenskapen PropA. Om ett program vill ändra värdet PropA för i instansen måste det anges pInst till den instansen ClassB i stället för en instans av ClassA.

Det är inte tillåtet att anropa PutInstanceWmi en instans av en abstrakt klass.

Om funktionsanropet misslyckas kan du hämta ytterligare felinformation genom att anropa funktionen GetErrorInfo .

Kravspecifikation

Plattformar: Se Systemkrav.

Rubrik: WMINet_Utils.idl

.NET Framework-versioner: Tillgänglig sedan 4.7.2

Se även