Menginisialisasi Dukungan WMI di Driver Anda

[Hanya berlaku untuk KMDF]

Untuk mendukung blok data WMI, driver berbasis kerangka kerja:

  • Mendaftarkan nama sumber daya format objek terkelola (MOF) dari penyedia data WMI yang disesuaikan yang tidak ditentukan dalam Wmicore.mof.

  • Membuat satu atau beberapa objek instans WMI untuk mewakili blok data yang dapat dibaca atau ditulisnya.

  • Secara opsional mengimplementasikan satu atau beberapa fungsi panggilan balik peristiwa untuk menyediakan data WMI yang disediakan driver.

  • Daftarkan setiap objek instans WMI untuk membuatnya tersedia untuk klien WMI.

Untuk menginisialisasi dukungan WMI-nya, driver KMDF mengikuti langkah-langkah ini, biasanya dalam panggilan balik EvtDriverDeviceAdd atau EvtDeviceSelfManagedIoInit :

  1. Driver yang menyediakan file MOF untuk mendukung penyedia data WMI yang disesuaikan harus memanggil metode WdfDeviceAssignMofResourceName untuk mendaftarkan nama sumber daya MOF sebelum driver membuat objek penyedia WMI yang mewakili penyedia data.

  2. Menginisialisasi struktur konfigurasi penyedia WMI dan secara opsional membuat objek penyedia WMI (WDFWMIPROVIDER).

  3. Menginisialisasi struktur konfigurasi instans WMI dan membuat objek instans WMI (WDFWMIINSTANCE).

Kerangka kerja membuat penyedia WMI secara default ketika driver KMDF membuat instans WMI pertamanya. Oleh karena itu, jika driver hanya memerlukan satu penyedia WMI, tidak diperlukan untuk memanggil metode pembuatan penyedia (WdfWmiProviderCreate). Namun, driver harus mengisi struktur konfigurasi penyedia karena struktur ini memasok informasi tentang penyedia yang digunakan kerangka kerja saat membuat instans.

Jika driver Anda membuat satu instans dari setiap blok data WMI yang didukungnya, driver memanggil WdfWmiInstanceCreate, melewati struktur WDF_WMI_PROVIDER_CONFIG dan struktur WDF_WMI_INSTANCE_CONFIG . Panggilan tunggal ini mengonfigurasi objek penyedia WMI yang disediakan kerangka kerja tunggal dan membuat objek instans WMI.

Jika driver Anda membuat beberapa instans blok data WMI-nya, driver harus memanggil WdfWmiProviderCreate dan WdfWmiInstanceCreate

Mendaftarkan Instans Penyedia

Sebelum klien WMI dapat mengakses blok data WMI driver Anda, driver harus mendaftarkan instans penyedianya dengan layanan WMI sistem. Driver dapat menggunakan salah satu teknik berikut untuk mendaftarkan instans penyedia:

  • Atur daftarkan anggota struktur WDF_WMI_INSTANCE_CONFIG instans penyedia ke TRUE.

    Jika driver Anda mengatur Daftar ke TRUE, kerangka kerja secara otomatis mendaftarkan instans saat pertama kali perangkat memasuki status berfungsi (D0).

  • Panggil metode WdfWmiInstanceRegister .

    Jika driver Anda memanggil WdfWmiInstanceRegister setelah memanggil WdfWmiInstanceCreate, kerangka kerja mendaftarkan instans setelah perangkat dalam status berfungsi (D0).

Kerangka kerja secara otomatis membatalkan pendaftaran setiap instans penyedia ketika perangkat instans dihapus (dan sebelum memanggil fungsi panggilan balik peristiwa EvtDeviceSelfManagedIoCleanup ). Untuk informasi tentang urutan kerangka kerja memanggil fungsi panggilan balik driver, lihat Skenario PnP dan Power Management.

Driver Anda dapat membatalkan pendaftaran instans kapan saja dengan memanggil WdfWmiInstanceDeregister.