Antarmuka IWbemServices (wbemcli.h)
Antarmuka IWbemServices digunakan oleh klien dan penyedia untuk mengakses layanan WMI. Antarmuka diimplementasikan oleh penyedia WMI dan WMI, dan merupakan antarmuka WMI utama.
IWbemClassObject *pObj = NULL;
// The pWbemSvc pointer is of type IWbemServices*
// BSTR is not compatible with wchar_t, need to allocate.
BSTR path = SysAllocString(L"path");
pWbemSvc->GetObject(path, 0, 0, &pObj, 0);
SysFreeString(path);
Warisan
Antarmuka IWbemServices mewarisi dari antarmuka IUnknown . IWbemServices juga memiliki jenis anggota ini:
Metode
Antarmuka IWbemServices memiliki metode ini.
IWbemServices::CancelAsyncCall Metode IWbemServices::CancelAsyncCall membatalkan panggilan asinkron yang saat ini tertunda berdasarkan penunjuk IWbemObjectSink, yang awalnya diteruskan ke metode asinkron. |
IWbemServices::CreateClassEnum Metode IWbemServices::CreateClassEnum mengembalikan enumerator untuk semua kelas yang memenuhi kriteria pemilihan. |
IWbemServices::CreateClassEnumAsync Metode IWbemServices::CreateClassEnumAsync mengembalikan enumerasi semua kelas yang didukung penyedia kelas. |
IWbemServices::CreateInstanceEnum Metode IWbemServices::CreateInstanceEnum membuat enumerator yang mengembalikan instans kelas tertentu sesuai dengan kriteria pilihan yang ditentukan pengguna. |
IWbemServices::CreateInstanceEnumAsync Metode IWbemServices::CreateInstanceEnumAsync membuat enumerator yang secara asinkron mengembalikan instans kelas tertentu sesuai dengan kriteria pilihan yang ditentukan pengguna. |
IWbemServices::D eleteClass Metode IWbemServices::D eleteClass menghapus kelas yang ditentukan dari namespace saat ini. |
IWbemServices::D eleteClassAsync Metode IWbemServices::D eleteClassAsync menghapus kelas yang ditentukan dari namespace saat ini. |
IWbemServices::D eleteInstance Metode IWbemServices::D eleteInstance menghapus instans kelas yang ada di namespace saat ini. |
IWbemServices::D eleteInstanceAsync Metode IWbemServices::D eleteInstanceAsync secara asinkron menghapus instans kelas yang ada di namespace saat ini. Konfirmasi atau kegagalan operasi dilaporkan melalui antarmuka IWbemObjectSink yang diterapkan oleh pemanggil. |
IWbemServices::ExecMethod Menjalankan metode yang diekspor oleh objek CIM. |
IWbemServices::ExecMethodAsync Secara asinkron menjalankan metode yang diekspor oleh objek CIM. |
IWbemServices::ExecNotificationQuery Metode IWbemServices::ExecNotificationQuery menjalankan kueri untuk menerima peristiwa. Panggilan segera kembali, dan pengguna dapat melakukan polling enumerator yang dikembalikan untuk peristiwa saat mereka tiba. Melepaskan enumerator yang dikembalikan membatalkan kueri. |
IWbemServices::ExecNotificationQueryAsync 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. |
IWbemServices::ExecQuery Metode IWbemServices::ExecQuery menjalankan kueri untuk mengambil objek. |
IWbemServices::ExecQueryAsync Metode IWbemServices::ExecQueryAsync menjalankan kueri untuk mengambil objek secara asinkron. |
IWbemServices::GetObject Metode IWbemServices::GetObject mengambil kelas atau instans. Metode ini hanya mengambil objek dari namespace yang terkait dengan objek IWbemServices saat ini. |
IWbemServices::GetObjectAsync Metode IWbemServices::GetObjectAsync mengambil objek, baik definisi kelas atau instans, berdasarkan jalurnya. |
IWbemServices::OpenNamespace Metode IWbemServices::OpenNamespace menyediakan pemanggil dengan penunjuk IWbemServices baru yang memiliki namespace anak yang ditentukan sebagai konteks operasinya. |
IWbemServices::P utClass Metode IWbemServices::P utClass membuat kelas baru atau memperbarui yang sudah ada. Kelas yang ditentukan oleh parameter pObject harus diinisialisasi dengan benar dengan semua nilai properti yang diperlukan. |
IWbemServices::P utClassAsync Metode IWbemServices::P utClassAsync membuat kelas baru, atau memperbarui yang sudah ada. |
IWbemServices::P utInstance Metode IWbemServices::P utInstance membuat atau memperbarui instans kelas yang ada. Instans ditulis ke repositori WMI. |
IWbemServices::P utInstanceAsync Metode IWbemServices::P utInstanceAsync secara asinkron membuat atau memperbarui instans kelas yang ada. Konfirmasi pembaruan atau pelaporan kesalahan disediakan melalui antarmuka IWbemObjectSink yang diterapkan oleh pemanggil. |
IWbemServices::QueryObjectSink Metode IWbemServices::QueryObjectSink memungkinkan pemanggil untuk mendapatkan penangan pemberitahuan yang diekspor oleh Manajemen Windows. |
Keterangan
Penyedia yang mengimplementasikan antarmuka IWbemServices harus mengikuti semantik yang didokumentasikan dari setiap metode yang mereka terapkan; dan penyedia harus mendukung kode pengembalian kesalahan yang ditentukan. WMI mengimplementasikan semua metode, dan biasanya, setiap penyedia mengimplementasikan subset kecil dari fungsionalitas yang tersedia pada antarmuka. Penyedia harus mengembalikan WBEM_E_PROVIDER_NOT_CAPABLE untuk metode apa pun yang tidak mereka terapkan.
Semua penunjuk antarmuka keluar dari metode IWbemServices apa pun harus diinisialisasi ke NULL sebelum memanggil metode antarmuka. Misalnya, panggilan ke metode IWbemServices::GetObject mengembalikan penunjuk antarmuka IWbemClassObject yang harus diinisialisasi sebelumnya ke NULL sebelum panggilan metode IWbemServices::GetObject .
Contoh
Untuk beberapa contoh C++ yang menggunakan IWbemServices, lihat bagian Contoh Aplikasi C++ WMI .
Contoh kode berikut menunjukkan bagaimana penyedia bisa mendapatkan penunjuk IWbemServices . Kode memerlukan pernyataan dan referensi #include berikut untuk dikompilasi.
#include <iostream>
using namespace std;
#include <wbemidl.h>
#pragma comment(lib, "wbemuuid.lib")
IWbemLocator *pIWbemLocator = NULL;
HRESULT hRes = CoCreateInstance (
CLSID_WbemAdministrativeLocator,
NULL ,
CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER ,
IID_IUnknown ,
( void ** ) &pIWbemLocator
) ;
IWbemServices *pWbemServices = NULL;
if (SUCCEEDED(hRes))
{
BSTR namespace = SysAllocString(L"root\\CIMV2");
hRes = pIWbemLocator->ConnectServer(
namespace, // Namespace
NULL, // Userid
NULL, // PW
NULL, // Locale
0, // flags
NULL, // Authority
NULL, // Context
&pWbemServices
);
SysFreeString(namespace);
pIWbemLocator->Release(); // Free memory resources.
// Use pWbemServices
}
// Clean up
pWbemServices->Release();
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) |