次の方法で共有


PdhEnumObjectItemsA 関数 (pdh.h)

指定したコンピューターまたは指定したログ ファイルに存在する、指定したオブジェクトのカウンター名とインスタンス名を返します。

データ ソースにハンドルを使用するには、 PdhEnumObjectItemsH 関数を 使用します。

構文

PDH_FUNCTION PdhEnumObjectItemsA(
  [in]      LPCSTR  szDataSource,
  [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
);

パラメーター

[in] szDataSource

カウンター名とインスタンス名の列挙に使用されるログ ファイルの名前を指定する Null で終わる文字列。 NULL の場合、関数は で指定されたコンピューターを使用します。

名前を列挙する szMachineName パラメーター。

[in] szMachineName

列挙するカウンターとインスタンス名を含むコンピューターの名前を指定する Null で終わる文字列。

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

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

[in] szObjectName

カウンター名とインスタンス名を列挙するオブジェクトの名前を指定する Null で終わる文字列。

[out] mszCounterList

指定したオブジェクトによって提供される null で終わるカウンター名の一覧を受け取る呼び出し元によって割り当てられたバッファー。 一覧には一意のカウンター名が含まれています。 リストは 2 つの NULL 文字で終了します。 pcchCounterListLength パラメーターが 0 の場合は NULL に設定します。

[in, out] pcchCounterListLength

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

[out] mszInstanceList

指定したオブジェクトによって提供される null で終わるインスタンス名の一覧を受け取る呼び出し元によって割り当てられたバッファー。 リストには、一意のインスタンス名が含まれています。 リストは 2 つの NULL 文字で終了します。 pcchInstanceListLength が 0 の場合は NULL に設定します。

[in, out] pcchInstanceListLength

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

指定したオブジェクトが変数インスタンスをサポートしていない場合、戻り値は 0 になります。 指定したオブジェクトが変数インスタンスをサポートしていても、現在インスタンスがない場合、返される値は 2 で、空のMULTI_SZリスト文字列のサイズです。

[in] dwDetailLevel

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

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

[in] dwFlags

このパラメーターは 0 である必要があります。

戻り値

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

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

リターン コード 説明
PDH_MORE_DATA
バッファーの 1 つが小さすぎて、名前の一覧を含めないようにします。 この戻り値は、 入力時に pcchCounterListLength または pcchInstanceListLength が 0 の場合に想定されます。 入力時に指定したサイズが 0 より大きく、必要なサイズより小さい場合は、返されたサイズに依存してバッファーを再割り当てしないでください。
PDH_INVALID_ARGUMENT
パラメーターが無効です。 たとえば、一部のリリースでは、入力の指定されたサイズが 0 より大きく、必要なサイズより小さい場合に、このエラーが発生する可能性があります。
PDH_MEMORY_ALLOCATION_FAILURE
この関数をサポートするためにメモリを割り当てることができません。
PDH_CSTATUS_NO_MACHINE
指定したコンピューターがオフラインであるか、使用できません。
PDH_CSTATUS_NO_OBJECT
指定したオブジェクトが、指定したコンピューターまたは指定したログ ファイルに見つかりませんでした。

注釈

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

PdhEnumObjectItems は PdhEnumObjects または PdhEnumObjectItems の最後の呼び出しによって定義されたパフォーマンス オブジェクトの一覧に対して常にクエリを実行するため、この関数を連続して呼び出すと、カウンターとインスタンスの同一のリストが返されます。 パフォーマンス オブジェクトの一覧を更新するには、 PdhEnumObjectItems を再度呼び出す前に 、bRefresh フラグ値 が TRUEPdhEnumObjects を呼び出します。

インスタンス名とカウンター名の順序は未定です。

例については、「 プロセス オブジェクトの列挙」を参照してください。

注意

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

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー pdh.h
Library Pdh.lib
[DLL] Pdh.dll

こちらもご覧ください

PdhEnumObjectItemsH

PdhEnumObjects