Функция IoRaiseInformationalHardError (ntddk.h)
Подпрограмма IoRaiseInformationalHardError отправляет пользователю диалоговое окно, предупреждая об ошибке ввода-вывода устройства, указывающей, почему произошел сбой запроса ввода-вывода пользователя.
Синтаксис
BOOLEAN IoRaiseInformationalHardError(
[in] NTSTATUS ErrorStatus,
[in, optional] PUNICODE_STRING String,
[in, optional] PKTHREAD Thread
);
Параметры
[in] ErrorStatus
Код состояния ошибки (IO_ERR_XXX).
[in, optional] String
Указатель на строку Юникода, которая предоставляет дополнительные сведения об ошибке. Для некоторых кодов состояния NT требуется строковый параметр, например имя файла или каталога. Если указанное значение ErrorStatus не требует строкового параметра, задайте для параметра String значение NULL.
[in, optional] Thread
Указатель на поток с ошибкой IRP из-за ошибки, указанной параметром ErrorStatus.
Возвращаемое значение
IoRaiseInformationalHardError возвращает TRUE, если диалоговое окно успешно в очереди. Эта подпрограмма возвращает значение FALSE если диалоговые окна отключены для потока, сбой выделения пула, слишком много диалоговых окон уже в очереди или эквивалентное диалоговое окно уже ожидает ответа пользователя (например, ожидание нажатия клавиши RETURN).
Замечания
IoRaiseInformationalHardError принимает системное значение ошибки NT в качестве параметра. Средства записи драйверов могут использовать API журнала событий для передачи определяемых драйвером строк событий пользователю.
IoRaiseInformationalHardError ведет себя следующим образом:
- Если вызывающая значение ErrorStatus не определено в файле заголовка Ntstatus.h, диалоговое окно всегда отображает текст "Неизвестная жесткая ошибка", независимо от значения параметра String.
- Если вызывающая значение ErrorStatus определена в файле заголовка Ntstatus.h, диалоговое окно отображает текст в соответствующей строке MessageText в Ntstatus.h независимо от значения параметра String.
- Если параметр потока указывает поток, выполняющийся в контексте приложения, текст, отображаемый в диалоговом окне, — "ApplicationName.exe - системная ошибка".
- Если параметр потока имеет значение NULL или указывает поток, выполняющийся в произвольном контексте системы, текст, показанный в диалоговом окне "Системный процесс — системная ошибка". Кроме того, если значение ErrorStatus определено в Ntstatus.h, соответствующая строка MessageText записывается в журнал событий.
Начиная с Windows Vista, если подпрограмма вызывается из потока в сеансе 0 (то есть из любого системного потока), диалоговое окно не отображается, когда подпрограмма завершается успешно и возвращает TRUE.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | ntddk.h (include Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=APC_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlIoApcLte(wdm) |