Bagikan melalui


Fungsi PdhEnumObjectItemsHA (pdh.h)

Mengembalikan penghitung objek dan nama instans yang ditentukan yang ada di komputer yang ditentukan atau dalam file log yang ditentukan.

Fungsi ini identik dengan fungsi PdhEnumObjectItems, kecuali mendukung penggunaan handel ke sumber data.

Sintaksis

PDH_FUNCTION PdhEnumObjectItemsHA(
  [in]      PDH_HLOG hDataSource,
  [in]      LPCSTR   szMachineName,
  [in]      LPCSTR   szObjectName,
  [out]     PZZSTR   mszCounterList,
  [in, out] LPDWORD  pcchCounterListLength,
  [out]     PZZSTR   mszInstanceList,
  [in, out] LPDWORD  pcchInstanceListLength,
  [in]      DWORD    dwDetailLevel,
  [in]      DWORD    dwFlags
);

Parameter

[in] hDataSource

Tangani ke sumber data yang dikembalikan oleh fungsi PdhBindInputDataSource.

[in] szMachineName

String null-dihentikan yang menentukan nama komputer yang berisi penghitung dan nama instans yang ingin Anda hitung.

Sertakan garis miring di depan dalam nama komputer, misalnya, \computername.

Jika parameter szDataSource NULL, Anda dapat mengatur szMachineName ke NULL untuk menentukan komputer lokal.

[in] szObjectName

String nulldihentikan yang menentukan nama objek yang penghitung dan nama instansnya ingin Anda hitung.

[out] mszCounterList

Buffer yang dialokasikan pemanggil yang menerima daftar nama penghitungnull dihentikan yang disediakan oleh objek yang ditentukan. Daftar berisi nama penghitung unik. Daftar dihentikan oleh dua karakter NULL. Atur ke NULL jika parameter pcchCounterListLength adalah nol.

[in, out] pcchCounterListLength

Ukuran buffer mszCounterList , dalam TCHAR. Jika nol pada input dan objek ada, fungsi mengembalikan PDH_MORE_DATA dan mengatur parameter ini ke ukuran buffer yang diperlukan. Jika buffer lebih besar dari ukuran yang diperlukan, fungsi mengatur parameter ini ke ukuran buffer aktual yang digunakan. Jika ukuran yang ditentukan pada input lebih besar dari nol tetapi kurang dari ukuran yang diperlukan, Anda tidak boleh mengandalkan ukuran yang dikembalikan untuk merealokasi buffer.

[out] mszInstanceList

Buffer yang dialokasikan pemanggil yang menerima daftar nama instans nulldihentikan yang disediakan oleh objek yang ditentukan. Daftar berisi nama instans unik. Daftar dihentikan oleh dua karakter NULL. Atur ke NULL jika parameter pcchInstanceListLength adalah nol.

[in, out] pcchInstanceListLength

Ukuran buffer mszInstanceList , dalam TCHAR. Jika nol pada input dan objek ada, fungsi mengembalikan PDH_MORE_DATA dan mengatur parameter ini ke ukuran buffer yang diperlukan. Jika buffer lebih besar dari ukuran yang diperlukan, fungsi mengatur parameter ini ke ukuran buffer aktual yang digunakan. Jika ukuran yang ditentukan pada input lebih besar dari nol tetapi kurang dari ukuran yang diperlukan, Anda tidak boleh mengandalkan ukuran yang dikembalikan untuk merealokasi buffer.

Jika objek yang ditentukan tidak mendukung instans variabel, maka nilai yang dikembalikan akan menjadi nol. Jika objek yang ditentukan mendukung instans variabel, tetapi saat ini tidak memiliki instans apa pun, maka nilai yang dikembalikan adalah 2, yang merupakan ukuran string daftar MULTI_SZ kosong.

[in] dwDetailLevel

Tingkat detail item performa yang akan dikembalikan. Semua item yang berada di tingkat detail yang ditentukan atau kurang akan dikembalikan (tingkat dicantumkan dalam urutan yang meningkat). Parameter ini bisa menjadi salah satu nilai berikut.

Nilai Arti
PERF_DETAIL_NOVICE
Tingkat detail pengguna pemula.
PERF_DETAIL_ADVANCED
Tingkat detail pengguna tingkat lanjut.
PERF_DETAIL_EXPERT
Tingkat detail pengguna ahli.
PERF_DETAIL_WIZARD
Tingkat detail perancang sistem.

[in] dwFlags

Parameter ini harus nol.

Mengembalikan nilai

Jika fungsi berhasil, fungsi akan mengembalikan ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan adalah kode kesalahan sistem atau kode kesalahan PDH . Berikut ini adalah nilai yang mungkin.

Mengembalikan kode Deskripsi
PDH_MORE_DATA
Salah satu buffer terlalu kecil untuk berisi daftar nama. Nilai pengembalian ini diharapkan jika pcchCounterListLength atau pcchInstanceListLength adalah nol pada input. Jika ukuran yang ditentukan pada input lebih besar dari nol tetapi kurang dari ukuran yang diperlukan, Anda tidak boleh mengandalkan ukuran yang dikembalikan untuk merealokasi buffer.
PDH_INVALID_ARGUMENT
Parameter tidak valid. Misalnya, pada beberapa rilis, Anda dapat menerima kesalahan ini jika ukuran yang ditentukan pada input lebih besar dari nol tetapi kurang dari ukuran yang diperlukan.
PDH_MEMORY_ALLOCATION_FAILURE
Tidak dapat mengalokasikan memori untuk mendukung fungsi ini.
PDH_CSTATUS_NO_MACHINE
Komputer yang ditentukan sedang luring atau tidak tersedia.
PDH_CSTATUS_NO_OBJECT
Objek yang ditentukan tidak dapat ditemukan pada komputer yang ditentukan atau dalam file log yang ditentukan.

Komentar

Anda harus memanggil fungsi ini dua kali, pertama kalinya untuk mendapatkan ukuran buffer yang diperlukan (atur buffer ke null dan ukuran ke 0), dan kedua kalinya untuk mendapatkan data.

Panggilan berturut-turut ke fungsi ini akan mengembalikan daftar penghitung dan instans yang identik, karena PdhEnumObjectItemsH akan selalu mengkueri daftar objek performa yang ditentukan oleh panggilan terakhir ke PdhEnumObjectsH atau PdhEnumObjectItemsH. Untuk merefresh daftar objek performa, panggil PdhEnumObjectsH dengan nilai bendera bRefresh TRUE sebelum memanggil PdhEnumObjectItemsH lagi.

Urutan nama instans dan penghitung tidak ditentukan.

Nota

Header pdh.h mendefinisikan PdhEnumObjectItemsH sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosem UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Syarat Nilai
klien minimum yang didukung Windows XP [hanya aplikasi desktop]
server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Platform Target Windows
Header pdh.h
Pustaka Pdh.lib
DLL Pdh.dll

Lihat juga

PdhBindInputDataSource

PdhEnumObjectsH