IOCTL_STORAGE_CHECK_VERIFY IOCTL (ntddstor.h)
呼び出し元が読み取りまたは書き込みアクセス用に開いたリムーバブル メディア デバイスでメディアが変更されたかどうかを判断します。 デバイスへの読み取りまたは書き込みアクセス権が不要な場合、呼び出し元は、FILE_READ_ATTRIBUTESを使用してデバイスを開き、代わりにIOCTL_STORAGE_CHECK_VERIFY2 要求を発行することで、パフォーマンスを向上させることができます。
詳細については、「 リムーバブル メディアのサポート」を参照してください。
メジャー コード
[入力バッファー]
[なし] :
入力バッファーの長さ
[なし] :
出力バッファー
必要に応じて、ディスクおよび CD-ROM デバイスの 場合、Irp-AssociatedIrp.SystemBuffer> は 、メディア変更数を受信するバッファーを指します。 ドライバーは、 Parameters.DeviceIoControl.OutputBufferLength が 0 以外で、戻り値がSTATUS_SUCCESS場合にのみ、このバッファーを入力します。 メディア変更数は、ドライバーの起動後にメディアが変更された回数を示す ULONG です。
それ以外の場合、この要求には出力がありません。
出力バッファーの長さ
必要に応じて、ディスクおよび CD-ROM デバイスの場合、IRP の I/O スタックの場所にある Parameters.DeviceIoControl.OutputBufferLength は、バッファーのサイズ (バイト単位) を示します。バッファーのサイズは >= sizeof(ULONG) である必要があります。 省略可能なバッファーが指定されていない場合、このフィールドは 0 です。
それ以外の場合、この要求には入力がありません。
ステータス ブロック
ディスクまたは CD-ROM ドライバーがメディアが変更されたことを示していない場合、ドライバーは [状態] フィールドをSTATUS_SUCCESSに設定します。 さらに、オプションのメディア変更バッファーが指定されている場合、ドライバーは Irp-AssociatedIrp.SystemBuffer> のバッファー内のメディア変更数を返し、Information フィールドを sizeof(ULONG) に設定します。 オプションのメディア変更バッファーが指定されていない場合、ドライバーは Information を 0 に設定します。
メディアが変更されたことがドライバーによって検出され、ボリュームがマウントされている (VPB でVPB_MOUNTED設定されている) 場合は、次のことが必要です。
- [情報] を 0 に設定します。
- [状態] を [STATUS_VERIFY_REQUIRED] に設定します。
- DeviceObject でDO_VERIFY_VOLUME フラグを設定 します。
- 入力 IRP を使用して IoCompleteRequest を呼び出します。
- [状態] を [STATUS_IO_DEVICE_ERROR] に設定します。
- [情報] を 0 に設定します。
- IRP を使用して IoCompleteRequest を呼び出します。
テープ ドライバーの場合、[ 情報 ] フィールドは 0 に設定され、[ 状態] フィールドはSTATUS_SUCCESSに設定され、場合によっては STATUS_VERIFY_REQUIREDに設定されます。
要件
要件 | 値 |
---|---|
Header | ntddstor.h (Ntddstor.h を含む) |