较低级别的驱动程序调用 IoSetHardErrorOrVerifyDevice 例程来标识遇到错误的可移动媒体设备,以便文件系统驱动程序可以提示用户验证介质是否有效。
语法
VOID IoSetHardErrorOrVerifyDevice(
[in] PIRP Irp,
[in] PDEVICE_OBJECT DeviceObject
);
参数
[in] Irp
指向驱动程序遇到用户诱发错误的 IRP 的指针。
[in] DeviceObject
指向要验证的 I/O作的目标设备的指针。
返回值
没有
言论
如果调用 IoIsErrorUserInduced返回 TRUE,则删除媒体设备的较低级别驱动程序必须在完成 IRP 之前调用 IoSetHardErrorOrVerifyDevice。 有关详细信息,请参阅 支持可移动媒体。
随后,文件系统驱动程序将使用指定设备对象中提供的信息向用户发送对话框,用户可以更正错误并重试作或取消该作。
传递给 IoSetHardErrorVerifyDevice 的 IRP 必须与线程相关联。 因此,在驱动程序调用 IoSetHardErrorVerifyDevice之前,它必须验证 irp->Tail.Overlay。线程不 NULL。 如果 值为 NULL,则 IoSetHardErrorOrVerifyDevice 不得使用当前 IRP 调用。 相反,驱动程序应检查随后接收和处理的所有 IRP,直到收到一个 irp ->Tail.Overlayirp。线程不 NULL。 此时,可以调用 IoSetHardErrorOrVerifyDevice。
要求
| 要求 | 价值 |
|---|---|
| 最低支持的客户端 | 从 Windows 2000 开始可用。 |
| 目标平台 | 普遍 |
| 标头 | ntddk.h (包括 Ntddk.h) |
| 库 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | <=DISPATCH_LEVEL |