Menginsialisasi 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 di Wmicore.mof.

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

  • Secara opsional menerapkan satu atau beberapa fungsi callback peristiwa untuk menyediakan data WMI yang disediakan driver.

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

Untuk menginisialisasi dukungan WMI-nya, pengemudi 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 ini membuat penyedia WMI secara default ketika driver KMDF membuat instans WMI pertamanya. Oleh karena itu, jika pengemudi hanya membutuhkan satu penyedia WMI, tidak perlu memanggil metode pembuatan penyedia (WdfWmiProviderCreate). Namun, driver harus mengisi struktur konfigurasi penyedia karena struktur ini memberikan informasi tentang penyedia yang digunakan kerangka kerja saat membuat instans.

Jika driver Anda membuat satu instans dari setiap blok data WMI yang didukungnya, pengemudi 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, pengemudi harus memanggil WdfWmiProviderCreate dan WdfWmiInstanceCreate

Mendaftarkan Instans Penyedia

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

  • Atur anggota Daftar struktur WDF_WMI_INSTANCE_CONFIG instans penyedia ke TRUE.

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

  • Panggil metode WdfWmiInstanceRegister .

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

Kerangka kerja secara otomatis menderegister setiap instans penyedia saat perangkat instans dihapus (dan sebelum memanggil fungsi callback peristiwa EvtDeviceSelfManagedIoCleanup ). Untuk informasi tentang urutan di mana kerangka kerja memanggil fungsi callback driver, lihat Skenario PnP dan Manajemen Daya.

Driver Anda dapat deregister instance kapan saja dengan menghubungi WdfWmiInstanceDeregister.