Freigeben über


IOCTL_EHSTOR_BANDMGMT_CREATE_BAND IOCTL (ehstorbandmgmt.h)

Neue Bänder werden auf einem bandverwalteten Speichergerät mit der IOCTL_EHSTOR_BANDMGMT_CREATE_BAND-Anforderung erstellt. Der Tabelle mit Bandeinträgen wird ein neues Band hinzugefügt, das Bandspeicherort und Sicherheitseigenschaften enthält.

Hauptcode

IRP_MJ_DEVICE_CONTROL

Eingabepuffer

Der Puffer bei Irp-AssociatedIrp.SystemBuffer> muss eine CREATE_BAND_PARAMETERS-Struktur gefolgt von den strukturen BAND_LOCATION_INFO, BAND_SECURITY_INFO und AUTH_KEY enthalten.

Wenn das AuthKeyOffset-Element von CREATE_BAND_PARAMETERS auf EHSTOR_BANDMGR_NO_KEY festgelegt ist, müssen die Eingabedaten im Systempuffer keine AUTH_KEY Struktur enthalten.

Eingabepufferlänge

Parameters.DeviceIoControl.InputBufferLength gibt die Größe des Puffers in Bytes an, die mindestens sizeof (CREATE_BAND_PARAMETERS) + sizeof(BAND_LOCATION_INFO) + sizeof (BAND_SECURITY_INFO) + sizeof(AUTH_KEY) sein muss.

Ausgabepuffer

Der Ausgabepuffer bei Irp-AssociatedIrp.SystemBuffer> enthält optional einen ULONG-Wert für den Bezeichner des neu erstellten Bandes.

Länge des Ausgabepuffers

Parameters.DeviceIoControl.OutputBufferLength muss mindestens sizeof(ULONG) aufweisen, um den Bandbezeichner zu empfangen. Wenn die Rückgabe des Bandbezeichners nicht gewünscht ist, legen Sie Parameters.DeviceIoControl.OutputBufferLength auf 0 fest.

Statusblock

Einer der folgenden Werte kann im Feld Status zurückgegeben werden.

Statuswert BESCHREIBUNG
STATUS_SUCCESS Die neue Band wurde gegründet.
STATUS_INVALID_DEVICE_REQUEST Das Speichergerät unterstützt keine Bandverwaltung.
STATUS_INVALID_BUFFER_SIZE Die Eingabepuffergröße ist ungültig.
STATUS_INVALID_PARAMETER Die Informationen im Eingabepuffer sind ungültig.
STATUS_CONFLICTING_ADDRESSES Die Band wurde aufgrund von überlappenden Speicherorten nicht erstellt.
STATUS_INSUFFICIENT_RESOURCES Die Band wurde nicht erstellt, da die Bandtabelle bereits voll ist.
STATUS_IO_DEVICE_ERROR Fehler bei der Kommunikation. Das Speichergerät ist möglicherweise nicht mit Sicherheitsprotokollen kompatibel.

Hinweise

Das Zuweisen eines Authentifizierungsschlüssels zu einem neu erstellten Band ist optional. Wenn kein Schlüssel angegeben wird und AuthKeyOffset = in der CREATE_BAND_PARAMETERS-StrukturEHSTOR_BANDMGR_NO_KEY, wird ein Standardauthentifizierungsschlüssel verwendet. Dadurch bleibt das Band jedoch anfällig für einen anderen Aufrufer, der die Kontrolle über das Band unmittelbar nach seiner Erstellung übernehmen kann, indem er seinen Authentifizierungsschlüssel ändert. Es wird empfohlen, dem Band zur Erstellungszeit einen nicht standardmäßigen Authentifizierungsschlüssel zuzuweisen.

Die von dieser Anforderung an der Bandtabelle vorgenommenen Änderungen werden auf das Gerät atomar übertragen, bevor die IOCTL-Anforderung abgeschlossen ist. Daher ist es garantiert, dass das Band mit allen eigenschaften erstellt oder gar nicht erstellt wird, wenn ein System- oder Stromausfall auftritt.

Der Speicherort des neuen Bandes darf sich nicht mit einem vorhandenen Band überlappen, sonst schlägt diese Anforderung mit STATUS_CONFLICTING_ADDRESSES fehl.

Wenn das Band entsperrt ist, werden entweder die ReadLock- oder WriteLock-Member von BAND_SECURITY_INFO auf FALSE festgelegt, und CREATEBAND_AUTHKEY_CACHING_ENABLED im Flags-Member von CREATE_BAND_PARAMETERS festgelegt ist, ist die Zwischenspeicherung von Anmeldeinformationen aktiviert. Der Authentifizierungssilotreiber speichert den Bandauthentifizierungsschlüssel im Arbeitsspeicher zwischen. Dadurch kann der Silotreiber den Hostzugriff auf das Speichergerät automatisch authentifizieren, wenn eine Volumewartung erforderlich ist, z. B. das Ändern der Bandgröße.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8
Kopfzeile ehstorbandmgmt.h (einschließlich EhStorBandMgmt.h)

Weitere Informationen

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS