Поделиться через


Функция IoSetHardErrorOrVerifyDevice (ntddk.h)

Драйверы более низкого уровня вызывают подпрограмму IoSetHardErrorOrVerifyDevice , чтобы определить съемный носитель, на который произошла ошибка, чтобы драйвер файловой системы смог предложить пользователю проверить допустимость носителя.

Синтаксис

void IoSetHardErrorOrVerifyDevice(
  [in] PIRP           Irp,
  [in] PDEVICE_OBJECT DeviceObject
);

Параметры

[in] Irp

Указатель на IRP, для которого драйвер обнаружил ошибку, вызванную пользователем.

[in] DeviceObject

Указатель на целевое устройство, которое необходимо проверить для операции ввода-вывода.

Возвращаемое значение

None

Remarks

Низкоуровневые драйверы для устройств удаления носителей должны вызывать IoSetHardErrorOrVerifyDevice перед завершением IRP, если вызов IoIsErrorUserInduced возвращает значение TRUE. Дополнительные сведения см. в разделе Поддержка съемных носителей.

Впоследствии драйвер файловой системы будет использовать сведения, предоставленные в указанном объекте устройства, для отправки диалогового окна пользователю, который может исправить ошибку и повторить операцию или отменить ее.

IRP, переданный в IoSetHardErrorOrVerifyDevice , должен быть связан с потоком. Таким образом, прежде чем драйвер вызывает IoSetHardErrorOrVerifyDevice, он должен убедиться, что irp-Tail.Overlay>. Поток не равен NULL. Если значение равно NULL, метод IoSetHardErrorOrVerifyDevice не должен вызываться с помощью текущего IRP. Вместо этого драйвер должен проверка все irP, полученные и обработанные, пока не будет получена одна из них, для которой irp-Tail.Overlay>. Поток не равен NULL. На этом этапе можно вызвать IoSetHardErrorOrVerifyDevice .

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

См. также раздел

IoIsErrorUserInduced

IoRaiseHardError

IoRaiseInformationalHardError