Metode SWbemServicesEx.PutAsync
Metode PutAsync dari objek SWbemServicesEx menyimpan objek secara asinkron ke namespace. Jika berhasil, metode ini mengirimkan peristiwa OnCompleted ke objek SWbemSink yang ditentukan sebagai parameter input.
Metode ini dipanggil dalam mode asinkron. Untuk informasi selengkapnya, lihat Memanggil Metode.
Untuk penjelasan tentang sintaks ini, lihat Konvensi Dokumen untuk Scripting API.
Sintaks
SWbemServicesEx.PutAsync( _
ByVal objWbemSink, _
ByVal ojbWbemObject, _
[ ByVal iFlags ], _
[ ByVal objWbemNamedValueSet ], _
[ ByVal objWbemAsyncContext ] _
)
Parameter
-
objWbemSink
-
Wajib diisi. Sink objek yang menerima objek secara asinkron. Buat objek SWbemSink untuk menerima objek.
-
ojbWbemObject
-
Wajib diisi. Objek baru yang akan dimasukkan ke dalam namespace. Ini mungkin objek yang baru dibuat atau objek yang dimodifikasi.
-
iFlags [opsional]
-
Parameter ini menentukan apakah panggilan membuat atau memperbarui objek dan apakah panggilan segera kembali. Parameter ini dapat menerima nilai berikut.
-
wbemChangeFlagUpdateCompatible (0 (0x0))
-
Memungkinkan kelas diperbarui ketika tidak ada kelas turunan dan tidak ada instans untuk kelas . Ini juga memungkinkan pembaruan dalam semua kasus ketika perubahan hanya untuk kualifikasi yang tidak penting, misalnya, pengualifikasi Deskripsi . Ini adalah perilaku default untuk panggilan ini, dan digunakan untuk kompatibilitas dengan versi WMI sebelumnya. Jika kelas memiliki instans, maka pembaruan akan gagal.
-
wbemChangeFlagUpdateSafeMode (32 (0x20))
-
Memungkinkan pembaruan kelas bahkan ketika ada kelas anak dan perubahan tidak menyebabkan konflik dengan kelas anak. Gunakan bendera ini saat menambahkan properti baru ke kelas dasar yang tidak disebutkan sebelumnya di salah satu kelas anak. Jika kelas memiliki instans, maka pembaruan akan gagal.
-
wbemChangeFlagUpdateForceMode (64 (0x40))
-
Bendera ini memaksa pembaruan kelas saat kelas anak yang berkonflik ada. Misalnya, bendera ini memaksa pembaruan ketika kualifikasi kelas didefinisikan dalam kelas anak, dan kelas dasar mencoba menambahkan kualifikasi yang sama yang bertentangan dengan yang sudah ada. Dalam mode paksa, konflik ini diselesaikan dengan menghapus kualifikasi yang bertentangan di kelas anak. Jika kelas memiliki instans, maka pembaruan akan gagal.
Penggunaan mode paksa untuk memperbarui kelas statis menyebabkan penghapusan semua instans kelas tersebut. Pembaruan paksa pada kelas penyedia tidak menghapus instans kelas .
-
wbemChangeFlagCreateOrUpdate (0 (0x0))
-
Menyebabkan kelas atau instans dibuat jika belum ada, atau ditimpa jika sudah ada.
-
wbemChangeFlagCreateOnly (2 (0x2))
-
Digunakan hanya untuk pembuatan. Panggilan gagal jika kelas atau instans sudah ada.
-
wbemChangeFlagUpdateOnly (1 (0x1))
-
Menyebabkan panggilan ini diperbarui. Kelas atau instans harus ada agar panggilan berhasil.
-
wbemFlagReturnImmediately (16 (0x10))
-
Menyebabkan panggilan untuk segera kembali.
-
wbemFlagReturnWhenComplete (0 (0x0))
-
Menyebabkan panggilan ini diblokir hingga kueri selesai. Bendera ini memanggil metode dalam mode sinkron.
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
Menyebabkan WMI menulis data amandemen kelas dan definisi kelas dasar. Untuk informasi selengkapnya, lihat Melokalisasi Informasi Kelas WMI.
objWbemNamedValueSet [opsional]
Biasanya, ini tidak ditentukan. Jika tidak, ini adalah objek SWbemNamedValueSet yang elemennya mewakili informasi konteks yang dapat digunakan oleh penyedia yang melayani permintaan. Penyedia yang mendukung atau memerlukan informasi tersebut harus mendokumentasikan nama nilai yang dikenali, jenis data nilai, nilai yang diizinkan, dan semantik.
objWbemAsyncContext [opsional]
Objek SWbemNamedValueSet yang kembali ke sink objek untuk mengidentifikasi sumber panggilan asinkron asli. Gunakan parameter ini untuk melakukan beberapa panggilan asinkron menggunakan sink objek yang sama. Untuk menggunakan parameter ini, buat objek SWbemNamedValueSet dan gunakan metode SWbemNamedValueSet.Add untuk menambahkan nilai yang mengidentifikasi panggilan asinkron yang Anda lakukan. Objek SWbemNamedValueSet ini dikembalikan ke sink objek dan sumber panggilan dapat diekstraksi menggunakan metode SWbemNamedValueSet.Item . Untuk informasi selengkapnya, lihat Memanggil Metode.
Menampilkan nilai
Metode ini tidak mengembalikan nilai. Jika panggilan berhasil, peristiwa OnObjectPut dari sink objek yang disediakan menerima objek SWbemObjectPath , yang berisi jalur objek instans atau kelas yang berhasil diterapkan ke WMI.
Kode kesalahan
Setelah menyelesaikan metode PutAsync , objek Err mungkin berisi salah satu kode kesalahan dalam daftar berikut.
-
wbemErrAccessDenied - 2147749891 (0x80041003)
-
Pengguna saat ini tidak memiliki izin untuk memperbarui instans kelas yang ditentukan.
-
wbemErrAlreadyExists - 2147749913 (0x80041019)
-
Bendera wbemChangeFlagCreateOnly ditentukan, tetapi instans sudah ada.
-
wbemErrFailed - 2147749889 (0x80041001)
-
Kesalahan yang tidak ditentukan.
-
wbemErrIllegalNull - 2147749898 (0x8004100A)
-
Nilai Null ditentukan untuk properti yang tidak boleh Null. Contoh properti tersebut adalah properti yang ditandai oleh kualifikasi Kunci, Terindeks, atau Not_Null .
-
wbemErrInvalidObject - 2147749908 (0x80041014)
-
Instans yang ditentukan tidak valid.
-
wbemErrInvalidParameter - 2147749896 (0x80041008)
-
Parameter yang ditentukan tidak valid.
-
wbemErrNotFound - 2147749890 (0x80041002)
-
Bendera wbemChangeFlagUpdateOnly ditentukan, tetapi instans atau kelas tidak ada.
-
wbemErrIncompleteClass - 2147749920 (0x80041020)
-
Properti yang diperlukan untuk kelas belum diatur semua.
-
wbemErrOutOfMemory - 2147749894 (0x80041006)
-
Tidak cukup memori untuk menyelesaikan operasi.
Keterangan
Panggilan ini segera kembali, dan hasil dan status dikembalikan ke pemanggil melalui peristiwa yang dikirimkan ke sink yang ditentukan dalam objWbemSink. Untuk menangani setiap objek saat tiba, buat objWbemSink. Subroutine peristiwa OnObjectReady . Setiap pemrosesan yang dilakukan setelah semua objek tiba dilakukan dalam subroutine untuk objWbemSink. Peristiwa OnCompleted .
Panggilan balik asinkron memungkinkan pengguna yang tidak diautentikasi untuk menyediakan data ke sink. Ini menimbulkan risiko keamanan terhadap skrip dan aplikasi Anda. Untuk menghilangkan risiko, lihat Mengatur Keamanan pada Panggilan Asinkron.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista |
Server minimum yang didukung |
Windows Server 2008 |
Header |
|
Pustaka jenis |
|
DLL |
|
CLSID |
CLSID_ISWbemServicesEx |
IID |
IID_ISWbemServicesEx |