IOCTL_EHSTOR_BANDMGMT_CREATE_BAND IOCTL (ehstorbandmgmt.h)

Las nuevas bandas se crean en un dispositivo de almacenamiento administrado por banda con la solicitud IOCTL_EHSTOR_BANDMGMT_CREATE_BAND . Se agrega una nueva banda a la tabla de entradas de banda, que incluye la ubicación de banda y las propiedades de seguridad.

Código principal

IRP_MJ_DEVICE_CONTROL

Búfer de entrada

El búfer de Irp-AssociatedIrp.SystemBuffer> debe contener una estructura de CREATE_BAND_PARAMETERS seguida de las estructuras de BAND_LOCATION_INFO, BAND_SECURITY_INFO y AUTH_KEY.

Si el miembro AuthKeyOffset de CREATE_BAND_PARAMETERS se establece en EHSTOR_BANDMGR_NO_KEY, los datos de entrada del búfer del sistema no necesitan incluir una estructura de AUTH_KEY .

Longitud del búfer de entrada

Parameters.DeviceIoControl.InputBufferLength indica el tamaño, en bytes, del búfer, que debe ser al menos sizeof (CREATE_BAND_PARAMETERS) + sizeof(BAND_LOCATION_INFO) + sizeof (BAND_SECURITY_INFO) + sizeof(AUTH_KEY).

Búfer de salida

El búfer de salida de Irp-AssociatedIrp.SystemBuffer> contiene opcionalmente un valor ULONG para el identificador de la banda recién creada.

Longitud del búfer de salida

Parameters.DeviceIoControl.OutputBufferLength debe tener al menos sizeof(ULONG) para recibir el identificador de banda. Si no se desea devolver el identificador de banda, establezca Parameters.DeviceIoControl.OutputBufferLength en 0.

Bloque de estado

Se puede devolver uno de los valores siguientes en el campo Estado .

Valor de estado Descripción
STATUS_SUCCESS Se creó la nueva banda.
STATUS_INVALID_DEVICE_REQUEST El dispositivo de almacenamiento no admite la administración de bandas.
STATUS_INVALID_BUFFER_SIZE El tamaño del búfer de entrada no es válido.
STATUS_INVALID_PARAMETER La información del búfer de entrada no es válida.
STATUS_CONFLICTING_ADDRESSES La banda no se creó debido a ubicaciones superpuestas.
STATUS_INSUFFICIENT_RESOURCES La banda no se creó porque la tabla de bandas ya está llena.
STATUS_IO_DEVICE_ERROR Error de comunicación. El dispositivo de almacenamiento podría ser incompatible con los protocolos de seguridad.

Comentarios

La asignación de una clave de autenticación a una banda recién creada es opcional. Si no se proporciona ninguna clave, donde AuthKeyOffset = EHSTOR_BANDMGR_NO_KEY en la estructura CREATE_BAND_PARAMETERS , se usa una clave de autenticación predeterminada. Sin embargo, esto deja a la banda vulnerable a otro autor de la llamada que puede tomar el control de la banda inmediatamente después de su creación cambiando su clave de autenticación. Se recomienda asignar una clave de autenticación no predeterminada a la banda en el momento de la creación.

Los cambios realizados en la tabla de bandas por esta solicitud se confirman en el dispositivo de forma atómica antes de que se complete la solicitud IOCTL. Por lo tanto, se garantiza que la banda se crea con todas sus propiedades establecidas o no creadas en absoluto si se produce un error de alimentación o sistema.

La ubicación de la nueva banda no debe superponerse con una banda existente o se producirá un error en esta solicitud con STATUS_CONFLICTING_ADDRESSES.

Si la banda está desbloqueada, los miembros ReadLock o WriteLock de BAND_SECURITY_INFO se establecen en FALSE y CREATEBAND_AUTHKEY_CACHING_ENABLED se establece en el miembro Flags de CREATE_BAND_PARAMETERS, se habilita el almacenamiento en caché de credenciales. El controlador de silo de autenticación almacenará en caché la clave de autenticación de banda en la memoria. Esto permite que el controlador de silo autentique automáticamente el acceso de host al dispositivo de almacenamiento cuando se requiera mantenimiento del volumen, como cambiar el tamaño de la banda.

Requisitos

Requisito Value
Cliente mínimo compatible Disponible a partir de Windows 8
Encabezado ehstorbandmgmt.h (incluya EhStorBandMgmt.h)

Consulte también

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS