Metode IWbemObjectSink::SetStatus (wbemcli.h)
Metode IWbemObjectSink::SetStatus dipanggil oleh sumber untuk menunjukkan akhir urutan pemberitahuan, atau untuk mengirim kode status lain ke sink. Metode IWbemObjectSink::Indicate mungkin atau mungkin belum dipanggil sebelum panggilan ke SetStatus.
Biasanya, klien mengimplementasikan antarmuka IWbemObjectSink , dan menjalankan metode IWbemServices yang mengembalikan hasilnya menggunakan antarmuka IWbemObjectSink . Selama operasi ini, panggilan WMI Menunjukkan sebanyak yang diperlukan, diikuti dengan panggilan akhir ke SetStatus, dan dalam banyak kasus, Rilis.
Sintaks
HRESULT SetStatus(
[in] long lFlags,
[in] HRESULT hResult,
[in] BSTR strParam,
[in] IWbemClassObject *pObjParam
);
Parameter
[in] lFlags
Bitmask informasi status. Status operasi dapat diperoleh dengan memeriksa parameter hResult .
WBEM_STATUS_COMPLETE
Operasi telah selesai.
WBEM_STATUS_PROGRESS
Operasi masih berlangsung.
WBEM_STATUS_REQUIREMENTS
Digunakan dalam mengaktifkan pasca-pemfilteran.
[in] hResult
Parameter ini diatur ke HRESULT dari operasi atau pemberitahuan asinkron. Ini adalah kode kesalahan, jika terjadi kesalahan, atau jumlah kemajuan yang telah dilakukan pada panggilan asinkron.
[in] strParam
Menerima penunjuk ke BSTR baca-saja, jika operasi asinkron asli mengembalikan string. Misalnya, saat menggunakan PutInstanceAsync, SetStatus dipanggil dengan parameter ini diatur ke jalur objek instans yang baru dibuat.
[in] pObjParam
Dalam kasus di mana kesalahan kompleks atau objek status dikembalikan, ini berisi penunjuk ke objek kesalahan. Jika objek diperlukan setelah SetStatus kembali, objek yang dipanggil harus menggunakan metode AddRef pada penunjuk sebelum objek yang dipanggil kembali.
Nilai kembali
Metode ini mengembalikan HRESULT yang menunjukkan status panggilan metode. Daftar berikut mencantumkan nilai yang terkandung dalam HRESULT.
Keterangan
Saat menerapkan sink langganan peristiwa (IWbemObjectSink atau IWbemEventSink), jangan panggil WMI dari dalam metode SetStatus pada objek sink. Misalnya, memanggil IWbemServices::CancelAsyncCall dari dalam implementasi SetStatus dapat mengganggu status WMI. Untuk membatalkan langganan acara, atur bendera dan panggil IWbemServices::CancelAsyncCall dari utas atau objek lain. Untuk implementasi yang tidak terkait dengan sink peristiwa, seperti pengambilan objek, enum, dan kueri, Anda dapat memanggil kembali ke WMI.
Implementasi sink harus memproses pemberitahuan peristiwa dalam 100 MSEC karena utas WMI yang mengirimkan pemberitahuan peristiwa tidak dapat melakukan pekerjaan lain sampai objek sink selesai diproses. Jika pemberitahuan memerlukan pemrosesan dalam jumlah besar, sink dapat menggunakan antrean internal untuk utas lain untuk menangani pemrosesan. Untuk implementasi yang tidak terkait dengan sink peristiwa, seperti pengambilan objek, enum, dan kueri, Anda dapat memanggil kembali ke WMI.
Untuk menerima pembaruan status perantara melalui implementasi SetStatus klien, Anda harus menentukan WBEM_FLAG_SENT_STATUS dalam panggilan Anda ke metode penyedia/layanan. Status yang tepat dapat ditentukan dengan memeriksa nilai HIWORD dan LOWORD hResult secara terpisah. Nilai LOWORD (hResult) berisi jumlah kemajuan yang telah dibuat sejauh ini dan nilai HIWORD (hResult) berisi total.
Jika Anda tidak menentukan WBEM_FLAG_SEND_STATUS saat memanggil penyedia atau metode layanan, Anda dijamin menerima satu dan hanya satu panggilan ke SetStatus.
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 |