Bagikan melalui


Fungsi PutInstanceWmi

Membuat atau memperbarui instans kelas yang ada. Instans ditulis ke repositori WMI.

Nota

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

Syntax

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

Parameter-parameternya

pInst
[di] Penunjuk ke instans yang akan ditulis.

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

Konstanta Nilai Description
WBEM_FLAG_USE_AMENDED_QUALIFIERS 0x20000 Jika diatur, WMI tidak menyimpan kualifikasi apa pun dengan Amended rasa.
Jika tidak diatur, diasumsikan bahwa objek ini tidak dilokalkan, dan semua kualifikasi disimpan dengan instans ini.
WBEM_FLAG_CREATE_OR_UPDATE 0 Buat instans jika tidak ada, atau timpa jika sudah ada.
WBEM_FLAG_UPDATE_ONLY 1 Perbarui instans. Instans harus ada agar panggilan berhasil.
WBEM_FLAG_CREATE_ONLY 2 Buat instans. Panggilan gagal jika instans sudah ada.
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Bendera menyebabkan panggilan semisinkron.

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

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

Mengembalikan nilai

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

Konstanta Nilai Description
WBEM_E_ACCESS_DENIED 0x80041003 Pengguna tidak memiliki izin untuk memperbarui instans kelas yang ditentukan.
WBEM_E_FAILED 0x80041001 Terjadi kesalahan yang tidak ditentukan.
WBEM_E_INVALID_CLASS 0x80041010 Kelas yang mendukung instans ini tidak valid.
WBEM_E_ILLEGAL_NULL 0x80041028 null ditentukan untuk properti yang tidak dapat null, seperti properti yang ditandai oleh Indexed atau Not_Null kualifikasi.
WBEM_E_INVALID_OBJECT 0x8004100f Instans yang ditentukan tidak valid. (Misalnya, memanggil PutInstanceWmi dengan kelas mengembalikan nilai ini.)
WBEM_E_INVALID_PARAMETER 0x80041008 Parameter tidak valid.
WBEM_E_ALREADY_EXISTS 0x80041019 Bendera WBEM_FLAG_CREATE_ONLY ditentukan, tetapi instans sudah ada.
WBEM_E_NOT_FOUND 0x80041002 WBEM_FLAG_UPDATE_ONLY ditentukan dalam lFlags, tetapi instans tidak ada.
WBEM_E_OUT_OF_MEMORY 0x80041006 Memori tidak cukup tersedia untuk menyelesaikan operasi.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI mungkin dihentikan dan dimulai 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.

Komentar

Fungsi ini membungkus panggilan ke metode IWbemServices::P utInstance .

Fungsi ini PutInstanceWmi mendukung pembuatan instans dan memperbarui instans kelas yang ada saja. Bergantung pada bagaimana pCtx parameter diatur, beberapa atau semua properti instans diperbarui.

Ketika instans yang diarahkan oleh pInst milik subkelas, Manajemen Windows memanggil semua penyedia yang bertanggung jawab atas kelas tempat subkelas berasal. Semua penyedia ini harus berhasil agar permintaan asli PutInstanceWmi berhasil. Penyedia yang mendukung kelas teratas dalam hierarki dipanggil terlebih dahulu. Pesanan panggilan berlanjut dengan subkelas kelas paling atas dan berlanjut dari atas ke bawah sampai Manajemen Windows mencapai penyedia untuk kelas yang memiliki instans yang diarahkan oleh pInst. Manajemen Windows tidak memanggil penyedia untuk salah satu kelas turunan instans.

Ketika aplikasi harus memperbarui instans milik hierarki kelas, pInst parameter harus menunjuk ke instans yang berisi properti yang akan dimodifikasi. Artinya, pertimbangkan instans target milik ClassB. ClassB Instans berasal dari ClassA, dan ClassA mendefinisikan properti PropA. Jika aplikasi ingin membuat perubahan pada nilai PropA dalam instans, aplikasi harus diatur pInst ke instans tersebut ClassB daripada instans ClassA.

PutInstanceWmi Panggilan pada instans kelas abstrak tidak diizinkan.

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