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
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) |