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


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

См. также

IoIsErrorUserInduced

IoRaiseHardError

IoRaiseInformationalHardError