Bagikan melalui


Fungsi TdhGetProperty (tdh.h)

Mengambil nilai properti dari data peristiwa.

Sintaks

TDHSTATUS TdhGetProperty(
  [in]  PEVENT_RECORD             pEvent,
  [in]  ULONG                     TdhContextCount,
  [in]  PTDH_CONTEXT              pTdhContext,
  [in]  ULONG                     PropertyDataCount,
  [in]  PPROPERTY_DATA_DESCRIPTOR pPropertyData,
  [in]  ULONG                     BufferSize,
  [out] PBYTE                     pBuffer
);

Parameter

[in] pEvent

Rekaman peristiwa diteruskan ke panggilan balik EventRecordCallback Anda. Untuk detailnya, lihat struktur EVENT_RECORD .

[in] TdhContextCount

Jumlah elemen dalam pTdhContext.

[in] pTdhContext

Array nilai konteks hanya untuk peristiwa WPP atau ETW klasik; jika tidak, NULL. Untuk detailnya, lihat struktur TDH_CONTEXT . Array tidak boleh berisi jenis konteks duplikat.

[in] PropertyDataCount

Jumlah struktur deskriptor data dalam pPropertyData.

[in] pPropertyData

Array struktur PROPERTY_DATA_DESCRIPTOR yang menentukan properti yang akan diambil.

Jika Anda memanggil fungsi TdhGetPropertySize untuk mengambil ukuran buffer yang diperlukan untuk properti, Anda dapat menggunakan deskriptor data yang sama.

Jika Anda mengambil properti yang bukan anggota struktur, Anda dapat menentukan satu deskriptor data. Jika Anda mengambil properti yang merupakan anggota struktur, tentukan array dua deskriptor data (struktur tidak boleh berisi atau mereferensikan struktur lain).

[in] BufferSize

Ukuran buffer pBuffer , dalam byte. Anda bisa mendapatkan nilai ini dari parameter pPropertySize saat memanggil fungsi TdhGetPropertySize .

[out] pBuffer

Buffer yang dialokasikan pengguna yang menerima data properti.

Mengembalikan nilai

Mengembalikan ERROR_SUCCESS jika berhasil. Jika tidak, fungsi ini mengembalikan salah satu kode pengembalian berikut selain yang lain.

Menampilkan kode Deskripsi
ERROR_NOT_FOUND
Skema untuk kejadian tidak ditemukan atau properti yang ditentukan tidak ditemukan.
ERROR_INSUFFICIENT_BUFFER
Buffer pBuffer terlalu kecil. Untuk mendapatkan ukuran buffer yang diperlukan, panggil TdhGetPropertySize.
ERROR_INVALID_PARAMETER
Satu atau beberapa parameter tidak valid.
ERROR_FILE_NOT_FOUND
Atribut resourceFileName dalam manifes berisi lokasi biner penyedia. Saat Anda mendaftarkan manifes, lokasi ditulis ke registri. TDH tidak dapat menemukan biner berdasarkan lokasi terdaftar.
ERROR_WMI_SERVER_UNAVAILABLE
Layanan WMI tidak tersedia.

Keterangan

Jika peristiwa tersebut adalah peristiwa WPP atau ETW klasik, Anda dapat menentukan informasi konteks yang digunakan untuk membantu mengurai informasi peristiwa. Acara ini adalah peristiwa WPP jika bendera EVENT_HEADER_FLAG_TRACE_MESSAGE diatur di anggota BenderaEVENT_HEADER (lihat anggota EventHeaderdari EVENT_RECORD). Acara ini adalah peristiwa ETW warisan jika bendera EVENT_HEADER_FLAG_CLASSIC_HEADER diatur.

Untuk daftar properti untuk peristiwa WPP dan jenis datanya, lihat PROPERTY_DATA_DESCRIPTOR.

Contoh

Untuk contoh yang menunjukkan cara memanggil fungsi ini untuk mengambil nilai properti tingkat atas atau anggota struktur, lihat Menggunakan TdhGetProperty untuk Mengonsumsi Data Peristiwa.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header tdh.h
Pustaka Tdh.lib
DLL Tdh.dll

Lihat juga

TdhGetEventInformation

TdhGetPropertySize