Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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