IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS control code
This IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS request is sent to retrieve the list of bands for a storage device under band management. Banding information is returned in a table of band entries that includes band location and security properties.
The buffer at Irp->AssociatedIrp.SystemBuffer must contain an ENUMERATE_BANDS_PARAMETERS structure. Parameters.DeviceIoControl.InputBufferLength indicates the size, in bytes, of the buffer, which must be at least sizeof (ENUMERATE_BANDS_PARAMETERS).
The buffer at Irp->AssociatedIrp.SystemBuffer contains a BAND_TABLE structure followed by BandTableEntryCount band entries.
The Information field contains the number of bytes returned in the output buffer. One of the following values can be returned in the Status field.
|STATUS_SUCCESS||Security features on the storage device were deactivated.|
|STATUS_INVALID_DEVICE_REQUEST||The storage device does not support band management.|
|STATUS_INVALID_BUFFER_SIZE||The input buffer size is invalid.|
|STATUS_INVALID_PARAMETER||Information in the input buffer is invalid.|
|STATUS_NOT_FOUND||No bands are configured for the enumeration parameters provided.|
|STATUS_BUFFER_OVERFLOW||A buffer is not provided or its size set to zero. The required size is returned in the Information field.|
|STATUS_IO_DEVICE_ERROR||Communication failed. The storage device might be incompatible with security protocols.|
|STATUS_BUFFER_TOO_SMALL||The output buffer supplied is not large enough to hold the output data returned.|
A driver or application can query for the necessary output buffer size by setting the output buffer for the request to NULL and the output size to 0. The IOCTL_EHSTOR_BANDMGMT_ENUMERATE_BANDS request will return with the Status field of the IoStatus block set to STATUS_BUFFER_OVERFLOW and the Information field will contain the required buffer size.
|Available starting with Windows 8.|