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