次の方法で共有


IOCTL_DISK_REASSIGN_BLOCKS IOCTL (ntdddisk.h)

不良ブロックをディスク上の新しい場所にマップします。 この要求は、不適切なブロック アドレスをスペア ブロック プールから適切なブロックに再割り当てするようにデバイスに指示します。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

Irp->AssociatedIrp.SystemBuffer のバッファーには、設定する REASSIGN_BLOCKS 値が含まれています。 この構造体には、ブロック番号の可変サイズの配列が含まれていることに注意してください。 ブロック番号の配列が昇順で並べ替えられていることを確認するのは呼び出し元の責任です。

入力バッファーの長さ

IRP の I/O スタック位置にある Parameters.DeviceIoControl.InputBufferLength は、バッファーのサイズ (バイト単位) を示します。バッファーのサイズは、>= sizeof(REASSIGN_BLOCKS) である必要があります。

出力バッファー

何一つ。

出力バッファーの長さ

何一つ。

状態ブロック

情報 フィールドは 0 に設定されます。 状態 フィールドは、STATUS_SUCCESSに設定することも、場合によってはSTATUS_INFO_LENGTH_MISMATCH、STATUS_INSUFFICIENT_RESOURCES、またはSTATUS_BUFFER_TOO_SMALLに設定することもできます。

必要条件

要件 価値
ヘッダー ntdddisk.h (Ntdddisk.h を含む)

関連項目

REASSIGN_BLOCKS