Bagikan melalui


Mendaftarkan Penyedia Kelas

Untuk membuat penyedia kelas WMI, Anda harus mendaftarkan instance __Win32Provider yang mewakili penyedia Anda dengan menggunakan instance __ClassProviderRegistration. Sebagai objek COM, penyedia Anda harus mendaftar dengan sistem operasi dan WMI. Prosedur berikut mengasumsikan bahwa Anda telah menerapkan proses pendaftaran seperti yang dijelaskan dalam Mendaftarkan Penyedia. Jika penyedia Anda menyimpan sebagian besar data di repositori WMI dan data tersebut hanya diperbarui pada inisialisasi WMI, daftarkan kelas Anda sebagai penyedia kelas pendorongan. Jika data yang sering Anda berikan berubah dan diambil secara dinamis oleh kode Anda pada setiap permintaan dari WMI, daftarkan penyedia Anda sebagai penyedia kelas pull.

Prosedur berikut menjelaskan cara mendaftarkan penyedia kelas push.

Untuk mendaftarkan penyedia kategori push

Prosedur berikut menjelaskan cara mendaftarkan penyedia kelas pull.

Untuk mendaftarkan penyedia kelas tarik

  1. Buat instans kelas __Win32Provider yang menjelaskan penyedia.

  2. Buat instans kelas __ClassProviderRegistration yang menjelaskan kumpulan fitur penyedia.

    Dalam instans __ClassProviderRegistration:

    1. Atur properti InteractionType untuk menunjukkan apakah penyedia adalah penyedia push atau pull.

    2. Tandai kelas dengan Dinamis dan atribut Penyedia.

      penentu dinamis memberi sinyal bahwa WMI harus menggunakan penyedia untuk mengambil instans kelas. Kualifikasi penyedia menentukan nama penyedia yang harus digunakan WMI.

    3. Tentukan properti ResultSetQueries, ReferencedSetQueries, dan UnsupportedQueries.

      Properti kueri ini menjelaskan informasi terperinci tentang kelas yang didukung.

Selain menjelaskan berbagai metode kelas yang didukung, kelas __ClassProviderRegistration juga memiliki tiga properti yang menggambarkan serangkaian kueri. Saat digunakan bersama-sama, ketiga properti ini menjelaskan seluruh rentang kelas yang disediakan oleh penyedia kelas. Setiap properti kueri berisi pernyataan WQL SELECT, yang disebut "kueri skema", untuk menentukan jenis kelas yang didukung. Kueri skema menentukan nama kelas khusus yang disebut meta_class. Tabel berikut ini mencantumkan properti kueri.

Harta benda Deskripsi
ResultSetQueries Berisi informasi tentang tataan hasil yang disediakan penyedia. WMI menggunakan informasi untuk menentukan apakah akan memanggil penyedia untuk memenuhi kueri dari aplikasi. Properti ini menjelaskan seluruh kumpulan kelas yang dapat disediakan oleh penyedia atau kumpulan lebih besar dari kelas yang tersedia, tetapi tidak pernah menjadi bagian dari kumpulan yang lebih kecil. WMI mengharuskan penyedia menentukan setidaknya satu kueri dalam properti ini.
Contoh berikut menunjukkan cara mengatur ResultSetQueries saat penyedia menyediakan kelas asosiasi yang mereferensikan kelas Win32_LogicalDisk.
SELECT * FROM meta_class WHERE __Class = "Win32_LogicalDisk"
Contoh berikut menunjukkan cara menentukan kueri umum saat penyedia menyediakan kelas yang mereferensikan kelas lain yang tidak diketahui.
SELECT * FROM meta_class
Contoh berikut menunjukkan cara mengatur ResultSetQueries saat penyedia hanya menyediakan subkelas, tetapi bukan kelas induk dari kelas tertentu.
SELECT * FROM meta_class WHERE __Dynasty = "MyClass"
Contoh berikut menunjukkan cara menggunakan properti __this khusus dan mengatur ResultSetQueries saat penyedia menyediakan semua kelas dan subkelas.
SELECT * FROM meta_class WHERE __this ISA "MyClass"
ReferencedSetQueries Menentukan apakah akan mengabaikan penyedia dalam skema kueri yang meminta asosiasi dan referensi. Penyedia yang dapat menyediakan kelas asosiasi harus menyertakan setidaknya satu kueri dalam properti ReferencedSetQueries.
UnsupportedQueries Berisi informasi tentang sekumpulan hasil yang tidak disediakan oleh penyedia kelas. WMI menggunakan properti ini untuk mengurangi dari kumpulan kelas yang disiratkan oleh ResultSetQueries. Misalnya, penyedia kelas dapat menentukan dalam ResultSetQueries dukungan untuk semua kelas yang berasal dari MyClass dan menentukan dalam UnsupportedQueries kurangnya dukungan untuk satu kelas turunan tertentu.
Semakin banyak informasi yang dapat dicatat oleh penyedia tentang kemampuan pemrosesan kuerinya, semakin cepat ia beroperasi. Memasukkan satu atau beberapa kueri di properti UnsupportedQueries adalah salah satu cara untuk menjadi spesifik dan sangat penting ketika penyedia bergantung pada kelas yang tidak disediakannya. Saat permintaan dibuat untuk kelas yang tercantum dalam kueri di properti UnsupportedQueries, WMI dapat menyediakan kelas itu sendiri atau memanggil penyedia alternatif untuk menyediakannya.

Karena WMI tidak mendukung klausa OR, Anda harus membuat kueri terpisah untuk setiap kelas.

Kueri berikut ditentukan dalam ResultSetQueries saat penyedia kelas memasok MyClass1, MyClass2, dan MyClass3.

SELECT * FROM meta_class WHERE __Class = "MyClass1"
SELECT * FROM meta_class WHERE __Class = "MyClass2"
SELECT * FROM meta_class WHERE __Class = "MyClass3"

Hanya administrator yang dapat mendaftar atau menghapus penyedia dengan membuat instans __Win32Provider dan __ClassProviderRegistration.