Udostępnij przez


PutClassWmi, funkcja

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

Zobacz też