Metode IWbemServices::ExecNotificationQueryAsync (wbemcli.h)
Metode IWbemServices::ExecNotificationQueryAsync melakukan tugas yang sama dengan IWbemServices::ExecNotificationQuery kecuali bahwa peristiwa diberikan ke handler respons yang ditentukan hingga CancelAsyncCall dipanggil untuk menghentikan pemberitahuan peristiwa.
Sintaks
HRESULT ExecNotificationQueryAsync(
[in] const BSTR strQueryLanguage,
[in] const BSTR strQuery,
[in] long lFlags,
[in] IWbemContext *pCtx,
[in] IWbemObjectSink *pResponseHandler
);
Parameter
[in] strQueryLanguage
BSTR valid yang berisi salah satu bahasa kueri yang didukung oleh Manajemen Windows. Ini harus "WQL".
[in] strQuery
BSTR valid yang berisi teks kueri terkait peristiwa. Ini tidak boleh NULL. Untuk informasi selengkapnya tentang membangun string kueri WMI, lihat Mengkueri dengan WQL dan referensi WQL .
[in] lFlags
Parameter ini bisa menjadi nilai berikut.
WBEM_FLAG_SEND_STATUS
Bendera ini mendaftar dengan Manajemen Windows permintaan untuk menerima laporan status perantara melalui implementasi klien IWbemObjectSink::SetStatus. Implementasi penyedia harus mendukung pelaporan status menengah agar bendera ini mengubah perilaku.
[in] pCtx
Biasanya NULL. Jika tidak, ini adalah penunjuk ke objek IWbemContext yang dapat digunakan oleh penyedia yang mengembalikan peristiwa yang diminta. Nilai dalam objek konteks harus ditentukan dalam dokumentasi untuk penyedia yang dimaksud. Untuk informasi selengkapnya tentang parameter ini, lihat Melakukan Panggilan ke WMI.
[in] pResponseHandler
Arahkan ke implementasi penelepon IWbemObjectSink. Handler ini menerima objek dalam tataan hasil kueri saat tersedia. Untuk berhenti menerima peristiwa, pemanggil harus memanggil IWbemServices::CancelAsyncCall menggunakan nilai pointer yang sama untuk pResponseHandler. Saat peristiwa tersedia, IWbemObjectSink::Menunjukkan implementasi yang disediakan dipanggil untuk mengirimkan objek peristiwa. Metode IWbemObjectSink::SetStatus tidak dipanggil kapan saja, karena tidak ada kondisi akhir atau penghentian. Panggilan dijalankan tanpa batas waktu hingga dibatalkan. Jika ada kode kesalahan yang dikembalikan, maka penunjuk IWbemObjectSink yang disediakan tidak digunakan. Jika WBEM_S_NO_ERROR dikembalikan, implementasi IWbemObjectSink pengguna dipanggil untuk menunjukkan hasil operasi. Manajemen Windows hanya memanggil AddRef pada pointer jika WBEM_S_NO_ERROR kembali. Dalam kasus di mana kode kesalahan kembali, jumlah referensi sama dengan pada entri. Untuk penjelasan terperinci tentang parameter ini, lihat Memanggil Metode.
Mengembalikan nilai
Metode ini mengembalikan HRESULT yang menunjukkan status panggilan metode. Daftar berikut mencantumkan nilai yang terkandung dalam HRESULT.
Jika gagal, Anda dapat memperoleh informasi apa pun yang tersedia dari fungsi COM GetErrorInfo.
Kode kesalahan lainnya dikembalikan ke sink objek yang ditentukan oleh parameter pResponseHandler .
Kode kesalahan khusus COM juga dapat dikembalikan jika masalah jaringan menyebabkan Anda kehilangan koneksi jarak jauh ke Manajemen Windows.
Keterangan
Metode IWbemObjectSink::SetStatus dipanggil untuk menunjukkan akhir kumpulan hasil. Ini juga dapat dipanggil tanpa intervensi panggilan ke IWbemObjectSink::Menunjukkan apakah kondisi kesalahan terjadi.
Karena panggilan balik mungkin tidak dikembalikan pada tingkat autentikasi yang sama dengan yang dibutuhkan klien, disarankan agar Anda menggunakan semisinkron alih-alih komunikasi asinkron. Jika Anda memerlukan komunikasi asinkron, lihat Memanggil Metode.
Untuk informasi selengkapnya tentang menggunakan metode secara semisinkron, lihat IWbemServices::ExecNotificationQuery dan Memanggil Metode.
Ada batasan jumlah kata kunci AND dan OR yang dapat digunakan dalam kueri WQL. Sejumlah besar kata kunci WQL yang digunakan dalam kueri kompleks dapat menyebabkan WMI mengembalikan kode kesalahan WBEM_E_QUOTA_VIOLATION sebagai nilai HRESULT . Batas kata kunci WQL tergantung pada seberapa kompleks kuerinya.
Persyaratan
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 |