Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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