次の方法で共有


PdhEnumObjectsHA 関数 (pdh.h)

指定したコンピューターまたは指定したログ ファイルで使用できるオブジェクトの一覧を返します。

この関数は、PdhEnumObjectsと同じですが、データ ソースへのハンドルの使用がサポートされている点が異なります。

構文

PDH_FUNCTION PdhEnumObjectsHA(
  [in]      PDH_HLOG hDataSource,
  [in]      LPCSTR   szMachineName,
  [out]     PZZSTR   mszObjectList,
  [in, out] LPDWORD  pcchBufferSize,
  [in]      DWORD    dwDetailLevel,
  [in]      BOOL     bRefresh
);

パラメーター

[in] hDataSource

PdhBindInputDataSource 関数によって返されるデータ ソースへのハンドル。

[in] szMachineName

パフォーマンス オブジェクトの列挙に使用するコンピューターの名前を指定する null-terminated 文字列です。

コンピューター名に先頭のスラッシュ (\computername など) を含めます。

szDataSource が NULL場合は、szMachineName NULL に設定してローカル コンピューターを指定できます。

[out] mszObjectList

オブジェクト名の一覧を受け取る呼び出し元によって割り当てられたバッファー。 このリスト内の各オブジェクト名は、null 文字で終了します。 リストは、2 つの null-terminator 文字で終了します。 pcchBufferLength が 0 の場合 NULL を に設定します。

[in, out] pcchBufferSize

mszObjectList バッファーのサイズ (TCHAR)。 入力時に 0 の場合、関数はPDH_MORE_DATAを返し、このパラメーターを必要なバッファー サイズに設定します。 バッファーが必要なサイズより大きい場合、関数はこのパラメーターを使用したバッファーの実際のサイズに設定します。 入力で指定したサイズが 0 より大きく、必要なサイズより小さい場合は、返されたサイズに依存してバッファーを再割り当てしないでください。

Windows XP: 必要なバッファー サイズに追加します。

[in] dwDetailLevel

返されるパフォーマンス項目の詳細レベル。 指定された詳細レベル以下のすべての項目が返されます (レベルは増加順に一覧表示されます)。 このパラメーターには、次のいずれかの値を指定できます。

価値 意味
PERF_DETAIL_NOVICE
初心者のユーザー レベルの詳細。
PERF_DETAIL_ADVANCED
高度なユーザー レベルの詳細。
PERF_DETAIL_EXPERT
エキスパートユーザーレベルの詳細。
PERF_DETAIL_WIZARD
システム デザイナーの詳細レベル。

[in] bRefresh

キャッシュされたオブジェクト リストを自動的に更新するかどうかを示します。 次のいずれかの値を指定します。

この関数を 2 回呼び出してリストのサイズを取得し、2 回目に実際のリストを取得する場合は、最初の呼び出しで TRUE を し、2 回目の呼び出しで FALSE を します。 両方の呼び出しが TRUE場合、オブジェクト データが呼び出し間で変更された可能性があるため、2 番目の呼び出しもPDH_MORE_DATAを返す可能性があります。

価値 意味
TRUE
オブジェクト キャッシュは、オブジェクトが返される前に自動的に更新されます。
FALSE
キャッシュを自動的に更新しないでください。

戻り値

関数が成功すると、ERROR_SUCCESSが返されます。

関数が失敗した場合、戻り値は システム エラー コード または PDH エラー コードです。 使用できる値を次に示します。

リターン コード 形容
PDH_MORE_DATA
mszObjectList バッファー が小さすぎて、オブジェクトの一覧を保持できません。 この戻り値は、pcchBufferLength が入力時 ゼロの場合に予期されます。 入力で指定したサイズが 0 より大きく、必要なサイズより小さい場合は、返されたサイズに依存してバッファーを再割り当てしないでください。
PDH_CSTATUS_NO_MACHINE
指定されたコンピューターがオフラインであるか、使用できません。
PDH_CSTATUS_NO_OBJECT
指定したオブジェクトが見つかりませんでした。
PDH_INVALID_ARGUMENT
パラメーターが無効です。 たとえば、一部のリリースでは、入力で指定されたサイズが 0 より大きく、必要なサイズより小さい場合、このエラーが発生する可能性があります。

備考

この関数を 2 回呼び出し、必要なバッファー サイズを取得する場合は 2 回 (mszObjectList NULL に設定し、pcchBufferLength を 0 に )、2 回目にデータを取得する必要があります。

手記

pdh.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして PdhEnumObjectsH を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー pdh.h
ライブラリ Pdh.lib
DLL Pdh.dll

関連項目

PdhBindInputDataSource の

PdhEnumObjectItemsH