Функция IoSetHardErrorOrVerifyDevice (ntddk.h)
Драйверы нижнего уровня вызывают подпрограмму IoSetHardErrorOrVerifyDevice, чтобы определить съемный носитель, который столкнулся с ошибкой, чтобы драйвер файловой системы смог убедиться, что средний является допустимым.
Синтаксис
void IoSetHardErrorOrVerifyDevice(
[in] PIRP Irp,
[in] PDEVICE_OBJECT DeviceObject
);
Параметры
[in] Irp
Указатель на IRP, для которого драйвер столкнулся с ошибкой, вызванной пользователем.
[in] DeviceObject
Указатель на целевое устройство для проверки операции ввода-вывода.
Возвращаемое значение
Никакой
Замечания
Драйверы нижнего уровня для устройств удаления носителей должны вызывать IoSetHardErrorOrVerifyDevice перед завершением IRP, если вызов IoIsErrorUserInduced возвращает TRUE. Дополнительные сведения см. в поддержке съемных носителей.
Впоследствии драйвер файловой системы будет использовать сведения, предоставленные в указанном объекте устройства, для отправки диалогового окна пользователю, который может исправить ошибку и повторить операцию или отменить ее.
IRP, передаваемый в IoSetHardErrorOrVerifyDevice, должен быть связан с потоком. Таким образом, прежде чем драйвер вызывает IoSetHardErrorOrVerifyDevice, необходимо убедиться, что irp->Tail.Overlay. Поток не NULL. Если значение равно NULL, IoSetHardErrorOrVerifyDevice не следует вызывать с помощью текущего IRP. Вместо этого драйвер должен проверять все полученные и обработанные irps, пока не будет получено irp->Tail.Overlay. Поток не null. На этом этапе можно вызвать IoSetHardErrorOrVerifyDevice.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | ntddk.h (include Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <=DISPATCH_LEVEL |