IOCTL_EHSTOR_BANDMGMT_CREATE_BAND IOCTL (ehstorbandmgmt.h)

Novas faixas são criadas em um dispositivo de armazenamento gerenciado por banda com a solicitação IOCTL_EHSTOR_BANDMGMT_CREATE_BAND . Uma nova banda é adicionada à tabela de entradas de banda, que inclui o local da banda e as propriedades de segurança.

Código principal

IRP_MJ_DEVICE_CONTROL

Buffer de entrada

O buffer em Irp-AssociatedIrp.SystemBuffer> deve conter uma estrutura CREATE_BAND_PARAMETERS seguida pelas estruturas BAND_LOCATION_INFO, BAND_SECURITY_INFO e AUTH_KEY.

Se o membro AuthKeyOffset do CREATE_BAND_PARAMETERS estiver definido como EHSTOR_BANDMGR_NO_KEY, os dados de entrada no buffer do sistema não precisarão incluir uma estrutura AUTH_KEY .

Comprimento do buffer de entrada

Parameters.DeviceIoControl.InputBufferLength indica o tamanho, em bytes, do buffer, que deve ser pelo menos sizeof (CREATE_BAND_PARAMETERS) + sizeof(BAND_LOCATION_INFO) + sizeof (BAND_SECURITY_INFO) + sizeof(AUTH_KEY).

Buffer de saída

O buffer de saída em Irp-AssociatedIrp.SystemBuffer> contém opcionalmente um valor ULONG para o identificador da banda recém-criada.

Comprimento do buffer de saída

Parameters.DeviceIoControl.OutputBufferLength deve ser pelo menos sizeof(ULONG) para receber o identificador de banda. Se o retorno do identificador de banda não for desejado, defina Parameters.DeviceIoControl.OutputBufferLength como 0.

Bloco de status

Um dos valores a seguir pode ser retornado no campo Status .

Valor do status Descrição
STATUS_SUCCESS A nova banda foi criada.
STATUS_INVALID_DEVICE_REQUEST O dispositivo de armazenamento não dá suporte ao gerenciamento de banda.
STATUS_INVALID_BUFFER_SIZE O tamanho do buffer de entrada é inválido.
STATUS_INVALID_PARAMETER As informações no buffer de entrada são inválidas.
STATUS_CONFLICTING_ADDRESSES A banda não foi criada devido a locais sobrepostos.
STATUS_INSUFFICIENT_RESOURCES A banda não foi criada porque a tabela da banda já está cheia.
STATUS_IO_DEVICE_ERROR Falha na comunicação. O dispositivo de armazenamento pode ser incompatível com protocolos de segurança.

Comentários

Atribuir uma chave de autenticação a uma banda recém-criada é opcional. Se nenhuma chave for fornecida, em que AuthKeyOffset = EHSTOR_BANDMGR_NO_KEY na estrutura CREATE_BAND_PARAMETERS , uma chave de autenticação padrão será usada. No entanto, isso deixa a banda vulnerável a outro chamador que pode assumir o controle sobre a banda imediatamente após sua criação alterando sua chave de autenticação. É recomendável atribuir uma chave de autenticação não padrão à banda no momento da criação.

As alterações feitas na tabela de banda por essa solicitação são confirmadas no dispositivo atomicamente antes da conclusão da solicitação IOCTL. Portanto, é garantido que a banda seja criada com todas as suas propriedades definidas ou não sejam criadas caso ocorra uma falha de energia ou sistema.

O local da nova banda não deve se sobrepor a uma banda existente ou essa solicitação falhará com STATUS_CONFLICTING_ADDRESSES.

Se a banda estiver desbloqueada, os membros ReadLock ou WriteLock de BAND_SECURITY_INFO serão definidos como FALSE e CREATEBAND_AUTHKEY_CACHING_ENABLED será definido no membro Flags de CREATE_BAND_PARAMETERS, o cache de credenciais será habilitado. O driver de silo de autenticação armazenará em cache a chave de autenticação de banda na memória. Isso permite que o driver de silo autentique automaticamente o acesso de host ao dispositivo de armazenamento quando a manutenção de volume é necessária, como redimensionar a banda.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8
Cabeçalho ehstorbandmgmt.h (inclua EhStorBandMgmt.h)

Confira também

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS