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