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 nową klasę lub aktualizuje istniejącą.
Uwaga
Ten interfejs API jest przeznaczony tylko do użytku wewnętrznego. Nie jest ona przeznaczona do użycia z kodu dewelopera.
Składnia
HRESULT PutClassWmi (
[in] IWbemClassObject* pObject,
[in] long lFlags,
[in] IWbemContext* pCtx,
[out] IWbemCallResult** ppCallResult
);
Parametry
pObject
[w] Wskaźnik do prawidłowej definicji klasy. Musi być poprawnie zainicjowana z wszystkimi wymaganymi wartościami właściwości.
lFlags
[w] Kombinacja flag, które wpływają na zachowanie tej funkcji. Następujące wartości są zdefiniowane w pliku nagłówka WbemCli.h lub można je zdefiniować jako stałe w kodzie:
| Stała | Wartość | Opis |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | W przypadku ustawienia usługa WMI nie przechowuje żadnych kwalifikatorów ze zmienionym smakiem. 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 klasę, jeśli nie istnieje, lub zastąp ją, jeśli już istnieje. |
WBEM_FLAG_UPDATE_ONLY |
1 | Zaktualizuj klasę. Klasa musi istnieć, aby wywołanie powiodło się. |
WBEM_FLAG_CREATE_ONLY |
2 | Utwórz klasę. Wywołanie kończy się niepowodzeniem, jeśli klasa już istnieje. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Flaga powoduje wywołanie półsynchroniczne. |
WBEM_FLAG_OWNER_UPDATE |
0x10000 | Dostawcy wypychania muszą określić tę flagę podczas wywoływania PutClassWmi , aby wskazać, że ta klasa uległa zmianie. |
WBEM_FLAG_UPDATE_COMPATIBLE |
0 | Umożliwia zaktualizowanie klasy, jeśli nie ma klas pochodnych i nie ma wystąpień tej klasy. Umożliwia również aktualizacje we wszystkich przypadkach, jeśli zmiana ma tylko nieistotne kwalifikatory, takie jak kwalifikator Opis. Jeśli klasa ma wystąpienia lub zmiany są ważne kwalifikatory, aktualizacja kończy się niepowodzeniem. |
WBEM_FLAG_UPDATE_SAFE_MODE |
0x20 | Umożliwia aktualizacje klas, nawet jeśli istnieją klasy podrzędne, o ile zmiana nie powoduje żadnych konfliktów z klasami podrzędnymi. Na przykład ta flaga umożliwia dodanie nowej właściwości do klasy bazowej, która nie została wcześniej wymieniona w żadnej z klas podrzędnych. Jeśli klasa ma wystąpienia, aktualizacja zakończy się niepowodzeniem. |
WBEM_FLAG_UPDATE_FORCE_MODE |
0x40 | wymusza aktualizacje klas, gdy istnieją sprzeczne klasy podrzędne. Na przykład ta flaga wymusza aktualizację, jeśli kwalifikator klasy jest zdefiniowany w klasie podrzędnej, a klasa bazowa próbuje dodać ten sam kwalifikator, który powoduje konflikt z istniejącym. W trybie wymuszania konflikt tis jest rozwiązywany przez usunięcie powodującego konflikt kwalifikatora w klasie podrzędnej. |
pCtx
[w] Zazwyczaj ta wartość to null. W przeciwnym razie jest to wskaźnik do wystąpienia IWbemContext , który może być używany przez dostawcę dostarczającego żądane klasy.
ppCallResult
[out] Jeśli nullparametr jest nieużywany. Jeśli lFlags element zawiera WBEM_FLAG_RETURN_IMMEDIATELYelement , funkcja zwraca natychmiast z poleceniem 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ła | Wartość | Opis |
|---|---|---|
WBEM_E_ACCESS_DENIED |
0x80041003 | Użytkownik nie ma uprawnień do tworzenia ani modyfikowania klas. |
WBEM_E_FAILED |
0x80041001 | Wystąpił nieokreślony błąd. |
WBEM_E_INVALID_CLASS |
0x80041010 | Określona klasa jest nieprawidłowa. Zazwyczaj oznacza to, że pObject określa obiekt wystąpienia. |
WBEM_E_INVALID_PARAMETER |
0x80041008 | Parametr jest nieprawidłowy. |
WBEM_E_INVALID OPERATION |
0x80041016 | Określona nazwa klasy jest nieprawidłowa. |
WBEM_E_CLASS_HAS_CHILDREN |
0x80041025 | Podjęto próbę wprowadzenia zmiany, która unieważniłaby podklasę. |
WBEM_E_ALREADY_EXISTS |
0x80041019 | Określono flagę WBEM_FLAG_CREATE_ONLY , ale klasa już istnieje. |
WBEM_E_NOT_FOUND |
0x80041002 |
WBEM_FLAG_UPDATE_ONLY został określony w elemecie lFlags, a klasa nie została znaleziona. |
WBEM_E_INCOMPLETE_CLASS |
0x80041020 | Wymagane właściwości dla klas nie zostały ustawione. |
WBEM_E_OUT_OF_MEMORY |
0x80041006 | Za mało pamięci jest dostępna do ukończenia operacji. |
WBEM_E_SHUTTING_DOWN |
0x80041033 | Prawdopodobnie usługa WMI została zatrzymana i uruchomiona ponownie. Ponownie wywołaj metodę ConnectServerWmi . |
WBEM_E_TRANSPORT_FAILURE |
0x80041015 | Połączenie zdalnego wywołania procedury (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 utClass .
Użytkownik może nie tworzyć klas z nazwami rozpoczynającymi się lub kończącymi znakiem podkreślenia.
Jeśli wywołanie funkcji zakończy się niepowodzeniem, możesz uzyskać dodatkowe informacje o błędzie, wywołując funkcję GetErrorInfo .
Wymagania
Platformy: Zobacz Wymagania systemowe.
Nagłówka: WMINet_Utils.idl
.NET Framework wersje: dostępne od wersji 4.7.2