次の方法で共有


IOCTL_EHSTOR_BANDMGMT_CREATE_BAND IOCTL (ehstorbandmgmt.h)

IOCTL_EHSTOR_BANDMGMT_CREATE_BAND 要求を使用して、バンド管理ストレージ デバイスに新しいバンドが作成されます。 新しいバンドがバンド エントリのテーブルに追加されます。これには、バンドの場所とセキュリティのプロパティが含まれます。

メジャー コード

IRP_MJ_DEVICE_CONTROL

入力バッファー

Irp->AssociatedIrp.SystemBuffer のバッファーには、CREATE_BAND_PARAMETERS 構造体の後に、BAND_LOCATION_INFOBAND_SECURITY_INFO、および AUTH_KEY 構造体が続く必要があります。

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

入力バッファーの長さ

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

出力バッファー

Irp->AssociatedIrp.SystemBuffer の出力バッファーには、必要に応じて、新しく作成されたバンドの識別子の ULONG 値が含まれます。

出力バッファーの長さ

Parameters.DeviceIoControl.OutputBufferLength は、バンド識別子を受信するには、少なくとも sizeof(ULONG) である必要があります。 バンド識別子の戻り値が不要な場合は、Parameters.DeviceIoControl.OutputBufferLength 0 に設定します。

状態ブロック

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

状態の値 形容
STATUS_SUCCESS 新しいバンドが作成されました。
STATUS_INVALID_DEVICE_REQUEST ストレージ デバイスは、バンド管理をサポートしていません。
STATUS_INVALID_BUFFER_SIZE 入力バッファー サイズが無効です。
STATUS_INVALID_PARAMETER 入力バッファー内の情報が無効です。
STATUS_CONFLICTING_ADDRESSES 場所が重なるためにバンドが作成されませんでした。
STATUS_INSUFFICIENT_RESOURCES バンド テーブルが既に満杯になっているため、バンドは作成されませんでした。
STATUS_IO_DEVICE_ERROR 通信に失敗しました。 ストレージ デバイスがセキュリティ プロトコルと互換性がない可能性があります。

備考

新しく作成されたバンドへの認証キーの割り当ては省略可能です。 CREATE_BAND_PARAMETERS 構造で AuthKeyOffset = EHSTOR_BANDMGR_NO_KEY キーが指定されていない場合は、既定の認証キーが使用されます。 ただし、これにより、認証キーを変更することで、作成直後にバンドを制御できる別の呼び出し元に対して、バンドが脆弱になります。 作成時に既定以外の認証キーをバンドに割り当てることをお勧めします。

この要求によってバンド テーブルに加えられた変更は、IOCTL 要求が完了する前に、デバイスにアトミックにコミットされます。 したがって、システムまたは電源障害が発生した場合に、すべてのプロパティが設定されているか、まったく作成されていない状態でバンドが作成されていることが保証されます。

新しいバンドの場所が既存のバンドと重複しないようにする必要があります。または、この要求はSTATUS_CONFLICTING_ADDRESSESで失敗します。

バンドのロックが解除されている場合、BAND_SECURITY_INFOReadLock または WriteLock メンバーが FALSE に設定され、CREATEBAND_AUTHKEY_CACHING_ENABLEDCREATE_BAND_PARAMETERSFlags メンバーに設定されている場合、資格情報のキャッシュが有効になります。 認証サイロ ドライバーは、バンド認証キーをメモリにキャッシュします。 これにより、サイロ ドライバーは、帯域のサイズ変更など、ボリュームメンテナンスが必要な場合に、ストレージ デバイスへのホスト アクセスを自動的に認証できます。

必要条件

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

関連項目

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS