IoSetHardErrorOrVerifyDevice 函数 (ntddk.h)

较低级别的驱动程序调用 IoSetHardErrorOrVerifyDevice 例程来标识遇到错误的可移动媒体设备,以便文件系统驱动程序可以提示用户验证介质是否有效。

语法

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

参数

[in] Irp

指向驱动程序遇到用户引起的错误的 IRP 的指针。

[in] DeviceObject

指向要验证 I/O 操作的目标设备的指针。

返回值

备注

如果对 IoIsErrorUserInduced 的调用返回 TRUE,则用于删除媒体设备的较低级别驱动程序必须在完成 IRP 之前调用 IoSetHardErrorOrVerifyDevice。 有关详细信息,请参阅 支持可移动媒体

随后,文件系统驱动程序将使用指定设备对象中提供的信息向用户发送对话框,用户可以更正错误并重试操作或取消该操作。

传递给 IoSetHardErrorOrVerifyDevice 的 IRP 必须与线程相关联。 因此,在驱动程序调用 IoSetHardErrorOrVerifyDevice 之前,它必须验证 irp-Tail.Overlay>线程不为 NULL。 如果值为 NULL,则不得使用当前 IRP 调用 IoSetHardErrorOrVerifyDevice 。 相反,驱动程序应检查随后接收和处理的所有 IRP,直到收到 irp-Tail.Overlay> 的 IRP。线程不为 NULL。 此时,可以调用 IoSetHardErrorOrVerifyDevice

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

另请参阅

IoIsErrorUserInduced

IoRaiseHardError

IoRaiseInformationalHardError