Bagikan melalui


Fungsi PutClassWmi

Membuat kelas baru atau memperbarui Image yang sudah ada.

Catatan

API ini hanya untuk penggunaan internal. API ini tidak dimaksudkan untuk digunakan dari kode pengembang.

Sintaks

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

Parameter

pObject
[in] Penunjuk ke definisi kelas yang valid. Itu harus diinisialisasi dengan benar dengan semua nilai properti yang diperlukan.

lFlags
[in] Kombinasi bendera yang memengaruhi perilaku fungsi ini. Nilai berikut ditentukan dalam file header WbemCli.h, atau Anda dapat menentukannya sebagai konstanta dalam kode Anda:

Terus-menerus Nilai Deskripsi
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Jika diatur, WMI tidak akan menyimpan pengkualifikasi dengan ragam yang diubah.
Jika tidak diatur, diasumsikan bahwa objek ini tidak dilokalkan, dan semua pengkualifikasi disimpan dengan instans ini.
WBEM_FLAG_CREATE_OR_UPDATE 0 Buat kelas jika tidak ada, atau timpa jika sudah ada.
WBEM_FLAG_UPDATE_ONLY 1 Perbarui kelas. Kelas harus ada agar panggilan berhasil.
WBEM_FLAG_CREATE_ONLY 2 Membuat kelas. Panggilan gagal jika kelas sudah ada.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Bendera menyebabkan panggilan semisinkron.
WBEM_FLAG_OWNER_UPDATE 0x10000 Penyedia pendorongan harus menentukan bendera ini saat memanggil PutClassWmi untuk menunjukkan bahwa kelas ini telah berubah.
WBEM_FLAG_UPDATE_COMPATIBLE 0 Memungkinkan kelas diperbarui jika tidak ada kelas turunan dan tidak ada instans kelas tersebut. Ini juga memungkinkan pembaruan dalam semua kasus jika perubahan hanya untuk pengkualifikasi yang tidak penting, seperti pengkualifikasi Deskripsi. Jika kelas memiliki instans atau perubahan untuk pengkualifikasi penting, maka pembaruan akan gagal.
WBEM_FLAG_UPDATE_SAFE_MODE 0x20 Mengizinkan pembaruan kelas meskipun ada kelas turunan selama perubahan tersebut tidak menyebabkan konflik dengan kelas turunan. Misalnya, bendera ini memungkinkan properti baru ditambahkan ke kelas dasar yang sebelumnya tidak disebutkan di salah satu kelas turunan. Jika kelas memiliki instans, maka pembaruan akan gagal.
WBEM_FLAG_UPDATE_FORCE_MODE 0x40 memaksa pembaruan kelas saat ada kelas turunan yang berkonflik. Misalnya, bendera ini memaksa pembaruan jika pengkualifikasi kelas didefinisikan dalam kelas turunan, dan kelas dasar mencoba menambahkan kualifikasi yang sama yang berkonflik dengan yang sudah ada. Dalam mode paksa, konflik jaringan diselesaikan dengan menghapus pengkualifikasi yang bertentangan di kelas turunan.

pCtx
[in] Biasanya, nilai ini adalah null. Jika tidak, ini adalah penunjuk ke instans IWbemContext yang dapat digunakan oleh penyedia yang menyediakan kelas yang diminta.

ppCallResult
[keluar] Jika null, parameter ini tidak digunakan. Jika lFlags berisi WBEM_FLAG_RETURN_IMMEDIATELY, fungsi segera mengembalikan dengan WBEM_S_NO_ERROR. Parameter ppCallResult menerima penunjuk ke objek IWbemCallResult baru.

Mengembalikan nilai

Nilai berikut yang dikembalikan oleh fungsi ini ditentukan dalam file header WbemCli.h, atau Anda dapat menentukannya sebagai konstanta dalam kode Anda:

Terus-menerus Nilai Deskripsi
WBEM_E_ACCESS_DENIED 0x80041003 Pengguna tidak memiliki izin untuk membuat atau mengubah kelas.
WBEM_E_FAILED 0x80041001 Terjadi kesalahan yang tidak tentu.
WBEM_E_INVALID_CLASS 0x80041010 Kelas yang ditentukan tidak valid. Biasanya, ini menunjukkan bahwa pObject menentukan objek instans.
WBEM_E_INVALID_PARAMETER 0x80041008 Parameter tidak valid.
WBEM_E_INVALID OPERATION 0x80041016 Nama kelas yang ditentukan tidak valid.
WBEM_E_CLASS_HAS_CHILDREN 0x80041025 Upaya dilakukan untuk membuat perubahan yang akan membatalkan subkelas.
WBEM_E_ALREADY_EXISTS 0x80041019 Bendera WBEM_FLAG_CREATE_ONLY ditentukan, tetapi kelas sudah ada.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY ditentukan dalam lFlags, dan kelas tidak ditemukan.
WBEM_E_INCOMPLETE_CLASS 0x80041020 Properti yang diperlukan untuk kelas belum semuanya ditetapkan.
WBEM_E_OUT_OF_MEMORY 0x80041006 Tidak tersedia cukup memori untuk menyelesaikan operasi.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI mungkin dihentikan dan dihidupkan ulang. Panggil ConnectServerWmi lagi.
WBEM_E_TRANSPORT_FAILURE 0x80041015 Tautan panggilan prosedur jarak jauh (RPC) antara proses saat ini dan WMI telah gagal.
WBEM_S_NO_ERROR 0 Panggilan fungsi berhasil.

Keterangan

Fungsi ini membungkus panggilan ke metode IWbemServices::PutClass.

Pengguna tidak boleh membuat kelas dengan nama yang dimulai atau diakhiri dengan karakter garis bawah.

Jika panggilan fungsi gagal, Anda dapat memperoleh informasi kesalahan tambahan dengan memanggil fungsi GetErrorInfo.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: WMINet_Utils.idl

Versi .NET Framework: Tersedia sejak 4.7.2

Lihat juga