次の方法で共有


IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION IOCTL (ehstorbandmgmt.h)

バンド管理ストレージ デバイス内のバンドの場所プロパティは、IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION 要求で変更されます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

Irp->AssociatedIrp.SystemBuffer のバッファーには、SET_BAND_LOCATION_PARAMETERS 構造体の後に AUTH_KEYBAND_LOCATION_INFO 構造体が含まれている必要があります。

SET_BAND_LOCATION_PARAMETERSAuthKeyOffset メンバーが EHSTOR_BANDMGR_NO_KEYに設定されている場合、システム バッファー内の入力データに AUTH_KEY 構造体を含める必要はありません。

入力バッファーの長さ

Parameters.DeviceIoControl.InputBufferLength は、バッファーのサイズ (バイト単位) を示します。これは、少なくとも sizeof (SET_BAND_LOCATION_PARAMETERS) + sizeof(AUTH_KEY) + sizeof(BAND_LOCATION_INFO) である必要があります。

出力バッファー

何一つ。

出力バッファーの長さ

何一つ。

状態ブロック

Status フィールドには、次のいずれかの値が返されます。

状態の値 形容
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_INFOBandSize メンバーは 0 より大きい必要があります。 この IOCTL では、バンドのサイズを 0 に変更してバンドを削除することはできません。 バンドを削除するには、IOCTL_EHSTOR_BANDMGMT_DELETE_BAND 要求が使用されます。

BAND_LOCATION_INFO でグローバル バンドのプロパティを指定する場合は、BandStart を 0 に設定し、BandSize を –1 に設定する必要があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 8 以降で使用可能
ヘッダー ehstorbandmgmt.h (EhStorBandMgmt.h を含む)

関連項目

BAND_LOCATION_INFO

IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

SET_BAND_LOCATION_PARAMETERS