Disk Management Control Codes

The following table identifies the control codes that are used in disk management.

In this section

Control Code Description
IOCTL_DISK_ARE_VOLUMES_READY
Waits for all volumes on the specified disk to be ready for use.
IOCTL_DISK_CREATE_DISK
Initializes the specified disk and disk partition table using the information in the CREATE_DISK structure.
IOCTL_DISK_DELETE_DRIVE_LAYOUT
Removes the boot signature from the master boot record, so that the disk will be formatted from sector zero to the end of the disk.
IOCTL_DISK_FORMAT_TRACKS
Formats a specified, contiguous set of tracks on a floppy disk. To provide additional parameters, use IOCTL_DISK_FORMAT_TRACKS_EX instead.
IOCTL_DISK_FORMAT_TRACKS_EX
Formats a specified, contiguous set of tracks on a floppy disk.
IOCTL_DISK_GET_CACHE_INFORMATION
Retrieves the disk cache configuration data.
IOCTL_DISK_GET_CLUSTER_INFO
Retrieves the attributes of the specified disk device.
IOCTL_DISK_GET_DISK_ATTRIBUTES
Retrieves the attributes of the specified disk device.
IOCTL_DISK_GET_DRIVE_GEOMETRY
Retrieves information about the physical disk's geometry: type, number of cylinders, tracks per cylinder, sectors per track, and bytes per sector.
IOCTL_DISK_GET_DRIVE_GEOMETRY_EX
Retrieves extended information about the physical disk's geometry: type, number of cylinders, tracks per cylinder, sectors per track, and bytes per sector.
IOCTL_DISK_GET_DRIVE_LAYOUT
Retrieves information for each entry in the partition tables for a disk.
IOCTL_DISK_GET_DRIVE_LAYOUT_EX
Retrieves extended information for each entry in the partition tables for a disk.
IOCTL_DISK_GET_LENGTH_INFO
Retrieves the length of the specified disk, volume, or partition.
IOCTL_DISK_GET_PARTITION_INFO
Retrieves information about the type, size, and nature of a disk partition.
IOCTL_DISK_GET_PARTITION_INFO_EX
Retrieves extended information about the type, size, and nature of a disk partition.
IOCTL_DISK_GROW_PARTITION
Enlarges the specified partition.
IOCTL_DISK_IS_WRITABLE
Determines whether the specified disk is writable.
IOCTL_DISK_PERFORMANCE
Enables performance counters that provide disk performance information.
IOCTL_DISK_PERFORMANCE_OFF
Disables the performance counters that provide disk performance information.
IOCTL_DISK_REASSIGN_BLOCKS
Directs the disk device to map one or more blocks to its spare-block pool.
IOCTL_DISK_REASSIGN_BLOCKS_EX
Directs the disk device to map one or more blocks to its spare-block pool.
IOCTL_DISK_RESET_SNAPSHOT_INFO
Clears all Volume Shadow Copy Service (VSS) hardware-based shadow copy (also called "snapshot") information from the disk.
To perform this operation, call the DeviceIoControl function with the following parameters.
IOCTL_DISK_SET_CACHE_INFORMATION
Sets the disk configuration data.
IOCTL_DISK_SET_CLUSTER_INFO
Sets the cluster information on a disk.
IOCTL_DISK_SET_DISK_ATTRIBUTES
Sets the attributes of the specified disk device.
IOCTL_DISK_SET_DRIVE_LAYOUT
Partitions a disk as specified by drive layout and partition information data.
IOCTL_DISK_SET_DRIVE_LAYOUT_EX
Partitions a disk according to the specified drive layout and partition information data.
IOCTL_DISK_SET_PARTITION_INFO
Sets partition information for the specified disk partition.
IOCTL_DISK_SET_PARTITION_INFO_EX
Sets partition information for the specified disk partition, including layout information for AT and EFI (Extensible Firmware Interface) partitions.
IOCTL_DISK_UPDATE_PROPERTIES
Invalidates the cached partition table and re-enumerates the device.
IOCTL_DISK_VERIFY
Verifies the specified extent on a fixed disk.
IOCTL_STORAGE_DEVICE_POWER_CAP
Windows applications can use this control code to specify a maximum operational power consumption level for a storage device. The OS will do it's best to transition the device to a power state that will not exceed the given maximum. However, this depends on what the device supports. The actual maximum may be less than or greater than the desired maximum.
To perform this operation, call the DeviceIoControl function with the following parameters.
IOCTL_STORAGE_FIRMWARE_ACTIVATE
Windows applications can use this control code to activate a firmware image on a specified device.
To perform this operation, call the DeviceIoControl function with the following parameters.
IOCTL_STORAGE_FIRMWARE_DOWNLOAD
Windows applications can use this control code to download a firmware image to the target device, but not activate it. If the image to be downloaded is larger than the controller s maximum data transfer size, this IOCTL will have to be called multiple times until the entire image is downloaded.
To perform this operation, call the DeviceIoControl function with the following parameters.
IOCTL_STORAGE_FIRMWARE_GET_INFO
Windows applications can use this control code to query the storage device for detailed firmware information. A successful call will return information about firmware revisions, activity status, as well as read/write attributes for each slot. The amount of data returned will vary based on storage protocol.
To perform this operation, call the DeviceIoControl function with the following parameters.
IOCTL_STORAGE_PROTOCOL_COMMAND
Windows applications can use this control code to return properties of a storage device or adapter. The request indicates the kind of information to retrieve, such as inquiry data for a device or capabilities and limitations of an adapter.
IOCTL_STORAGE_QUERY_PROPERTY
Windows applications can use this control code to return the properties of a storage device or adapter. The request indicates the kind of information to retrieve, such as the inquiry data for a device or the capabilities and limitations of an adapter. IOCTL_STORAGE_QUERY_PROPERTY can also be used to determine whether the port driver supports a particular property or which fields in the property descriptor can be modified with a subsequent change-property request.
IOCTL_STORAGE_SET_TEMPERATURE_THRESHOLD
Windows applications can use this control code to set the temperature threshold of a device (when it's supported by the device).

The following control codes are obsolete:

**IOCTL\_DISK\_CONTROLLER\_NUMBER** [**IOCTL\_DISK\_GET\_DRIVE\_GEOMETRY**](/windows/desktop/api/WinIoCtl/ni-winioctl-ioctl_disk_get_drive_geometry) [**IOCTL\_DISK\_GET\_DRIVE\_LAYOUT**](/windows/desktop/api/WinIoCtl/ni-winioctl-ioctl_disk_get_drive_layout) [**IOCTL\_DISK\_GET\_PARTITION\_INFO**](/windows/desktop/api/WinIoCtl/ni-winioctl-ioctl_disk_get_partition_info) **IOCTL\_DISK\_HISTOGRAM\_DATA** **IOCTL\_DISK\_HISTOGRAM\_RESET** **IOCTL\_DISK\_HISTOGRAM\_STRUCTURE** **IOCTL\_DISK\_LOGGING** **IOCTL\_DISK\_REQUEST\_DATA** **IOCTL\_DISK\_REQUEST\_STRUCTURE** [**IOCTL\_DISK\_SET\_DRIVE\_LAYOUT**](/windows/desktop/api/WinIoCtl/ni-winioctl-ioctl_disk_set_drive_layout) [**IOCTL\_DISK\_SET\_PARTITION\_INFO**](/windows/desktop/api/WinIoCtl/ni-winioctl-ioctl_disk_set_partition_info)