Condividi tramite


IOCTL_EHSTOR_BANDMGMT_CREATE_BAND IOCTL (ehstorbandmgmt.h)

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

Codice principale

IRP_MJ_DEVICE_CONTROL

Buffer di input

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

Se il membro AuthKeyOffset 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 deve 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> contiene facoltativamente un valore ULONG per l'identificatore della banda appena 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 della banda non è desiderata, impostare Parameters.DeviceIoControl.OutputBufferLength su 0.

Blocco dello stato

Uno dei valori seguenti può essere restituito nel campo Stato .

Valore 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 Le dimensioni del buffer di input non sono valide.
STATUS_INVALID_PARAMETER Le informazioni nel buffer di input non sono valide.
STATUS_CONFLICTING_ADDRESSES La band 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.

Commenti

L'assegnazione di una chiave di autenticazione a una banda appena creata è facoltativa. Se non viene fornita alcuna chiave, in cui viene usata una chiave di autenticazione predefinita in cui AuthKeyOffset = EHSTOR_BANDMGR_NO_KEY nella struttura CREATE_BAND_PARAMETERS . Tuttavia, questo lascia la banda vulnerabile a un altro chiamante che può prendere 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 eseguite con il 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 tutto il caso in cui si verifichi un sistema o un errore di alimentazione.

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

Se la banda viene sbloccata, i membri ReadLock o WriteLock di BAND_SECURITY_INFO sono impostati su FALSE e CREATEBAND_AUTHKEY_CACHING_ENABLED è impostato nel membro Flags 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.

Requisiti

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

Vedi anche

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS