Функция 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 |