Bagikan melalui


Membuat Kueri

Untuk membuat kueri baru yang mengumpulkan data performa dari sumber real time atau file log, panggil fungsi PdhOpenQuery . Fungsi mengembalikan handel ke kueri yang Anda gunakan dalam panggilan fungsi PDH berikutnya.

Setelah membuat kueri, panggil fungsi PdhAddCounter untuk setiap penghitung yang ingin Anda tambahkan ke kueri. Anda dapat menggunakan salah satu metode berikut untuk menyediakan jalur penghitung yang sepenuhnya memenuhi syarat.

  • Tentukan jalur penghitung sebagai string statis. Gunakan metode ini jika Anda selalu memantau penghitung yang sama, dan jika Anda terbiasa dengan sintaks yang benar dari jalur penghitung. Untuk informasi tentang sintaks yang benar yang digunakan untuk menentukan penghitung, lihat Menentukan Jalur Penghitung.
  • Inisialisasi struktur PDH_COUNTER_PATH_ELEMENTS dengan nama komputer, objek, penghitung, dan instans. Teruskan struktur ini ke PdhMakeCounterPath yang akan mengembalikan jalur penghitung untuk elemen yang ditentukan.
  • Tentukan jalur penghitung yang berisi karakter kartubebas dan panggil PdhExpandWildCardPath untuk mendapatkan daftar nama penghitung yang cocok dengan karakter kartubebas di jalur. Pindai daftar nama penghitung dan tambahkan ke kueri penghitung yang Anda inginkan dari daftar ini.
  • Panggil fungsi PdhBrowseCounters untuk menampilkan kotak dialog yang memungkinkan pengguna menelusuri dan memilih penghitung kinerja. Untuk informasi selengkapnya, lihat Penghitung Penjelajahan.

Perhatikan bahwa jika instans penghitung ditentukan yang tidak ada, PdhAddCounter tidak melaporkan kondisi kesalahan. Sebaliknya, ia mengembalikan ERROR_SUCCESS. Alasan untuk perilaku ini adalah bahwa tidak diketahui jika instans penghitung yang tidak ada telah ditentukan atau yang akan ada tetapi belum dibuat.

Instans penghitung yang hilang akan dilaporkan oleh PdhCollectQueryData, PdhGetRawCounterValue, atau PdhGetFormattedCounterValue. Saat memanggil PdhCollectQueryData hanya untuk satu instans penghitung, dan instans penghitung masih belum ada, diasumsikan bahwa instans penghitung tidak akan ada dan fungsi mengembalikan PDH_NO_DATA. Namun, jika lebih dari satu penghitung dikueri, PdhCollectQueryData mungkin masih mengembalikan ERROR_SUCCESS meskipun salah satu instans penghitung belum ada. Dalam hal ini, panggil PdhGetRawCounterValue atau PdhGetFormattedCounterValue untuk setiap instans penghitung yang menarik. Jika instans tidak ada saat memanggil PdhGetRawCounterValue, fungsi mengembalikan ERROR_SUCCESS dan mengatur anggota CStatusdari PDH_RAW_COUNTER ke PDH_STATUS_NO_INSTANCE. Jika instans tidak ada saat memanggil PdhGetFormattedCounterValue, fungsi mengembalikan PDH_INVALID_DATA dan mengatur anggota CStatusdari PDH_FMT_COUNTERVALUE ke PDH_CSTATUS_NO_INSTANCE.

Perhatikan bahwa jalur penghitung yang ditentukan dalam fungsi PdhAddCounter harus dilokalkan. Fungsi PdhAddEnglishCounter menyediakan cara netral lokal untuk menambahkan penghitung kinerja ke kueri. Fungsi ini adalah cara yang disarankan untuk menambahkan penghitung lokal netral ke kueri.

Untuk menghapus penghitung dari kueri, panggil fungsi PdhRemoveCounter .

Setelah Anda selesai mengumpulkan data untuk kueri, panggil fungsi PdhCloseQuery untuk menutup kueri dan merilis semua sumber daya sistem yang dialokasikan. PdhCloseQuery menutup semua handel penghitung yang terkait dengan kueri.