Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
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