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)

Lihat juga

COM API untuk WMI

Membuat Penyedia WMI

Memanipulasi Informasi Kelas dan Instans

Menyediakan Data ke WMI dengan Menulis Penyedia