Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Komponen mode kernel menyediakan penghitung kinerja menggunakan API Penghitung Kinerja untuk Windows (PCW).
Gunakan langkah-langkah berikut untuk mengembangkan penyedia data penghitung baru:
Tulis manifes penghitung yang menjelaskan penyedia dan penghitungnya. Manifes penghitung adalah file format XML yang menentukan penyedia penghitung kinerja dan set penghitungnya.
- Atur
applicationIdentityatribut ke nama biner yang akan diinstal sebagai bagian dari komponen mode kernel Anda dan yang akan berisi sumber daya string yang diperlukan oleh konsumen data performa. - Atur
providerTypeatribut kekernelMode. - Tentukan setidaknya satu
structelemen (di bawahcounterSet/structs) dengan nama struktur C/C++ yang akan digunakan saat meneruskan nilai penghitung dari komponen Anda ke API PCW. - Di setiap
counter, tentukanstructdanfielddari mana PCW harus membaca nilai penghitung.
- Atur
Sebagai bagian dari proses build untuk komponen Anda, gunakan alat CTRPP untuk mengkompilasi manifes penghitung. (Alat Counter Preprocessor (CTRPP) disertakan dalam WDK dan tersedia di Prompt Perintah Pengembang dengan mengetik
ctrpp.) Alat CTRPP akan menghasilkan.rcfile dan.hfile.- File yang dihasilkan
.rcCTRPP harus dikompilasi oleh alat Resource Compiler (RC.exe), dan file yang.resdihasilkan harus ditautkan ke dalam biner bernama dalamapplicationIdentityatribut . Anda dapat langsung mengkompilasi file yang dihasilkan.rcCTRPP atau Anda dapat#includemembuat file yang dihasilkan.rcCTRPP ke dalam file yang ada.rcyang sedang dikompilasi ke dalam biner. - File yang dihasilkan
.hCTRPP berisi fungsi pembantu yang membungkus API PCW yang mendasar. Misalnya, file yang dihasilkan.hCTRPP akan berisi fungsi RegisterXxx yang memanggilPcwRegisteratas nama Anda. Dalam kebanyakan kasus, Anda akan memanggil fungsi pembantu yang dihasilkan CTRPP alih-alih memanggil API PCW secara langsung, tetapi Anda dapat merujuk ke dokumentasi untuk API PCW untuk memahami apa yang dilakukan fungsi yang dihasilkan CTRPP yang sesuai. Fungsi pembantu mengelola penerjemahan tata letak data penghitung komponen ke dalam tata letak yangPCW_DATAdiharapkan oleh API PCW.
- File yang dihasilkan
Pada inisialisasi komponen, panggil fungsi RegisterXxx yang dihasilkan CTRPP, yang memanggil PcwRegister. Pada pematian komponen, panggil fungsi UnregisterXxx yang dihasilkan CTRPP, yang memanggil PcwUnregister.
Tambahkan kode untuk menyediakan data penghitung. Ini dilakukan dengan menerapkan fungsi panggilan balik PCW_CALLBACK atau dengan mempertahankan struktur data dengan nilai penghitung untuk setiap instans dan memanggil fungsi CreateInstanceXxx dan CloseInstanceXxx yang dihasilkan CTRPP saat instans dibuat dan dihancurkan.
Pada penginstalan komponen, gunakan
lodctr /m:<CounterManifest> <InstallPath>untuk menginstal penyedia. Pada penghapusan instalasi komponen, gunakanunlodctr(dengan/matau/gparameter) untuk menghapus instalan penyedia. Menginstal penyedia menambahkan counterset penyedia ke repositori seluruh sistem dari counterset yang tersedia sehingga counterset dapat digunakan oleh konsumen data performa seperti perfmon, typeperf, atau WMI. Secara khusus, menginstal penyedia merekam jalur lengkap ke biner (file DLL, SYS, atau EXE) yang berisi tabel string penyedia. Jalur lengkap ke biner ditentukan dengan menggabungkan atribut manifesapplicationIdentitydengan<CounterManifest>nilai dan<InstallPath>yang digunakan padalodctrbaris perintah sebagai berikut:-
applicationIdentityJika atribut adalah jalur lengkap, atribut akan digunakan. - Jika tidak, jika
<InstallationPath>parameter adalah jalur lengkap, parameter tersebut akan digunakan. - Jika tidak, jika
<CounterManifest>parameter adalah jalur lengkap, direktori dari<CounterManifest>akan dikombinasikan dengan nama file dariapplicationIdentityatribut . - Jika tidak, direktori kerja saat ini akan dikombinasikan dengan nama file dari
applicationIdentityatribut .
-
Untuk contoh penyedia PCW mode kernel, lihat Sampel Penghitung Kernel (Kcs) di repositori sampel driver Windows di GitHub.