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 enthalten, gefolgt von den Strukturen BAND_LOCATION_INFO, BAND_SECURITY_INFOund AUTH_KEY.

Wenn das AuthKeyOffset- element von CREATE_BAND_PARAMETERS auf EHSTOR_BANDMGR_NO_KEYfestgelegt 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 Größe der (CREATE_BAND_PARAMETERS) + Größe von(BAND_LOCATION_INFO) + Größe von (BAND_SECURITY_INFO) + Größe des(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 Größe(ULONG) sein, um den Bandbezeichner zu erhalten. 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 erstellt.
STATUS_INVALID_DEVICE_REQUEST Das Speichergerät unterstützt keine Bandverwaltung.
STATUS_INVALID_BUFFER_SIZE Die Größe des Eingabepuffers ist ungültig.
STATUS_INVALID_PARAMETER Die Informationen im Eingabepuffer sind ungültig.
STATUS_CONFLICTING_ADDRESSES Das Band wurde aufgrund überlappender Speicherorte nicht erstellt.
STATUS_INSUFFICIENT_RESOURCES Das Band wurde nicht erstellt, da die Bandtabelle bereits voll ist.
STATUS_IO_DEVICE_ERROR Kommunikationsfehler. Das Speichergerät ist möglicherweise nicht mit Sicherheitsprotokollen kompatibel.

Bemerkungen

Das Zuweisen eines Authentifizierungsschlüssels zu einem neu erstellten Band ist optional. Wenn kein Schlüssel bereitgestellt wird, wobei AuthKeyOffset in der CREATE_BAND_PARAMETERS-Struktur = EHSTOR_BANDMGR_NO_KEY, wird ein Standardauthentifizierungsschlüssel verwendet. Dadurch bleibt das Band jedoch anfällig für einen anderen Anrufer, der die Kontrolle über das Band direkt 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 Änderungen, die an der Bandtabelle dieser Anforderung vorgenommen wurden, werden dem Gerät atomisch zugesichert, bevor die IOCTL-Anforderung abgeschlossen ist. Daher wird sichergestellt, dass das Band mit allen zugehörigen Eigenschaften erstellt oder gar nicht erstellt wird, wenn ein System- oder Stromausfall auftritt.

Der Speicherort des neuen Bandes darf nicht mit einem vorhandenen Band überlappen, oder diese Anforderung schlägt 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_PARAMETERSfestgelegt ist, ist die Zwischenspeicherung von Anmeldeinformationen aktiviert. Der Authentifizierungssilostreiber speichert den Bandauthentifizierungsschlüssel im Arbeitsspeicher zwischen. Auf diese Weise kann der Silotreiber den Hostzugriff auf das Speichergerät automatisch authentifizieren, wenn die Volumewartung erforderlich ist, z. B. das Ändern der Größe des Bandes.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8
Header- ehstorbandmgmt.h (einschließlich EhStorBandMgmt.h)

Siehe auch

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS