Bagikan melalui


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

Lihat juga

IWbemObjectSink

IWbemObjectSink::Menunjukkan

IWbemObjectSinkEx

IWbemServices::ExecQueryAsync

WBEM_STATUS_TYPE