Bagikan melalui


Menginisialisasi Penyedia

Salah satu tugas pertama yang harus Anda kodekan untuk penyedia adalah proses inisialisasi, yang mencakup tugas apa pun yang harus dilakukan penyedia Anda yang memungkinkannya mengirim dan menerima informasi dari WMI, mengontrol objek terkelola, dan melakukan tugas lain. Setiap jenis penyedia memiliki serangkaian tugas berbeda yang harus dilakukan dan memiliki serangkaian antarmuka unik yang menyertainya.

Namun, semua penyedia menginisialisasi melalui antarmuka IWbemProviderInit , dan memberi tahu WMI tentang status inisialisasi mereka melalui antarmuka IWbemProviderInitSink .

Prosedur berikut menjelaskan cara menginisialisasi penyedia.

Untuk menginisialisasi penyedia

  1. Terapkan IWbemProviderInit::Initialize untuk penyedia Anda.

    Ketika WMI menentukan bahwa klien memerlukan layanan penyedia, WMI memuat penyedia dengan memanggil metode IWbemProviderInit::Initialize .

  2. Terapkan antarmuka apa pun yang unik untuk jenis penyedia Anda.

  3. Beri tahu WMI bahwa penyedia Anda selesai dengan inisialisasi dengan memanggil IWbemProviderInitSink::SetStatus.

    Semua implementasi IWbemProviderInit::Initialize harus memanggil IWbemProviderInitSink::SetStatus untuk melaporkan status inisialisasi ke WMI. Metode SetStatus memungkinkan WMI untuk menentukan apakah penyedia siap menerima permintaan dan jenis permintaan yang siap diterima penyedia.

Prosedur berikut menjelaskan cara melaporkan inisialisasi yang berhasil.

Untuk melaporkan inisialisasi yang berhasil

  • Atur parameter IStatussetStatus ke WBEM_S_INITIALIZED.

    Dengan mengembalikan WBEM_S_INITIALIZED, penyedia menunjukkan kesiapan untuk menangani permintaan dari aplikasi, WMI, dan penyedia lainnya. Setelah menerima WBEM_S_INITIALIZED, WMI melakukan panggilan ke metode IWbemProviderInit::QueryInterface pada penyedia. Kueri ini mengambil penunjuk ke antarmuka utama penyedia.

Prosedur berikut menjelaskan cara melaporkan kesalahan selama inisialisasi.

Untuk melaporkan kesalahan selama inisialisasi

  • Atur parameter IStatusdari SetStatus ke WBEM_E_FAILED. WMI melihat penyedia yang mengembalikan WBEM_E_FAILED sebagai tidak berfungsi.

    WMI merilis pointer IWbemProviderInit baik setelah WMI memperoleh pointer ke antarmuka utama penyedia atau setelah inisialisasi gagal.

Mengembangkan Penyedia WMI

Mengatur Deskriptor Keamanan Namepace

Mengamankan Penyedia Anda