IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION control code

The location properties of bands in a band-managed storage device are modified with the IOCTL_EHSTOR_BANDMGMT_SET_BAND_LOCATION request.

Input Parameters

The buffer at Irp->AssociatedIrp.SystemBuffer must contain a SET_BAND_LOCATION_PARAMETERS structure followed by the AUTH_KEY and BAND_LOCATION_INFO structures. Parameters.DeviceIoControl.InputBufferLength indicates the size, in bytes, of the buffer, which must be at least sizeof (SET_BAND_LOCATION_PARAMETERS) + sizeof(AUTH_KEY) + sizeof(BAND_LOCATION_INFO).

If the AuthKeyOffset member of SET_BAND_LOCATION_PARAMETERS is set to EHSTOR_BANDMGR_NO_KEY, the input data in the system buffer need not include an AUTH_KEY structure.

Output Parameters

None.

I/O Status Block

One of the following values can be returned in the Status field.

Status ValueDescription
STATUS_SUCCESSThe location properties for the band were changed.
STATUS_INVALID_DEVICE_REQUESTThe storage device does not support band management.
STATUS_INVALID_BUFFER_SIZEThe input buffer size is invalid.
STATUS_INVALID_PARAMETERInformation in the input buffer is invalid.
STATUS_NOT_FOUNDThe band was not found for the selection criteria provided.
STATUS_ACCESS_DENIEDThe authentication key provided is not valid.
STATUS_IO_DEVICE_ERRORCommunication failed. The storage device might be incompatible with security protocols.

 

Remarks

Data in LBAs that remains after resizing is not modified by the operation. Also, it is unnecessary to unmount a volume during a resize operation if the LBA range that spans the volume remains within the band after resizing.

The changes made to the band table by this request are committed to the device atomically before the IOCTL request completes. Therefore, it is guaranteed that the band is modified with all of its properties set or no properties set at all should a system or power failure occur.

The BandSize member of BAND_LOCATION_INFO must be greater than 0. This IOCTL cannot resize a band to 0 to cause a band deletion. To delete a band, the IOCTL_EHSTOR_BANDMGMT_DELETE_BAND request is used.

If BAND_LOCATION_INFO specifies properties for the global band, BandStart must be set to 0 and BandSize must be set to –1.

Requirements

Version

Available starting with Windows 8

Header

EhStorBandMgmt.h (include EhStorBandMgmt.h)

See also

BAND_LOCATION_INFO
SET_BAND_LOCATION_PARAMETERS
IOCTL_EHSTOR_BANDMGMT_DELETE_BAND

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft