TdhFormatProperty 関数 (tdh.h)

表示するプロパティ値の書式を設定します。

構文

TDHSTATUS TdhFormatProperty(
  [in]            PTRACE_EVENT_INFO EventInfo,
  [in, optional]  PEVENT_MAP_INFO   MapInfo,
  [in]            ULONG             PointerSize,
  [in]            USHORT            PropertyInType,
  [in]            USHORT            PropertyOutType,
  [in]            USHORT            PropertyLength,
  [in]            USHORT            UserDataLength,
  [in]            PBYTE             UserData,
  [in, out]       PULONG            BufferSize,
  [out, optional] PWCHAR            Buffer,
  [out]           PUSHORT           UserDataConsumed
);

パラメーター

[in] EventInfo

イベント情報を含む TRACE_EVENT_INFO構造体 。 この構造体を取得するには、 TdhGetEventInformation 関数を呼び出します。

[in, optional] MapInfo

整数とビット値を文字列にマップする EVENT_MAP_INFO構造体 。 この構造体を取得するには、 TdhGetEventMapInformation 関数を呼び出します。 マップの名前を取得するには、EVENT_PROPERTY_INFO構造体MapNameOffset メンバーを使用します。 マップされたプロパティのマップ情報を指定しない場合、関数は整数またはビット値の書式を設定します。

[in] PointerSize

イベント データ内のポインター値のサイズ。 サイズを取得するには、EVENT_RECORDにアクセスします 。EventHeader.Flags メンバー。 EVENT_HEADER_FLAG_32_BIT_HEADER フラグが設定されている場合、ポインター のサイズは 4 バイトです。それ以外の場合は、EVENT_HEADER_FLAG_64_BIT_HEADER フラグが設定されている場合は 8 バイトになります。 EVENT_RECORD構造体 (evntcons.h) が [PEVENT_RECORD_CALLBACK コールバック関数] に渡されます。

[in] PropertyInType

プロパティの入力型。 このパラメーターを設定するには、EVENT_PROPERTY_INFO 構造体InType メンバーを使用します。

[in] PropertyOutType

プロパティの出力型。 このパラメーターを設定するには、EVENT_PROPERTY_INFO 構造体OutType メンバーを使用します。

[in] PropertyLength

プロパティの長さ (バイト単位)。 このパラメーターを設定するには、EVENT_PROPERTY_INFO構造体Length メンバーを使用します。

[in] UserDataLength

UserData バッファーのサイズ (バイト単位)。 「解説」を参照してください。

[in] UserData

イベント データを格納するバッファー。 「解説」を参照してください。

[in, out] BufferSize

バッファー バッファーのサイズ (バイト単位)。 関数が成功した場合、このパラメーターは使用されるバッファーのサイズを受け取ります。 バッファーが小さすぎる場合、関数は ERROR_INSUFFICIENT_BUFFERを返し、このパラメーターを必要なバッファー サイズに設定します。 入力時にバッファー サイズが 0 の場合、バッファーにデータは返されません。このパラメーターは必要なバッファー サイズを受け取ります。

[out, optional] Buffer

書式設定されたプロパティ値を含む呼び出し元によって割り当てられたバッファー。 必要なバッファー サイズを確認するには、このパラメーターを NULL に設定し、 BufferSize を 0 に設定します。

[out] UserDataConsumed

使用されるイベント データの長さ (バイト単位)。 この値を使用して、UserData パラメーターと UserDataLength パラメーターの値を調整します。 「解説」を参照してください。

戻り値

成功した場合は、ERROR_SUCCESSを返します。 それ以外の場合、この関数は、他の戻りコードに加えて、次のいずれかのリターン コードを返します。

リターン コード 説明
ERROR_INSUFFICIENT_BUFFER pBuffer バッファーのサイズが小さすぎます。 新しいバッファーを割り当てるには、 pBufferSize で必要なバッファー サイズ セットを使用します。
ERROR_INVALID_PARAMETER 1 つ以上のパラメーターが無効です。
ERROR_EVT_INVALID_EVENT_DATA イベント データがマニフェストのイベント定義と一致しません。

注釈

通常、この関数はループで呼び出します。 TRACE_EVENT_INFOを使用 します。ループを制御する TopLevelPropertyCount メンバー ( TdhGetEventInformation 関数、TRACE_EVENT_INFO構造体を返します)。 ループに入る前に、UserData パラメーターと UserDataLength パラメーターをそれぞれ、EVENT_RECORD構造体UserData メンバーと UserDataLength メンバーの値に設定します。 EVENT_RECORD構造体が [PEVENT_RECORD_CALLBACK コールバック関数] に渡されます。

プロパティが配列であるかどうかを判断します。 プロパティは、EVENT_PROPERTY_INFO場合は配列です 。Flags メンバーが PropertyParamCount に設定されているか、 EVENT_PROPERTY_INFO.count メンバーが 1 より大きい。 配列内の要素の数に基づいて、ループ内で TdhFormatProperty 関数を呼び出します。

TdhFormatProperty 関数を呼び出した後、UserDataConsumed パラメーター値を使用して UserData パラメーターと UserDataLength パラメーターの新しい値を設定します (UserDataLength から UserDataConsumed を減算し、UserDataLength を使用して UserData ポインターをインクリメントします)。

プロパティが IP V6 アドレスの場合は、 PropertyLength パラメーターを IN6_ADDR 構造体のサイズに設定する必要があります。 次の条件が満たされた場合、このプロパティは IP V6 アドレスと見なされます。

この関数を呼び出す方法を示す例については、「 TdhFormatProperty を使用してイベント データを使用する」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー tdh.h
Library Tdh.lib
[DLL] Tdh.dll