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 の場合は、szMachineName を NULL に設定してローカル コンピューターを指定できます。
[in] szObjectName
列挙するカウンター名とインスタンス名を持つオブジェクトの名前を指定する null で終わる文字列。
[out] mszCounterList
指定したオブジェクトによって提供される null で終わるカウンター名の一覧を受け取る呼び出し元によって割り当てられたバッファー。 一覧には、一意のカウンター名が含まれています。 リストは 2 つの NULL 文字で終わる。 pcchCounterListLength パラメーターが 0 の場合は NULL に設定します。
[in, out] pcchCounterListLength
MSzCounterList バッファーのサイズ (TCHAR 単位)。 入力時にゼロが存在し、オブジェクトが存在する場合、関数はPDH_MORE_DATAを返し、このパラメーターを必要なバッファー サイズに設定します。 バッファーが必要なサイズより大きい場合、関数は、このパラメーターを使用したバッファーの実際のサイズに設定します。 入力時に指定されたサイズが 0 より大きく、必要なサイズより小さい場合は、返されたサイズに依存してバッファーを再割り当てしないでください。
[out] mszInstanceList
指定したオブジェクトによって提供される null で終わるインスタンス名の一覧を受け取る呼び出し元によって割り当てられたバッファー。 一覧には、一意のインスタンス名が含まれています。 リストは 2 つの NULL 文字で終わる。 pcchInstanceListLength が 0 の場合は NULL に設定されます。
[in, out] pcchInstanceListLength
MSzInstanceList バッファーのサイズ (TCHAR 単位)。 入力時にゼロが存在し、オブジェクトが存在する場合、関数はPDH_MORE_DATAを返し、このパラメーターを必要なバッファー サイズに設定します。 バッファーが必要なサイズより大きい場合、関数は、このパラメーターを使用したバッファーの実際のサイズに設定します。 入力時に指定されたサイズが 0 より大きく、必要なサイズより小さい場合は、返されたサイズに依存してバッファーを再割り当てしないでください。
指定したオブジェクトが変数インスタンスをサポートしていない場合、戻り値は 0 になります。 指定したオブジェクトが変数インスタンスをサポートしているが、現在インスタンスがない場合、返される値は 2 で、空のMULTI_SZリスト文字列のサイズです。
[in] dwDetailLevel
返すパフォーマンス項目の詳細レベル。 指定した詳細レベル以下のすべてのアイテムが返されます (レベルは増加順に表示されます)。 このパラメーターには、次の値のいずれかを指定できます。
値 | 意味 |
---|---|
|
初心者のユーザー レベルの詳細。 |
|
詳細なユーザー レベル。 |
|
エキスパートユーザーの詳細レベル。 |
|
システム デザイナーの詳細レベル。 |
[in] dwFlags
このパラメーターは 0 である必要があります。
戻り値
関数が成功すると、ERROR_SUCCESSが返されます。
関数が失敗した場合、戻り値は システム エラー コード または PDH エラー コードです。 使用できる値を次に示します。
リターン コード | 説明 |
---|---|
|
バッファーの 1 つが小さすぎて、名前の一覧を格納できません。 この戻り値は、入力時に pcchCounterListLength または pcchInstanceListLength が 0 の場合に予期されます。 入力時に指定されたサイズが 0 より大きく、必要なサイズより小さい場合は、返されたサイズに依存してバッファーを再割り当てしないでください。 |
|
パラメーターが無効です。 たとえば、一部のリリースでは、入力の指定されたサイズが 0 より大きく、必要なサイズより小さい場合に、このエラーが発生する可能性があります。 |
|
この関数をサポートするためにメモリを割り当てることができません。 |
|
指定されたコンピューターがオフラインであるか、使用できません。 |
|
指定したオブジェクトが、指定したコンピューターまたは指定したログ ファイルに見つかりませんでした。 |
注釈
この関数は 2 回呼び出す必要があります。最初に必要なバッファー サイズを取得し (バッファーを NULL に、サイズを 0 に設定します)、2 回目はデータを取得します。
PdhEnumObjectItems は PdhEnumObjects または PdhEnumObjectItems の最後の呼び出しで定義されたパフォーマンス オブジェクトの一覧を常に照会するため、この関数を連続して呼び出すとカウンターとインスタンスの同じリストが返されます。 パフォーマンス オブジェクトの一覧を更新するには、 PdhEnumObjects を再度呼び出す前に 、bRefresh フラグ値 TRUE を指定して PdhEnumObjects を呼び出します。
インスタンス名とカウンター名の順序は未確定です。
例
例については、「 プロセス オブジェクトの列挙」を参照してください。
注意
pdh.h ヘッダーは、PdhEnumObjectItems をエイリアスとして定義します。このエイリアスは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと混在させると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | pdh.h |
Library | Pdh.lib |
[DLL] | Pdh.dll |