パフォーマンス データ ヘルパーのエラー コード
すべてのパフォーマンス データ ヘルパー (PDH) 関数は、 PDH_STATUS型の値を返します。 関数が成功した場合、戻り値は です ERROR_SUCCESS
。 それ以外の場合、この関数は システム エラー コード または PDH エラー コードを返します。 アプリケーションでエラーの説明テキストを取得するには、次の例に示すように FormatMessage 関数を使用します。
#include <windows.h>
#include <stdio.h>
#include <pdhmsg.h>
void main(void)
{
HANDLE hPdhLibrary = NULL;
LPWSTR pMessage = NULL;
DWORD dwErrorCode = PDH_PLA_ERROR_ALREADY_EXISTS;
hPdhLibrary = LoadLibrary(L"pdh.dll");
if (NULL == hPdhLibrary)
{
wprintf(L"LoadLibrary failed with %lu\n", GetLastError());
return;
}
if (!FormatMessage(FORMAT_MESSAGE_FROM_HMODULE |
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_IGNORE_INSERTS,
hPdhLibrary,
dwErrorCode,
0,
(LPWSTR)&pMessage,
0,
NULL))
{
wprintf(L"Format message failed with 0x%x\n", GetLastError());
return;
}
wprintf(L"Formatted message: %ls\n", pMessage);
LocalFree(pMessage);
}
データ収集および書式設定関数の場合、関数の戻り値は関数呼び出しの成功またはエラーを示し、必ずしもカウンター データの戻り値ではないことに注意することが重要です。 返されるカウンター値の CStatus メンバーを常にチェックして、返されるデータが使用される前に有効であることを確認します。 CStatus メンバーの値が成功を示していない場合は、データを使用しないでください。
次の表に、PDH に固有のエラー コードの一覧を示します。 これらの値は、ヘッダー ファイルで pdhmsg.h
定義されます。
エラー コード | 説明 |
---|---|
0x00000000 (PDH_CSTATUS_VALID_DATA) | 返されるデータは有効です。 |
0x00000001 (PDH_CSTATUS_NEW_DATA) | 戻りデータ値は有効であり、最後のサンプルとは異なります。 |
0x800007D0 (PDH_CSTATUS_NO_MACHINE) | 指定したコンピューターに接続できないか、コンピューターがオフラインです。 |
0x800007D1 (PDH_CSTATUS_NO_INSTANCE) | 指定されたインスタンスが存在しません。 |
0x800007D2 (PDH_MORE_DATA) | 返されるデータは、指定されたバッファーに収まるデータよりも多くなります。 より大きなバッファーを割り当てて、関数をもう一度呼び出します。 |
0x800007D3 (PDH_CSTATUS_ITEM_NOT_VALIDATED) | データ項目はクエリに追加されましたが、検証もアクセスもされていません。 このデータ項目に関するその他の状態情報は使用できません。 |
0x800007D4 (PDH_RETRY) | 選択した操作を再試行する必要があります。 |
0x800007D5 (PDH_NO_DATA) | 返すデータがありません。 |
0x800007D6 (PDH_CALC_NEGATIVE_DENOMINATOR) | 負の分母値を持つカウンターが検出されました。 |
0x800007D7 (PDH_CALC_NEGATIVE_TIMEBASE) | 負の時間基準値を持つカウンターが検出されました。 |
0x800007D8 (PDH_CALC_NEGATIVE_VALUE) | 負の値を持つカウンターが検出されました。 |
0x800007D9 (PDH_DIALOG_CANCELLED) | ユーザーがダイアログ ボックスを取り消しました。 |
0x800007DA (PDH_END_OF_LOG_FILE) | ログ ファイルの末尾に達しました。 |
0x800007DB (PDH_ASYNC_QUERY_TIMEOUT) | 非同期カウンター コレクション スレッドが終了するまで待機中にタイムアウトが発生しました。 |
0x800007DC (PDH_CANNOT_SET_DEFAULT_REALTIME_DATASOURCE) | 既定のリアルタイム データ ソースの設定を変更できません。 カウンター データを収集するリアルタイム クエリ セッションがあります。 |
0xC0000BB8 (PDH_CSTATUS_NO_OBJECT) | 指定されたオブジェクトがシステム上に見つかりません。 |
0xC0000BB9 (PDH_CSTATUS_NO_COUNTER) | 指定されたカウンターが見つかりませんでした。 |
0xC0000BBA (PDH_CSTATUS_INVALID_DATA) | 返されたデータが無効です。 |
0xC0000BBB (PDH_MEMORY_ALLOCATION_FAILURE) | PDH 関数は、操作を完了するのに十分な一時メモリを割り当てませんでした。 一部のアプリケーションを閉じるか、ページ ファイルを拡張して関数を再試行します。 |
0xC0000BBC (PDH_INVALID_HANDLE) | このハンドルは有効な PDH オブジェクトではありません。 |
0xC0000BBD (PDH_INVALID_ARGUMENT) | 必須の引数が指定されていないか、正しくありません。 |
0xC0000BBE (PDH_FUNCTION_NOT_FOUND) | 指定した関数が見つかりません。 |
0xC0000BBF (PDH_CSTATUS_NO_COUNTERNAME) | カウンターが指定されませんでした。 |
0xC0000BC0 (PDH_CSTATUS_BAD_COUNTERNAME) | カウンター パスを解析できません。 指定したパスの形式と構文を確認します。 |
0xC0000BC1 (PDH_INVALID_BUFFER) | 呼び出し元によって渡されたバッファーが無効です。 |
0xC0000BC2 (PDH_INSUFFICIENT_BUFFER) | 要求されたデータは、指定されたバッファーよりも大きくなります。 要求されたデータを返すことができません。 |
0xC0000BC3 (PDH_CANNOT_CONNECT_MACHINE) | 要求されたコンピューターに接続できません。 |
0xC0000BC4 (PDH_INVALID_PATH) | 指定されたカウンター パスを解釈できませんでした。 |
0xC0000BC5 (PDH_INVALID_INSTANCE) | 指定したカウンター パスからインスタンス名を読み取れませんでした。 |
0xC0000BC6 (PDH_INVALID_DATA) | このデータは無効です。 |
0xC0000BC7 (PDH_NO_DIALOG_DATA) | ダイアログ ボックスのデータ ブロックが見つからないか、無効でした。 |
0xC0000BC8 (PDH_CANNOT_READ_NAME_STRINGS) | 指定したコンピューターからカウンターやヘルプ テキストを読み取ることができません。 |
0xC0000BC9 (PDH_LOG_FILE_CREATE_ERROR) | 指定したログ ファイルを作成できません。 |
0xC0000BCA (PDH_LOG_FILE_OPEN_ERROR) | 指定したログ ファイルを開くことができません。 |
0xC0000BCB (PDH_LOG_TYPE_NOT_FOUND) | 指定したログ ファイルの種類がこのシステムにインストールされていません。 |
0xC0000BCC (PDH_NO_MORE_DATA) | データはこれ以上ありません。 |
0xC0000BCD (PDH_ENTRY_NOT_IN_LOG_FILE) | 指定されたレコードがログ ファイルに見つかりませんでした。 |
0xC0000BCE (PDH_DATA_SOURCE_IS_LOG_FILE) | 指定されたデータ ソースはログ ファイルです。 |
0xC0000BCF (PDH_DATA_SOURCE_IS_REAL_TIME) | 指定したデータ ソースが現在のアクティビティです。 |
0xC0000BD0 (PDH_UNABLE_READ_LOG_HEADER) | ログ ファイル ヘッダーを読み取れませんでした。 |
0xC0000BD1 (PDH_FILE_NOT_FOUND) | 指定したファイルが見つかりません。 |
0xC0000BD2 (PDH_FILE_ALREADY_EXISTS) | 指定したファイル名を持つファイルが既に存在します。 |
0xC0000BD3 (PDH_NOT_IMPLEMENTED) | 参照される関数は実装されていません。 |
0xC0000BD4 (PDH_STRING_NOT_FOUND) | パフォーマンス名とヘルプ テキスト文字列の一覧で指定された文字列が見つかりません。 |
0x80000BD5 (PDH_UNABLE_MAP_NAME_FILES) | パフォーマンス カウンター名データ ファイルにマップできません。 データはレジストリから読み取られ、ローカルに格納されます。 |
0xC0000BD6 (PDH_UNKNOWN_LOG_FORMAT) | 指定されたログ ファイルの形式は、PDH DLL では認識されません。 |
0xC0000BD7 (PDH_UNKNOWN_LOGSVC_COMMAND) | 指定された Log Service コマンド値が認識されません。 |
0xC0000BD8 (PDH_LOGSVC_QUERY_NOT_FOUND) | ログ サービスから指定されたクエリが見つからなかったか、開けませんでした。 |
0xC0000BD9 (PDH_LOGSVC_NOT_OPENED) | パフォーマンス データ ログ サービス キーを開けませんでした。 これは、特権が不足しているか、サービスがインストールされていないことが原因である可能性があります。 |
0xC0000BDA (PDH_WBEM_ERROR) | WBEM データ ストアへのアクセス中にエラーが発生しました。 |
0xC0000BDB (PDH_ACCESS_DENIED) | 目的のコンピューターまたはサービスにアクセスできません。 監視対象のコンピューターまたはサービスに対するログ サービスまたは対話型ユーザー セッションのアクセス許可と認証を確認します。 |
0xC0000BDC (PDH_LOG_FILE_TOO_SMALL) | 指定されたログ ファイルの最大サイズが小さすぎて、選択したカウンターをログに記録しません。 このログ ファイルにはデータは記録されません。 ログに記録するカウンターのセットを小さくするか、ファイル サイズを大きくして、この呼び出しを再試行します。 |
0xC0000BDD (PDH_INVALID_DATASOURCE) | ODBC データソース名に接続できません。 |
0xC0000BDE (PDH_INVALID_SQLDB) | SQL Databaseには、Perfmon の有効なテーブル セットが含まれていません。 |
0xC0000BDF (PDH_NO_COUNTERS) | この Perfmon SQL ログ セットのカウンターが見つかりませんでした。 |
0xC0000BE0 (PDH_SQL_ALLOC_FAILED) | SQLAllocStmt の呼び出しが %1 で失敗しました。 |
0xC0000BE1 (PDH_SQL_ALLOCCON_FAILED) | SQLAllocConnect の呼び出しが %1 で失敗しました。 |
0xC0000BE2 (PDH_SQL_EXEC_DIRECT_FAILED) | SQLExecDirect の呼び出しが %1 で失敗しました。 |
0xC0000BE3 (PDH_SQL_FETCH_FAILED) | %1 で SQLFetch の呼び出しに失敗しました。 |
0xC0000BE4 (PDH_SQL_ROWCOUNT_FAILED) | %1 で SQLRowCount の呼び出しに失敗しました。 |
0xC0000BE5 (PDH_SQL_MORE_RESULTS_FAILED) | SQLMoreResults の呼び出しが %1 で失敗しました。 |
0xC0000BE6 (PDH_SQL_CONNECT_FAILED) | %1 で SQLConnect の呼び出しに失敗しました。 |
0xC0000BE7 (PDH_SQL_BIND_FAILED) | %1 で SQLBindCol の呼び出しに失敗しました。 |
0xC0000BE8 (PDH_CANNOT_CONNECT_WMI_SERVER) | 要求されたコンピューター上の WMI サーバーに接続できません。 |
0xC0000BE9 (PDH_PLA_COLLECTION_ALREADY_RUNNING) | コレクション "%1!s!" は既に実行されています。 |
0xC0000BEA (PDH_PLA_ERROR_SCHEDULE_OVERLAP) | 指定した開始時刻は終了時刻の後です。 |
0xC0000BEB (PDH_PLA_COLLECTION_NOT_FOUND) | コレクション "%1!s!" が存在しません。 |
0xC0000BEC (PDH_PLA_ERROR_SCHEDULE_ELAPSED) | 指定した終了時刻が既に経過しています。 |
0xC0000BED (PDH_PLA_ERROR_NOSTART) | コレクション "%1!s!" が開始されませんでした。エラーについては、アプリケーション イベント ログをチェックします。 |
0xC0000BEE (PDH_PLA_ERROR_ALREADY_EXISTS) | コレクション "%1!s!" は既に存在します。 |
0xC0000BEF (PDH_PLA_ERROR_TYPE_MISMATCH) | 設定の種類が一致しません。 |
0xC0000BF0 (PDH_PLA_ERROR_FILEPATH) | 指定された情報は、有効なパス名に解決されません。 |
0xC0000BF1 (PDH_PLA_SERVICE_ERROR) | "パフォーマンス ログ & アラート" サービスが応答しませんでした。 |
0xC0000BF2 (PDH_PLA_VALIDATION_ERROR) | 渡された情報が無効です。 |
0x80000BF3 (PDH_PLA_VALIDATION_WARNING) | 渡された情報が無効です。 |
0xC0000BF4 (PDH_PLA_ERROR_NAME_TOO_LONG) | 指定された名前が長すぎます。 |
0xC0000BF5 (PDH_INVALID_SQL_LOG_FORMAT) | SQL ログ形式が正しくありません。 正しい形式は です SQL:<DSN-name>!<LogSet-Name> 。 |
0xC0000BF6 (PDH_COUNTER_ALREADY_IN_QUERY) | PdhAddCounter 呼び出しのパフォーマンス カウンターは、パフォーマンス クエリに既に追加されています。 このカウンターは無視されます。 |
0xC0000BF7 (PDH_BINARY_LOG_CORRUPT) | 入力バイナリ ログ ファイルからカウンター情報とデータを読み取ることができません。 |
0xC0000BF8 (PDH_LOG_SAMPLE_TOO_SMALL) | 少なくとも 1 つの入力バイナリ ログ ファイルに含まれるデータ サンプルが 2 つ未満です。 |
0xC0000BF9 (PDH_OS_LATER_VERSION) | %1 という名前のコンピューター上のオペレーティング システムのバージョンが、ローカル コンピューターのバージョンより後のバージョンです。 この操作は、ローカル コンピューターからは使用できません。 |
0xC0000BFA (PDH_OS_EARLIER_VERSION) | %1 は %2 以降をサポートしています。 %3 という名前のコンピューターでオペレーティング システムのバージョンを確認します。 |
0xC0000BFB (PDH_INCORRECT_APPEND_TIME) | 出力ファイルには、追加するファイルよりも前のデータが含まれている必要があります。 |
0xC0000BFC (PDH_UNMATCHED_APPEND_COUNTER) | 追加するには、両方のファイルに同じカウンターが必要です。 |
0xC0000BFD (PDH_SQL_ALTER_DETAIL_FAILED) | SQL データベースの CounterDetail テーブル レイアウトを変更できません。 |
0xC0000BFE (PDH_QUERY_PERF_DATA_TIMEOUT) | システムがビジー状態です。 カウンター データを収集するときにタイムアウトが発生しました。 後で再試行するか、 CollectTime レジストリ値を増やしてください。 |