IoRaiseInformationalHardError 関数 (ntddk.h)
IoRaiseInformationalHardError ルーチンは、ユーザーの I/O 要求が失敗した理由を示すデバイス I/O エラーに関する警告をユーザーに送信します。
構文
BOOLEAN IoRaiseInformationalHardError(
[in] NTSTATUS ErrorStatus,
[in, optional] PUNICODE_STRING String,
[in, optional] PKTHREAD Thread
);
パラメーター
[in] ErrorStatus
エラー状態コード (IO_ERR_XXX)。
[in, optional] String
エラーに関する追加情報を提供する Unicode 文字列へのポインター。 一部の NT 状態コードでは、ファイル名やディレクトリ名などの文字列パラメーターが必要です。 指定した ErrorStatus 値に文字列パラメーターが必要ない場合は、 String を NULL に設定します。
[in, optional] Thread
ErrorStatus パラメーターで指定されたエラーが原因で IRP が失敗したスレッドへのポインター。
戻り値
ダイアログ ボックスが正常にキューに入った場合、IoRaiseInformationalHardError はTRUE を返します。 スレッドに対してダイアログ ボックスが無効になっている場合、プールの割り当てに失敗した場合、既にキューに入っているダイアログ ボックスが多すぎる場合、または同等のダイアログ ボックスが既にユーザー応答を保留している (ユーザーが RETURN キーを押すのを待っているなど) 場合、このルーチンは FALSE を返します。
注釈
IoRaiseInformationalHardError は 、システム定義の NT エラー値をパラメーターとして受け取ります。 ドライバー ライターは、イベント ログ API を使用して、ドライバー定義のイベント文字列をユーザーに伝えることができます。
IoRaiseInformationalHardError は次のように動作します。
- 呼び出し元が指定した ErrorStatus 値が Ntstatus.h ヘッダー ファイルで定義されていない場合、ダイアログ ボックスには 文字列 パラメーター値に関係なく、常に "Unknown Hard Error" というテキストが表示されます。
- 呼び出し元が指定した ErrorStatus 値が Ntstatus.h ヘッダー ファイルで定義されている場合、ダイアログ ボックスには、 String パラメーター値に関係なく、Ntstatus.h の対応する MessageText 文字列のテキストが表示されます。
- Thread パラメーターがアプリケーションのコンテキストで実行されているスレッドを指定する場合、ダイアログ ボックスに表示されるテキストは "ApplicationName.exe - システム エラー" です。
- Thread パラメーターが NULL の場合、または任意のシステム コンテキストで実行されているスレッドを指定している場合、ダイアログ ボックスに表示されるテキストは "System Process - System Error" です。 さらに、 ErrorStatus 値が Ntstatus.h で定義されている場合は、対応する MessageText 文字列がイベント ログに書き込まれます。
Windows Vista 以降では、セッション 0 のスレッド (つまり、任意のシステム スレッドから) からルーチンが呼び出された場合、ルーチンが成功して TRUE を返したときにダイアログ ボックスは表示されません。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntddk.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), IrqlIoApcLte(wdm) |