<Return[PQ]><Top>

PdhEnumObjects

Declare Sub Api_PdhEnumObjects Lib "pdh" Alias "PdhEnumObjects" (ByVal szDataSource$, ByVal szMachineName$, ByVal mszObjectList$, ByRef pcchBufferSize&, ByVal dwDetailLevel&, ByVal bRefresh&)

Declare Sub PdhEnumObjects Lib "pdh" (ByVal szDataSource As String, ByVal szMachineName As String, ByVal mszObjectList As String, ByRef pcchBufferSize As Long, ByVal dwDetailLevel As Long, ByVal bRefresh As Long)

指定したコンピュータ上で利用可能なオブジェクトのリストを取得する。

パラメータ
szDataSource
    Windows 2000:ログファイル名を表わす NULL で終わる文字列または終端の NULL だけを指定する。ログファイル名を指定した場合

    は、パフォーマンスデータがログファイルから取得される。NULL だけを指定した場合は、リアルタイムのデータソースからパフォーマンスデー

    タが取得される。
    Windows NT 4.0:予約されています。NULL を指定する。
szMachineName
    オブジェクトのリストを取得するコンピュータの名前を指定する。指定したコンピュータが接続中のコンピュータのリストにない場合は、PDH が

    そのコンピュータへの接続を試み、コンピュータ名をリストに追加する。

mszObjectList
    指定したコンピュータで利用可能なオブジェクトの MULTI_SZ リストを受け取るバッファへのポインタを指定する。このバッファは、呼び出し側

    関数が確保する。pcchBufferLength パラメータが指す DWORD 変数の値が 0 の場合は、NULL を指定することもできる。
pcchBufferLength
    DWORD 変数へのポインタを指定する。この変数は、バッファのサイズ(文字数)に設定しておく。関数から制御が戻るとき、取得されたデー

    タのサイズに設定される。0 に設定して関数を呼び出すと、mszObjectList パラメータが指すバッファにデータは格納されない。この変数は

    必要なバッファのサイズ(文字数)に設定される。どちらのサイズにも、MULTI_SZ 文字列の終端の NULL 文字が含まれる。
dwDetailLevel
    取得するパフォーマンス項目の詳細レベルを指定する。指定したこの詳細レベルか、それよりも低い詳細レベルのすべての項目が得られ

    る。

    値                                         

説明                                                                                                                                

    PERF_DETAIL_NOVICE

初心者ユーザーレベルの詳細。

    PERF_DETAIL_ADVANCED

上級ユーザーレベルの詳細。初心ユーザーレベルの詳細も含まれる。

    PERF_DETAIL_EXPERT

専門家ユーザーレベルの詳細。初心ユーザーレベルおよび高度ユーザーレベルの詳細も含まれる。

    PERF_DETAIL_WIZARD

システム設計者レベルの詳細。すべての詳細レベルが含まれる。

bRefresh
    指定したコンピュータからオブジェクトの新しいリストを取得するかどうかを指定するフラグである。コンピュータが PDH によって接続中でないと

    きは無視され、リストが自動的に更新される。次のいずれかの値を指定する。

    値            

説明                                                                                                                                                  

    TRUE

オブジェクトを取得する前に、指定したコンピュータの新しいパフォーマンスデータ用バッファがキャッシュされる。

    FALSE

 

指定したコンピュータの新しいパフォーマンスデータ用バッファはキャッシュされない。オブジェクトのリストは現在キャッシュされているパフォーマンスデータ用バッファから取得される。

 

戻り値

    関数が成功すると、ERROR_SUCCESS が返る。
    関数が失敗すると、PDHMSG.H ヘッダーファイルで定義されている PDH エラーステータスが返る。次のいずれかの値が返る。

    エラー値                                        

説明                                                                                                                    

    PDH_MORE_DATA

 

利用可能なエントリのすべてをバッファに格納することができない。一部のエントリはバッファに格納されていることがある。

    PDH_INSUFFICIENT_BUFFER

用意したバッファが小さすぎて、データをまったく格納できない。

    PDH_CSTATUS_NO_MACHINE

指定したコンピュータが利用できない。

    PDH_CSTATUS_NO_OBJECT

指定したオブジェクトがコンピュータ上に見つからない。

    PDH_INVALID_ARGUMENT

必要な引数が無効か、予約済み引数に NULL 以外を指定した。

 

解説
    バッファに必要なサイズを調べた後、実際にリストを取得するときは必ず bRefresh パラメータを FALSE に設定する。そうしないと、サイズが

    有効でなくなることがある。
    この関数の説明で使う「リアルタイム」という用語には、通常使う「リアルタイム」の意味はない。レジストリや WMI プロバイダなど、現

    在の情報を提供しているソースから(ログファイルからではなく)取得したパフォーマンスデータの集合を意味する。