オブジェクト名を列挙するにはPdhEnumObjects()関数を使います。
この関数で取得した文字列はNULL文字で区切られて最後にはもう一つNULL文字が追加します。
つまり[aaa][\0][bbb][\0][ccc][\0][\0]というイメージになります。(戻る)
プロトタイプ宣言
PDH_STATUS PdhEnumObjects( LPCTSTR szDataSource, // ログファイル名 LPCTSTR szMachineName, // コンピュータ名 LPTSTR mszObjectList, // バッファ領域 LPDWORD pcchBufferLength, // バッファ容量のポインタ DWORD dwDetailLevel, // 取得する詳細レベル BOOL bRefresh // キャッシュから読み込む指定 );
サンプル
#include <stdio.h> #include <windows.h> #include <pdh.h> // Pdh.Lib // メイン関数 int main( void ) { TCHAR szBuff[ 32 * 1024 ]; DWORD dwSize = sizeof(szBuff); LPTSTR lpBuff; // パフォーマンス・オブジェクト名の列挙 PdhEnumObjects( NULL, NULL, szBuff, &dwSize, PERF_DETAIL_WIZARD, TRUE ); for ( lpBuff = szBuff ; *lpBuff != '\0' ; lpBuff++ ){ printf( "[%s]\n", lpBuff ); lpBuff += lstrlen( lpBuff ); } return 0; }
- ヘッダファイルとしてpdh.hをインクルードして下さい。
- インポートライブラリとしてPdh.Libをリンクして下さい。
取得する詳細レベルには次の定数があります。
- 初心者ユーザーのレベル(PERF_DETAIL_NOVICE)
- 上級者ユーザーのレベル(PERF_DETAIL_ADVANCED)
- 専門家ユーザーのレベル(PERF_DETAIL_EXPERT)
- 設計者ユーザーのレベル(PERF_DETAIL_WIZARD)
※コメント投稿者のブログIDはブログ作成者のみに通知されます