Metode IWbemServices::P utInstance (wbemcli.h)

Metode IWbemServices::P utInstance membuat atau memperbarui instans kelas yang ada. Instans ditulis ke repositori WMI.

Sintaks

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

Parameter

[in] pInst

Arahkan ke instans yang akan ditulis. Pemanggil tidak dapat membuat asumsi tentang jumlah referensi saat penyelesaian panggilan ini.

[in] lFlags

Satu atau beberapa nilai berikut ini dapat diatur.

WBEM_FLAG_CREATE_OR_UPDATE

Bendera ini menyebabkan instans dibuat jika belum ada atau ditimpa jika sudah ada.

WBEM_FLAG_UPDATE_ONLY

Bendera ini menyebabkan panggilan ini diperbarui. Instans harus ada agar panggilan berhasil.

WBEM_FLAG_CREATE_ONLY

Bendera ini hanya digunakan untuk pembuatan. Panggilan gagal jika instans sudah ada.

WBEM_FLAG_RETURN_IMMEDIATELY

Bendera ini menyebabkan ini menjadi panggilan semisinkron. Untuk informasi selengkapnya, lihat Memanggil Metode.

WBEM_FLAG_USE_AMENDED_QUALIFIERS

Jika bendera ini diatur, WMI tidak menyimpan kualifikasi apa pun dengan rasa Diubah . Jika bendera ini tidak diatur, diasumsikan bahwa objek ini tidak dilokalkan, dan semua kualifikasi disimpan dengan instans ini.

[in] pCtx

Biasanya NULL, menunjukkan bahwa setiap properti dalam instans akan diperbarui. Jika tidak, ini adalah penunjuk ke objek IWbemContext yang berisi informasi lebih lanjut tentang instans. Data dalam objek konteks harus di dokumentasikan oleh penyedia yang bertanggung jawab atas instans. Objek IWbemContextnon-NULL dapat menunjukkan apakah dukungan ada untuk pembaruan instans parsial.

Untuk informasi selengkapnya tentang cara mendukung pembaruan instans penuh dan parsial, lihat IWbemServices::P utInstanceAsync. Untuk informasi selengkapnya tentang meminta operasi pembaruan instans penuh atau parsial, lihat Memodifikasi Properti Instans.

[out] ppCallResult

Jika NULL, parameter ini tidak digunakan. Jika parameter lFlags berisi WBEM_FLAG_RETURN_IMMEDIATELY, panggilan ini segera kembali dengan WBEM_S_NO_ERROR. Parameter ppCallResult kemudian menerima pointer ke objek IWbemCallResult baru, yang dapat dijajaki dengan IWbemCallResult::GetCallStatus untuk mendapatkan hasilnya.

Mengembalikan nilai

Metode ini mengembalikan HRESULT yang menunjukkan status panggilan metode. Daftar berikut mencantumkan nilai yang terkandung dalam HRESULT.

Kode kesalahan khusus COM juga dapat dikembalikan jika masalah jaringan menyebabkan Anda kehilangan koneksi jarak jauh ke Manajemen Windows.

Keterangan

Aplikasi dan penyedia memanggil PutInstance untuk membuat atau memperbarui instans kelas yang ada. Bergantung pada bagaimana parameter pCtx diatur, baik beberapa atau semua properti instans diperbarui. Untuk informasi selengkapnya tentang cara mendukung pembaruan instans parsial, lihat IWbemServices::P utInstanceAsync. Untuk informasi selengkapnya tentang meminta pembaruan instans parsial, lihat Memodifikasi Properti Instans.

Metode PutInstance mendukung pembuatan instans dan memperbarui instans saja. Ini tidak mendukung pemindahan instans. Artinya, pemanggil tidak dapat mengatur parameter pInst ke instans yang memiliki kunci yang sama dengan instans lain di kelas saudara. Misalnya, ClassA adalah kelas dasar untuk ClassB dan ClassC. Kelas ClassA mendefinisikan properti KeyProp sebagai kuncinya dan ClassB memiliki instans yang memiliki KeyProp yang diatur ke 1. Untuk membuat instans ClassC dengan KeyProp yang diatur ke 1, aplikasi harus terlebih dahulu menghapus instans ClassB dengan memanggil DeleteInstance lalu menyimpan instans ClassC dengan PutInstance.

Ketika instans yang ditunjukkan oleh pInst milik subkelas, Manajemen Windows memanggil semua penyedia yang bertanggung jawab atas kelas tempat subkelas berasal. Semua penyedia ini harus berhasil agar permintaan PutInstance asli berhasil. Penyedia yang mendukung kelas paling atas 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. Oleh karena itu, jika aplikasi ingin mengubah nilai properti yang diwariskan, aplikasi harus memanggil PutInstance pada instans lengkap kelas anak daripada instans yang sesuai dari kelas induk.

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

Memanggil PutInstance pada instans kelas abstrak tidak diizinkan.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header wbemcli.h (termasuk Wbemidl.h)
Pustaka Wbemuuid.lib
DLL Fastprox.dll; Esscli.dll; FrameDyn.dll; FrameDynOS.dll; Ntevt.dll; Stdprov.dll; Viewprov.dll; Wbemcomn.dll; Wbemcore.dll; Wbemess.dll; Wbemsvc.dll; Wmipicmp.dll; Wmidcprv.dll; Wmipjobj.dll; Wmiprvsd.dll

Lihat juga

Membuat Instans

IWbemCallResult

IWbemServices

IWbemServices::P utInstanceAsync

Mengambil Kode Kesalahan