Teknik Umum untuk Menguji Dukungan Driver WMI

Alat Klien WMI

Ada beberapa alat yang dapat Anda gunakan untuk menguji dukungan WMI di driver Anda.

Wbemtest
Sistem operasi mencakup alat Wbemtest, yang menyediakan GUI yang dapat Anda gunakan untuk mengkueri kelas WMI dan instans kelas, mengubah nilai properti, menjalankan metode, dan menerima pemberitahuan peristiwa. Sambungkan ke namespace "root\wmi" untuk menguji dukungan driver Anda.

Mikrofon
Microsoft Windows XP dan sistem operasi yang lebih baru menyertakan alat Wmic, yang menyediakan shell perintah yang dapat Anda gunakan untuk mengeluarkan perintah terkait WMI untuk menguji driver Anda.

Wmimofck
Perintah wmimofck dapat digunakan untuk memeriksa sintaks file MOF biner Anda. Anda juga dapat menggunakan perintah wmimofck -t untuk menghasilkan file VBScript. Anda dapat menggunakan skrip ini untuk menguji penanganan driver kueri instans kelas WMI Anda. Perintah wmimofck -w menghasilkan halaman web yang dapat menguji kelas kueri dan pengaturan, menjalankan metode, dan menerima peristiwa. Perhatikan bahwa halaman web tidak mendukung metode eksekusi yang menggunakan parameter kompleks atau nilai pengembalian (seperti array kelas yang disematkan). Dalam kasus seperti itu, Anda dapat menggunakan Wbemtest sebagai gantinya. Lihat Menggunakan wmimofck.exe untuk informasi selengkapnya tentang Wmimofck.

Anda juga dapat menguji dukungan WMI driver Anda dengan menulis aplikasi klien WMI kustom, menggunakan API mode pengguna WMI.

Untuk informasi selengkapnya tentang API mode pengguna ini, yang memungkinkan aplikasi untuk menyediakan atau menggunakan informasi WMI, lihat informasi Instrumentasi Manajemen Windows dalam dokumentasi Microsoft Windows SDK.

Aplikasi klien WMI melakukan tugas-tugas berikut untuk menguji driver:

  • Menyambungkan ke WMI.

    Untuk terhubung ke WMI, aplikasi dapat memanggil fungsi Model Objek Komponen (COM), CoCreateInstance, untuk mengambil pointer ke antarmuka IWbemLocator . Aplikasi kemudian memanggil metode IWbemLocator::ConnectServer untuk terhubung ke WMI. Dari panggilan ini, aplikasi menerima pointer ke antarmuka IWbemServices .

  • Mengakses informasi di driver.

    Untuk mengakses informasi dan mendaftar untuk peristiwa, aplikasi menggunakan metode antarmuka IWbemServices .

IRP WMI dan Log Peristiwa Sistem

Kesalahan WMI yang terjadi secara ketat dalam mode kernel dicatat ke log peristiwa sistem. Anda dapat menggunakan Pemantau Peristiwa untuk memeriksa log peristiwa sistem. (Lihat Kesalahan Pengelogan untuk informasi selengkapnya.)

Dua sumber utama kesalahan tersebut adalah balasan yang salah terhadap permintaan WMI dan parameter yang salah untuk pemberitahuan peristiwa. Misalnya, jika driver mengembalikan struktur data WMIREGINFO yang cacat sebagai respons terhadap permintaan IRP_MN_REGINFO atau IRP_MN_REGINFO_EX , sistem akan mencatatnya ke log peristiwa sistem. Sistem juga akan mencatat panggilan yang tidak valid ke IoWMIWriteEvent dan WmiFireEvent untuk mengeluarkan pemberitahuan peristiwa WMI.

Log Penyedia WMI WDM

Kesalahan WMI yang terjadi saat ditangani oleh penyedia WDM WMI (Wmiprov.dll) dicatat ke file log untuk Penyedia WDM WMI, Wmiprov.log. Ini adalah file teks dapat ditemukan di %windir%\system32\wbem\logs\wmiprov.log. Kesalahan, seperti sumber daya MOF yang buruk atau hilang untuk driver, dicatat di sini. Dalam kasus sumber daya MOF yang buruk, file %windir%\system32\mofcomp.log mungkin memiliki informasi tambahan yang terkait dengan kesalahan.

Dalam versi Windows yang lebih lama dari Windows Vista, Anda dapat mengubah pengaturan pengelogan untuk semua penyedia WMI dengan menggunakan aplikasi Wmimgmt.msc. (Di Windows 98/Me, gunakan Wbemcntl sebagai gantinya.) Anda dapat menonaktifkan atau mengaktifkan kembali pengelogan, mengubah direktori tempat file log WMI disimpan, serta mengatur ukuran maksimum untuk file tersebut. Untuk informasi selengkapnya, lihat File Log WMI.