IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION IOCTL (ehstorbandmgmt.h)
バンド管理ストレージ デバイス内のバンドの場所プロパティは、 IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION 要求で変更されます。
メジャー コード
[入力バッファー]
Irp-AssociatedIrp.SystemBuffer の>バッファーには、SET_BAND_LOCATION_PARAMETERS構造体の後にAUTH_KEYとBAND_LOCATION_INFO構造体が含まれている必要があります。
SET_BAND_LOCATION_PARAMETERS の AuthKeyOffset メンバーがEHSTOR_BANDMGR_NO_KEYに設定されている場合、システム バッファー内の入力データにAUTH_KEY構造体を含める必要はありません。
入力バッファーの長さ
Parameters.DeviceIoControl.InputBufferLength は、バッファーのサイズ (バイト単位) を示します。これは、少なくとも sizeof (SET_BAND_LOCATION_PARAMETERS) + sizeof(AUTH_KEY) + sizeof(BAND_LOCATION_INFO) である必要があります。
出力バッファー
[なし] :
出力バッファーの長さ
[なし] :
ステータス ブロック
[状態] フィールドには、次のいずれかの値を返すことができます。
状態の値 | 説明 |
---|---|
STATUS_SUCCESS | バンドの場所のプロパティが変更されました。 |
STATUS_INVALID_DEVICE_REQUEST | ストレージ デバイスは、バンド管理をサポートしていません。 |
STATUS_INVALID_BUFFER_SIZE | 入力バッファー のサイズが無効です。 |
STATUS_INVALID_PARAMETER | 入力バッファー内の情報が無効です。 |
STATUS_NOT_FOUND | 指定された選択基準に対してバンドが見つかりませんでした。 |
STATUS_ACCESS_DENIED | 指定された認証キーが無効です。 |
STATUS_IO_DEVICE_ERROR | 通信に失敗しました。 ストレージ デバイスがセキュリティ プロトコルと互換性がない可能性があります。 |
注釈
サイズ変更後に残っている LBA 内のデータは、操作によって変更されません。 また、サイズ変更操作中に、ボリュームにまたがる LBA 範囲がサイズ変更後もバンド内に残っている場合は、ボリュームのマウントを解除する必要がありません。
この要求によってバンド テーブルに加えられた変更は、IOCTL 要求が完了する前に、デバイスにアトミックにコミットされます。 したがって、システムまたは電源障害が発生した場合は、すべてのプロパティが設定されているか、プロパティがまったく設定されていない状態でバンドが変更されていることが保証されます。
BAND_LOCATION_INFOの BandSize メンバーは 0 より大きくする必要があります。 この IOCTL では、バンドのサイズを 0 に変更してバンドを削除することはできません。 バンドを削除するには、 IOCTL_EHSTOR_BANDMGMT_DELETE_BAND 要求が使用されます。
BAND_LOCATION_INFOでグローバル バンドのプロパティを指定する場合は、BandStart を 0 に設定し、BandSize を –1 に設定する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 8 以降で使用可能 |
Header | ehstorbandmgmt.h (EhStorBandMgmt.h を含む) |