次の方法で共有


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-Tail.Overlay> を受信するまで、その後に受信および処理されたすべての IRP をチェックする必要があります。スレッドが NULL ではありません。 その時点で、 IoSetHardErrorOrVerifyDevice を 呼び出すことができます。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム ユニバーサル
Header ntddk.h (Ntddk.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <=DISPATCH_LEVEL

こちらもご覧ください

IoIsErrorUserInduced

IoRaiseHardError

IoRaiseInformationalHardError