Platform SDK: Hardware

IOCTL_DISK_SET_PARTITION_INFO

Using the IOCTL_DISK_SET_PARTITION_INFO control code sets the partition type of the specified disk partition.

To perform this operation, call the DeviceIoControl function with the following parameters.

BOOL DeviceIoControl(
  (HANDLE) hDevice,                // handle to device
  IOCTL_DISK_SET_PARTITION_INFO,   // dwIoControlCode operation
  (LPVOID) lpInBuffer,             // input buffer 
  (DWORD) nInBufferSize,           // size of input buffer 
  NULL,                            // lpOutBuffer; must be NULL
  0,                               // nOutBufferSize; must be zero
  (LPDWORD) lpBytesReturned,       // number of bytes returned
  (LPOVERLAPPED) lpOverlapped      // OVERLAPPED structure
);

Parameters

hDevice
[in] Handle to the object on which partition information is to be set. To obtain a device handle, call the CreateFile function.
dwIoControlCode
[in] Control code for the operation. This value identifies the specific operation to be performed and the type of device on which to perform it. Use IOCTL_DISK_SET_PARTITION_INFO for this operation.
lpInBuffer
[in] Pointer to a buffer that contains the partition data to be set. The data exists as a SET_PARTITION_INFORMATION data structure.
nInBufferSize
[in] Size, in bytes, of the buffer pointed to by lpInBuffer, which must be large enough to contain a SET_PARTITION_INFORMATION data structure.
lpOutBuffer
[out] Pointer to an output buffer. Not used with this operation. Set to NULL.
nOutBufferSize
[in] Size, in bytes, of the buffer pointed to by lpOutBuffer. Not used with this operation. Set to zero.
lpBytesReturned
[out] Pointer to a variable that receives the actual count of bytes returned by the function in the output buffer.

If lpOverlapped is NULL (nonoverlapped I/O), lpBytesReturned is used internally and cannot be NULL.

If lpOverlapped is not NULL (overlapped I/O), lpBytesReturned can be NULL.

lpOverlapped
[in] Pointer to an OVERLAPPED structure.

If hDevice was opened with the FILE_FLAG_OVERLAPPED flag, lpOverlapped must point to a valid OVERLAPPED structure. In this case, the operation is performed as an overlapped (asynchronous) operation. If the device was opened with the FILE_FLAG_OVERLAPPED flag and lpOverlapped is NULL, the function fails in unpredictable ways.

If hDevice was opened without specifying the FILE_FLAG_OVERLAPPED flag, lpOverlapped is ignored and DeviceIoControl does not return until the operation has been completed, or until an error occurs.

Return Values

If the operation succeeds, DeviceIoControl returns a nonzero value.

If the operation fails, DeviceIoControl returns zero. To get extended error information, call GetLastError.

Remarks

This device I/O control operation is for disk devices. Floppy disk drivers, however, need not handle this operation.

Requirements

  Windows NT/2000: Requires Windows NT 3.1 or later.
  Windows 95/98: Unsupported.
  Header: Declared in Winioctl.h.

See Also

Device Input and Output Overview, Device Input and Output Control Codes, DeviceIoControl, IOCTL_DISK_GET_PARTITION_INFO, SET_PARTITION_INFORMATION