Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menjalankan kueri untuk mengambil objek.
Catatan
API ini hanya untuk penggunaan internal. API ini tidak dimaksudkan untuk digunakan dari kode pengembang.
Sintaks
HRESULT ExecQueryWmi (
[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 bendera yang memengaruhi perilaku fungsi ini. Nilai berikut ditentukan dalam file header WbemCli.h, atau Anda dapat menentukannya sebagai konstanta dalam kode Anda:
| Terus-menerus | Nilai | Deskripsi |
|---|---|---|
WBEM_FLAG_USE_AMENDED_QUALIFIERS |
0x20000 | Jika diatur, fungsi mengambil kualifikasi yang diubah yang disimpan di namespace layanan lokal dari lokal koneksi saat ini. Jika tidak diatur, fungsi hanya mengambil kualifikasi yang disimpan di namespace layanan langsung. |
WBEM_FLAG_RETURN_IMMEDIATELY |
0x10 | Bendera menyebabkan panggilan semi-sinkron. |
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. |
WBEM_FLAG_BIDIRECTIONAL |
0 | WMI mempertahankan pointer ke objek dalam enumerasi sampai dirilis. |
WBEM_FLAG_ENSURE_LOCATABLE |
0x100 | Memastikan bahwa setiap objek yang dikembalikan memiliki informasi yang cukup di dalamnya sehingga properti sistem, seperti __PATH, __RELPATH, dan __SERVER, bukan null. |
WBEM_FLAG_PROTOTYPE |
2 | Bendera ini digunakan untuk pembuatan prototipe. Ini tidak menjalankan kueri dan sebaliknya mengembalikan objek yang terlihat seperti objek hasil umum. |
WBEM_FLAG_DIRECT_READ |
0x200 | Menyebabkan akses langsung ke penyedia untuk kelas yang ditentukan tanpa memperhatikan kelas induknya atau subkelas apa pun. |
Bendera yang direkomendasikan adalah WBEM_FLAG_RETURN_IMMEDIATELY dan WBEM_FLAG_FORWARD_ONLY untuk performa terbaik.
pCtx
[in] Biasanya, nilai ini adalah null. Jika tidak, ini adalah penunjuk ke instans IWbemContext yang dapat digunakan oleh penyedia yang menyediakan kelas yang diminta.
ppEnum
[out] Jika tidak ada kesalahan yang terjadi, menerima penunjuk ke enumerator yang memungkinkan pemanggil untuk mengambil instans dalam tataan hasil kueri. Kueri dapat memiliki tataan hasil dengan instans nol. Untuk informasi selengkapnya, lihat bagian Keterangan.
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_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_NOT_FOUND |
0x80041002 | Kueri menentukan kelas yang tidak ada. |
WBEM_S_NO_ERROR |
0 | Panggilan fungsi berhasil. |
Keterangan
Fungsi ini membungkus panggilan ke metode IWbemServices::ExecQuery.
Fungsi ini memproses kueri yang ditentukan dalam parameter strQuery dan membuat enumerator yang melaluinya pemanggil dapat mengakses hasil kueri. Enumerator adalah penunjuk ke antarmuka IEnumWbemClassObject; hasil kueri adalah contoh objek kelas yang tersedia melalui antarmuka IWbemClassObject.
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