Delen via


PutInstanceWmi, functie

Hiermee maakt of werkt u een exemplaar van een bestaande klasse bij. Het exemplaar wordt geschreven naar de WMI-opslagplaats.

Opmerking

Deze API is alleen bedoeld voor intern gebruik. Het is niet bedoeld voor gebruik vanuit ontwikkelaarscode.

Syntaxis

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

Parameterwaarden

pInst
[in] Een aanwijzer naar het exemplaar dat moet worden geschreven.

lFlags
[in] Een combinatie van vlaggen die van invloed zijn op het gedrag van deze functie. De volgende waarden worden gedefinieerd in het headerbestand WbemCli.h of u kunt ze definiëren als constanten in uw code:

Constante Waarde Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Indien ingesteld, slaat WMI geen kwalificaties op met de Amended smaak.
Als dit niet is ingesteld, wordt ervan uitgegaan dat dit object niet is gelokaliseerd en dat alle kwalificaties worden opgeslagen bij dit exemplaar.
WBEM_FLAG_CREATE_OR_UPDATE 0 Maak het exemplaar als deze niet bestaat of overschrijf het als deze al bestaat.
WBEM_FLAG_UPDATE_ONLY 1 Werk het exemplaar bij. Het exemplaar moet bestaan om de aanroep te laten slagen.
WBEM_FLAG_CREATE_ONLY 2 Maak het exemplaar. De aanroep mislukt als het exemplaar al bestaat.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 De vlag veroorzaakt een semisynchrone aanroep.

pCtx
[in] Normaal gesproken is nulldeze waarde . Anders is het een aanwijzer naar een IWbemContext-exemplaar dat kan worden gebruikt door de provider die de aangevraagde klassen levert.

ppCallResult
[uit] Als null, deze parameter is ongebruikt. Als lFlags deze bevat WBEM_FLAG_RETURN_IMMEDIATELY, retourneert de functie onmiddellijk met WBEM_S_NO_ERROR. De ppCallResult parameter ontvangt een aanwijzer naar een nieuw IWbemCallResult-object .

Retourwaarde

De volgende waarden die door deze functie worden geretourneerd, worden gedefinieerd in het headerbestand WbemCli.h of u kunt deze definiëren als constanten in uw code:

Constante Waarde Description
WBEM_E_ACCESS_DENIED 0x80041003 De gebruiker is niet gemachtigd om een exemplaar van de opgegeven klasse bij te werken.
WBEM_E_FAILED 0x80041001 Er is een niet-opgegeven fout opgetreden.
WBEM_E_INVALID_CLASS 0x80041010 De klasse die dit exemplaar ondersteunt, is ongeldig.
WBEM_E_ILLEGAL_NULL 0x80041028 a is null opgegeven voor een eigenschap die niet kan worden nullopgegeven, zoals een eigenschap die is gemarkeerd door een Indexed of Not_Null kwalificatie.
WBEM_E_INVALID_OBJECT 0x8004100f Het opgegeven exemplaar is ongeldig. (Als u bijvoorbeeld aanroept PutInstanceWmi met een klasse, wordt deze waarde geretourneerd.)
WBEM_E_INVALID_PARAMETER 0x80041008 Een parameter is ongeldig.
WBEM_E_ALREADY_EXISTS 0x80041019 De WBEM_FLAG_CREATE_ONLY vlag is opgegeven, maar het exemplaar bestaat al.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY is opgegeven in lFlags, maar het exemplaar bestaat niet.
WBEM_E_OUT_OF_MEMORY 0x80041006 Er is onvoldoende geheugen beschikbaar om de bewerking te voltooien.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI is waarschijnlijk gestopt en opnieuw opgestart. Roep ConnectServerWmi opnieuw aan.
WBEM_E_TRANSPORT_FAILURE 0x80041015 De RPC-koppeling (Remote Procedure Call) tussen het huidige proces en WMI is mislukt.
WBEM_S_NO_ERROR 0 De functie-aanroep is geslaagd.

Opmerkingen

Deze functie verpakt een aanroep naar de methode IWbemServices::P utInstance .

De PutInstanceWmi functie biedt alleen ondersteuning voor het maken van exemplaren en het bijwerken van exemplaren van bestaande klassen. Afhankelijk van hoe de pCtx parameter is ingesteld, worden sommige of alle eigenschappen van het exemplaar bijgewerkt.

Wanneer het exemplaar waarnaar pInst wordt verwezen, deel uitmaakt van een subklasse, roept Windows Management alle providers aan die verantwoordelijk zijn voor de klassen waaruit de subklasse is afgeleid. Al deze providers moeten slagen om de oorspronkelijke PutInstanceWmi aanvraag te laten slagen. De provider die de bovenste klasse in de hiërarchie ondersteunt, wordt eerst aangeroepen. De aanroepvolgorde gaat verder met de subklasse van de bovenste klasse en gaat van boven naar beneden totdat Windows Management de provider voor de klasse bereikt die eigenaar is van het exemplaar dat door pInstis verwezen. Windows Management roept de providers niet aan voor een van de onderliggende klassen van een exemplaar.

Wanneer een toepassing een exemplaar moet bijwerken dat deel uitmaakt van een klassehiërarchie, moet de pInst parameter verwijzen naar het exemplaar dat de eigenschappen bevat die moeten worden gewijzigd. Dat wil gezegd, overweeg een doelexemplaren die deel uitmaakt van ClassB. Het ClassB exemplaar is afgeleid van ClassA en ClassA definieert de eigenschap PropA. Als een toepassing een wijziging wil aanbrengen in de waarde van PropA het ClassB exemplaar, moet deze worden ingesteld pInst op dat exemplaar in plaats van op een exemplaar van ClassA.

Het aanroepen PutInstanceWmi van een exemplaar van een abstracte klasse is niet toegestaan.

Als de functie-aanroep mislukt, kunt u aanvullende foutinformatie verkrijgen door de functie GetErrorInfo aan te roepen.

Requirements

Platformen: Zie Systeemvereisten.

Rubriek: WMINet_Utils.idl

.NET Framework-versies: Beschikbaar sinds 4.7.2

Zie ook