Condividi tramite


IOCTL_EHSTOR_BANDMGMT_CREATE_BAND IOCTL (ehstorbandmgmt.h)

Le nuove bande vengono create in un dispositivo di archiviazione gestito da banda con la richiesta di IOCTL_EHSTOR_BANDMGMT_CREATE_BAND. Una nuova banda viene aggiunta alla tabella delle voci di banda, che include la posizione della banda e le proprietà di sicurezza.

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

Il buffer in corrispondenza di Irp->AssociatedIrp.SystemBuffer deve contenere una struttura CREATE_BAND_PARAMETERS seguita dalle strutture BAND_LOCATION_INFO, BAND_SECURITY_INFOe AUTH_KEY.

Se il AuthKeyOffset membro di CREATE_BAND_PARAMETERS è impostato su EHSTOR_BANDMGR_NO_KEY, i dati di input nel buffer di sistema non devono includere una struttura AUTH_KEY.

Lunghezza del buffer di input

Parameters.DeviceIoControl.InputBufferLength indica le dimensioni, in byte, del buffer, che devono essere almeno sizeof (CREATE_BAND_PARAMETERS) + sizeof(BAND_LOCATION_INFO) + sizeof (BAND_SECURITY_INFO) + sizeof(AUTH_KEY).

Buffer di output

Il buffer di output in Irp->AssociatedIrp.SystemBuffer facoltativamente contiene un valore ULONG per l'identificatore della nuova banda creata.

Lunghezza del buffer di output

Parameters.DeviceIoControl.OutputBufferLength deve essere almeno sizeof(ULONG) per ricevere l'identificatore della banda. Se la restituzione dell'identificatore di banda non è desiderata, impostare Parameters.DeviceIoControl.OutputBufferLength su 0.

Blocco di stato

È possibile restituire uno dei valori seguenti nel campo Stato.

Valore di stato Descrizione
STATUS_SUCCESS La nuova band è stata creata.
STATUS_INVALID_DEVICE_REQUEST Il dispositivo di archiviazione non supporta la gestione della banda.
STATUS_INVALID_BUFFER_SIZE La dimensione del buffer di input non è valida.
STATUS_INVALID_PARAMETER Le informazioni nel buffer di input non sono valide.
STATUS_CONFLICTING_ADDRESSES La banda non è stata creata a causa di posizioni sovrapposte.
STATUS_INSUFFICIENT_RESOURCES La band non è stata creata perché la tabella band è già piena.
STATUS_IO_DEVICE_ERROR Comunicazione non riuscita. Il dispositivo di archiviazione potrebbe non essere compatibile con i protocolli di sicurezza.

Osservazioni

L'assegnazione di una chiave di autenticazione a una nuova banda creata è facoltativa. Se non viene specificata alcuna chiave, dove AuthKeyOffset = EHSTOR_BANDMGR_NO_KEY nella struttura CREATE_BAND_PARAMETERS, viene usata una chiave di autenticazione predefinita. Tuttavia, questo lascia la banda vulnerabile a un altro chiamante che può assumere il controllo sulla banda immediatamente dopo la sua creazione modificando la chiave di autenticazione. È consigliabile assegnare una chiave di autenticazione non predefinita alla banda in fase di creazione.

Le modifiche apportate alla tabella band da questa richiesta vengono sottoposte al commit atomico del dispositivo prima del completamento della richiesta IOCTL. Pertanto, è garantito che la banda venga creata con tutte le relative proprietà impostate o non create in tutti i caso in cui si verifichi un sistema o un guasto di alimentazione.

La posizione della nuova banda non deve sovrapporsi a una banda esistente o la richiesta avrà esito negativo con STATUS_CONFLICTING_ADDRESSES.

Se la banda viene sbloccata, i ReadLock o WriteLock membri di BAND_SECURITY_INFO sono impostati su FALSE e CREATEBAND_AUTHKEY_CACHING_ENABLED viene impostato nel Flag membro di CREATE_BAND_PARAMETERS, la memorizzazione nella cache delle credenziali è abilitata. Il driver silo di autenticazione memorizza nella cache la chiave di autenticazione della banda in memoria. Ciò consente al driver silo di autenticare automaticamente l'accesso host al dispositivo di archiviazione quando è necessaria la manutenzione del volume, ad esempio il ridimensionamento della banda.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 8
intestazione ehstorbandmgmt.h (include EhStorBandMgmt.h)

Vedere anche

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS