Bagikan melalui


Fungsi ExecNotificationQueryWmi

Menjalankan kueri untuk menerima peristiwa. Panggilan segera kembali, dan pemanggil dapat menyurvei enumerator yang dikembalikan untuk peristiwa saat mereka tiba. Melepaskan enumerator yang dikembalikan membatalkan kueri.

Catatan

API ini hanya untuk penggunaan internal. API ini tidak dimaksudkan untuk digunakan dari kode pengembang.

Sintaks

HRESULT ExecNotificationQueryWmi (
   [in] BSTR                    strQueryLanguage,
   [in] BSTR                    strQuery,
   [in] long                    lFlags,
   [in] IWbemContext*           pCtx,
   [out] IEnumWbemClassObject** ppEnum,
   [in] DWORD                   authLevel,
   [in] DWORD                   impLevel,
   [in] IWbemServices*          pCurrentNamespace,
   [in] BSTR                    strUser,
   [in] BSTR                    strPassword,
   [in] BSTR                    strAuthority
);

Parameter

strQueryLanguage
[in] String dengan bahasa kueri valid yang didukung oleh Windows Management. Ini haruslah "WQL", akronim untuk Bahasa Pemrogram Kueri WMI.

strQuery
[in] Teks kueri. Parameter ini tidak boleh null.

lFlags
[in] Kombinasi dari dua bendera berikut yang memengaruhi perilaku fungsi ini. Nilai-nilai ini didefinisikan dalam file header WbemCli.h, atau Anda dapat menentukannya sebagai konstanta dalam kode Anda.

Terus-menerus Nilai Deskripsi
WBEM_FLAG_RETURN_IMMEDIATELY 0x10 Bendera menyebabkan panggilan semi-sinkron. Jika bendera ini tidak diatur, panggilan gagal. Ini karena peristiwa diterima terus menerus, yang berarti pengguna harus menyurvei enumerator yang dikembalikan. Memblokir panggilan ini tanpa batas waktu membuatnya tidak mungkin.
WBEM_FLAG_FORWARD_ONLY 0x20 Fungsi mengembalikan enumerator hanya maju. Biasanya, enumerator hanya maju lebih cepat dan menggunakan lebih sedikit memori daripada enumerator konvensional, tetapi mereka tidak mengizinkan panggilan ke Klon.

pCtx
[in] Biasanya, nilai ini adalah null. Jika tidak, ini adalah penunjuk ke instans IWbemContext yang dapat digunakan oleh penyedia yang menyediakan peristiwa yang diminta.

ppEnum
[out] Jika tidak ada kesalahan yang terjadi, menerima penunjuk ke enumerator yang memungkinkan pemanggil untuk mengambil instans dalam kumpulan hasil kueri. Lihat bagian Keterangan untuk informasi lebih lanjut.

authLevel
[in] Tingkat otorisasi.

impLevel
[in] Tingkat peniruan.

pCurrentNamespace
[in] Penunjuk ke objek IWbemServices yang mewakili namespace layanan saat ini.

strUser
[in] Nama pengguna. Lihat fungsi ConnectServerWmi untuk informasi selengkapnya.

strPassword
[in] Kata sandi. Lihat fungsi ConnectServerWmi untuk informasi selengkapnya.

strAuthority
[in] Nama domain pengguna. Lihat fungsi ConnectServerWmi untuk informasi selengkapnya.

Mengembalikan nilai

Nilai berikut yang dikembalikan oleh fungsi ini ditentukan dalam file header WbemCli.h, atau Anda dapat menentukannya sebagai konstanta dalam kode Anda:

Terus-menerus Nilai Deskripsi
WBEM_E_ACCESS_DENIED 0x80041003 Pengguna tidak memiliki izin untuk melihat satu atau beberapa kelas yang dapat dikembalikan oleh fungsi.
WBEM_E_FAILED 0x80041001 Terjadi kesalahan yang tidak tentu.
WBEM_E_INVALID_PARAMETER 0x80041008 Parameter tidak valid.
WBEM_E_INVALID_CLASS 0x80041010 Kueri menentukan kelas yang tidak ada.
WBEMESS_E_REGISTRATION_TOO_PRECISE 0x80042002 Terlalu banyak presisi dalam pengiriman peristiwa telah diminta. Toleransi polling yang lebih besar harus ditentukan.
WBEMESS_E_REGISTRATION_TOO_BROAD 0x80042001 Kueri meminta lebih banyak informasi daripada yang dapat diberikan oleh Windows Management. HRESULT ini dikembalikan saat kueri peristiwa menghasilkan permintaan untuk melakukan polling semua objek dalam namespace layanan.
WBEM_E_INVALID_QUERY 0x80041017 Kueri memiliki kesalahan sintaks.
WBEM_E_INVALID_QUERY_TYPE 0x80041018 Bahasa pemrogram kueri yang diminta tidak didukung.
WBEM_E_QUOTA_VIOLATION 0x8004106c Kueri terlalu rumit.
WBEM_E_OUT_OF_MEMORY 0x80041006 Tidak tersedia cukup memori untuk menyelesaikan operasi.
WBEM_E_SHUTTING_DOWN 0x80041033 WMI mungkin dihentikan dan dihidupkan ulang. Panggil ConnectServerWmi lagi.
WBEM_E_TRANSPORT_FAILURE 0x80041015 Tautan panggilan prosedur jarak jauh (RPC) antara proses saat ini dan WMI telah gagal.
WBEM_E_UNPARSABLE_QUERY 0x80041058 Kueri tidak dapat diurai.
WBEM_S_NO_ERROR 0 Panggilan fungsi berhasil.

Keterangan

Fungsi ini membungkus panggilan ke metode IWbemServices::ExecNotificationQuery.

Setelah fungsi kembali, pemanggil secara berkala meneruskan objek ppEnum yang dikembalikan ke fungsi Berikutnya untuk melihat apakah ada peristiwa yang tersedia.

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 (atau 0x8004106c) sebagai nilai HRESULT. Batas kata kunci WQL tergantung pada seberapa kompleks kuerinya.

Jika panggilan fungsi gagal, Anda dapat memperoleh informasi kesalahan tambahan dengan memanggil fungsi GetErrorInfo.

Persyaratan

Platform: Lihat Persyaratan Sistem.

Header: WMINet_Utils.idl

Versi .NET Framework: Tersedia sejak 4.7.2

Lihat juga