Metode SWbemServices.ExecQueryAsync
Metode ExecQueryAsync dari objek SWbemServices menjalankan kueri untuk mengambil objek. Panggilan ke metode ini segera kembali, dan hasil dan status dikembalikan ke pemanggil melalui peristiwa yang dikirimkan ke sink yang ditentukan dalam objWbemSink. Untuk menangani setiap objek yang dikembalikan, buat objWbemSink. Subroutine peristiwa OnObjectReady .
Metode ini dipanggil dalam mode asinkron. Untuk informasi selengkapnya, lihat Memanggil Metode.
Untuk penjelasan tentang sintaks ini, lihat Konvensi Dokumen untuk Scripting API.
Sintaks
objWbemObjectSet = .ExecQueryAsync( _
[ ByVal objWbemSink ], _
ByVal strQuery, _
[ ByVal strQueryLanguage ], _
[ ByVal iFlags ], _
[ ByVal objwbemNamedValueSet ], _
[ ByVal objWbemAsyncContext ] _
)
Parameter
-
objWbemSink [opsional]
-
Sink objek yang menjalankan kueri secara asinkron. Buat objek SWbemSink untuk menerima objek.
-
strQuery
-
Wajib diisi. String yang berisi teks kueri. Parameter ini tidak boleh kosong. Untuk informasi selengkapnya tentang membangun string kueri WMI, lihat Mengkueri dengan WQL dan referensi WQL .
-
strQueryLanguage [opsional]
-
String yang berisi bahasa kueri yang akan digunakan. Jika ditentukan, nilainya harus "WQL".
-
iFlags [opsional]
-
Bilangan bulat yang menentukan perilaku kueri. Parameter ini dapat menerima nilai berikut.
-
wbemFlagSendStatus (128 (0x80))
-
Menyebabkan panggilan asinkron mengirim pembaruan status ke penanganan aktivitas OnProgress untuk sink objek.
-
wbemFlagDontSendStatus (0 (0x0))
-
Mencegah panggilan asinkron mengirim pembaruan status ke penanganan aktivitas OnProgress untuk sink objek.
-
wbemQueryFlagPrototype (2 (0x2))
-
Digunakan untuk prototipe. Ini menghentikan kueri terjadi dan sebaliknya, mengembalikan objek yang terlihat seperti objek hasil umum.
-
wbemFlagUseAmendedQualifiers (131072 (0x20000))
-
Menyebabkan WMI mengembalikan data amandemen kelas dengan 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 konteks 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.
Nilai kembali
Metode ini tidak memiliki nilai pengembalian. Jika berhasil, sink menerima peristiwa OnObjectReady per instans. Setelah instans terakhir, sink objek menerima peristiwa OnCompleted .
Kode kesalahan
Setelah penyelesaian metode ExecQueryAsync , objek Err dapat berisi salah satu kode kesalahan dalam daftar berikut.
-
wbemErrAccessDenied - 2147749891 (0x80041003)
-
Pengguna saat ini tidak memiliki izin untuk melihat tataan hasil.
-
wbemErrFailed - 2147749889 (0x80041001)
-
Kesalahan yang tidak ditentukan.
-
wbemErrInvalidParameter - 2147749896 (0x80041008)
-
Parameter tidak valid ditentukan.
-
wbemErrInvalidQuery - 2147749911 (0x80041017)
-
Sintaks kueri tidak valid.
-
wbemErrInvalidQueryType - 2147749912 (0x80041018)
-
Bahasa kueri yang diminta tidak didukung.
-
wbemErrOutOfMemory - 2147749894 (0x80041006)
-
Tidak cukup memori untuk menyelesaikan operasi.
Keterangan
Panggilan ini segera kembali. Objek dan status yang diminta dikembalikan ke pemanggil melalui panggilan balik yang dikirimkan ke sink yang ditentukan dalam objWbemSink. Untuk memproses setiap objek saat kembali, buat objWbemSink. Subroutine peristiwa OnObjectReady . Setelah semua objek dikembalikan, lakukan pemrosesan akhir dalam implementasi objWbemSink Anda. 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
Metode ExecQueryAsync mengembalikan tataan hasil kosong saat tidak ada objek yang cocok dengan kriteria dalam kueri. Metode ini mengembalikan properti kunci apakah properti Kunci diminta atau tidak dalam parameter strQuery .
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
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows Vista |
Server minimum yang didukung |
Windows Server 2008 |
Header |
|
Pustaka jenis |
|
DLL |
|
CLSID |
CLSID_SWbemServices |
IID |
IID_ISWbemServices |