Udostępnij przez


PutInstanceWmi, funkcja

Tworzy lub aktualizuje wystąpienie istniejącej klasy. Wystąpienie jest zapisywane w repozytorium WMI.

Uwaga / Notatka

Ten interfejs API jest przeznaczony tylko do użytku wewnętrznego. Nie jest ona przeznaczona do użycia z kodu dewelopera.

Składnia

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

Parametry

pInst
[in] Wskaźnik do wystąpienia do zapisania.

lFlags
[in] Kombinacja flag, które wpływają na zachowanie tej funkcji. Następujące wartości są definiowane w pliku nagłówka WbemCli.h lub można je zdefiniować jako stałe w kodzie:

Stały Wartość Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 W przypadku ustawienia usługa WMI nie przechowuje żadnych kwalifikatorów o Amended smaku.
Jeśli nie zostanie ustawiona, zakłada się, że ten obiekt nie jest zlokalizowany, a wszystkie kwalifikatory są przechowywane w tym wystąpieniu.
WBEM_FLAG_CREATE_OR_UPDATE 0 Utwórz wystąpienie, jeśli nie istnieje lub zastąp je, jeśli już istnieje.
WBEM_FLAG_UPDATE_ONLY 1 Zaktualizuj wystąpienie. Wystąpienie musi istnieć, aby wywołanie zakończyło się pomyślnie.
WBEM_FLAG_CREATE_ONLY 2 Utwórz wystąpienie. Wywołanie nie powiedzie się, jeśli wystąpienie już istnieje.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Flaga powoduje wywołanie semisynchroniczne.

pCtx
[in] Zazwyczaj ta wartość to null. W przeciwnym razie jest to wskaźnik do wystąpienia IWbemContext , które może być używane przez dostawcę dostarczającego żądane klasy.

ppCallResult
[out] Jeśli nullparametr jest nieużywany. Jeśli lFlags element zawiera WBEM_FLAG_RETURN_IMMEDIATELY, funkcja zwraca natychmiast wartość .WBEM_S_NO_ERROR Parametr ppCallResult odbiera wskaźnik do nowego obiektu IWbemCallResult .

Wartość zwracana

Następujące wartości zwracane przez tę funkcję są zdefiniowane w pliku nagłówka WbemCli.h lub można je zdefiniować jako stałe w kodzie:

Stały Wartość Description
WBEM_E_ACCESS_DENIED 0x80041003 Użytkownik nie ma uprawnień do aktualizowania wystąpienia określonej klasy.
WBEM_E_FAILED 0x80041001 Wystąpił nieokreślony błąd.
WBEM_E_INVALID_CLASS 0x80041010 Klasa obsługująca to wystąpienie jest nieprawidłowa.
WBEM_E_ILLEGAL_NULL 0x80041028 parametr null został określony dla właściwości, której nie można nulluznać za , na przykład tej, która jest oznaczona przez Indexed kwalifikator lub Not_Null .
WBEM_E_INVALID_OBJECT 0x8004100f Określone wystąpienie jest nieprawidłowe. (Na przykład wywołanie PutInstanceWmi za pomocą klasy zwraca tę wartość).
WBEM_E_INVALID_PARAMETER 0x80041008 Parametr jest nieprawidłowy.
WBEM_E_ALREADY_EXISTS 0x80041019 Określono flagę WBEM_FLAG_CREATE_ONLY , ale wystąpienie już istnieje.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY został określony w elemecie lFlags, ale wystąpienie nie istnieje.
WBEM_E_OUT_OF_MEMORY 0x80041006 Za mało pamięci, aby ukończyć operację.
WBEM_E_SHUTTING_DOWN 0x80041033 Usługa WMI została prawdopodobnie zatrzymana i uruchomiona ponownie. Ponownie wywołaj metodę ConnectServerWmi .
WBEM_E_TRANSPORT_FAILURE 0x80041015 Połączenie wywołania procedury zdalnej (RPC) między bieżącym procesem a usługą WMI nie powiodło się.
WBEM_S_NO_ERROR 0 Wywołanie funkcji zakończyło się pomyślnie.

Uwagi

Ta funkcja opakowuje wywołanie metody IWbemServices::P utInstance .

Funkcja PutInstanceWmi obsługuje tworzenie wystąpień i aktualizowanie tylko wystąpień istniejących klas. W zależności od sposobu ustawiania pCtx parametru niektóre lub wszystkie właściwości wystąpienia są aktualizowane.

Gdy wystąpienie wskazywane przez pInst należy do podklasy, usługa Windows Management wywołuje wszystkich dostawców odpowiedzialnych za klasy, z których pochodzi podklasa. Wszyscy ci dostawcy muszą odnieść sukces, aby oryginalne PutInstanceWmi żądanie powiodło się. Dostawca obsługujący najwyższą klasę w hierarchii jest wywoływany jako pierwszy. Kolejność wywoływania jest kontynuowana z podklasą najwyższej klasy i przechodzi od góry do dołu, aż usługa Windows Management dotrze do dostawcy dla klasy, która jest właścicielem wystąpienia wskazywanego przez pInst. Zarządzanie systemem Windows nie wywołuje dostawców dla żadnej z klas podrzędnych wystąpienia.

Gdy aplikacja musi zaktualizować wystąpienie należące do hierarchii klas, parametr musi wskazywać wystąpienie zawierające właściwości, pInst które mają zostać zmodyfikowane. Oznacza to, że należy wziąć pod uwagę wystąpienie docelowe należące do klasy B. Wystąpienie ClassB pochodzi z klasy ClassA i ClassA definiuje właściwość PropA. Jeśli aplikacja chce wprowadzić zmianę wartości PropA w wystąpieniu ClassB , musi ustawić pInst to wystąpienie, a nie wystąpienie klasyA.

Wywoływanie PutInstanceWmi wystąpienia klasy abstrakcyjnej jest niedozwolone.

Jeśli wywołanie funkcji zakończy się niepowodzeniem, możesz uzyskać dodatkowe informacje o błędzie, wywołując funkcję GetErrorInfo .

Requirements

Platformy: Zobacz Wymagania systemowe.

Nagłówek: WMINet_Utils.idl

Wersje programu .NET Framework: Dostępne od wersji 4.7.2

Zobacz także