// winioctl.h
// CTL_CODE(0x0009, 0x08c, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_BOOT_AREA_INFO 0x00090230
View the official Win32 API reference// ntifs.h
// CTL_CODE(0x0009, 0x08c, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_BOOT_AREA_INFO 0x00090230
View the official Windows hardware development documentationNo description available.
Retrieves the locations of boot sectors for a volume.
To perform this operation, call the DeviceIoControl function with the following parameters.
BOOL DeviceIoControl(
(HANDLE) hDevice, // handle to volume
FSCTL_GET_BOOT_AREA_INFO, // dwIoControlCode
NULL, // input buffer
0, // size of input buffer
(LPVOID) lpOutBuffer, // output buffer
(DWORD) nOutBufferSize, // size of output buffer
(LPDWORD) lpBytesReturned, // number of bytes returned
(LPOVERLAPPED) lpOverlapped // OVERLAPPED structure
);
Irp->IoStatus.Status is set to STATUS_SUCCESS if the request is successful.
Otherwise, Status to the appropriate error condition as a NTSTATUS code.
For more information, see NTSTATUS Values.
In Windows 8 and Windows Server 2012, this code is supported by the following technologies.
| Technology | Supported |
|---|---|
| Server Message Block (SMB) 3.0 protocol | No |
| SMB 3.0 Transparent Failover (TFO) | No |
| SMB 3.0 with Scale-out File Shares (SO) | No |
| Cluster Shared Volume File System (CsvFS) | Yes |
The FSCTL_GET_BOOT_AREA_INFO control code retrieves the locations of boot sectors for a volume.
To perform this operation, call the FltFsControlFile function or ZwFsControlFile function with the following parameters.
FileObject [in]: FltFsControlFile only. A file object pointer for the volume for which FSCTL_GET_BOOT_AREA_INFO will retrieve the boot information. This parameter is required and cannot be NULL.
FileHandle [in]: ZwFsControlFile only. A file handle for the volume for which FSCTL_GET_BOOT_AREA_INFO will retrieve the boot information. This parameter is required and cannot be NULL.
This handle must be opened with the SE_MANAGE_VOLUME_NAME access rights. For more information, see File Security and Access Rights.
FsControlCode [in]: A control code for the operation. Use FSCTL_GET_BOOT_AREA_INFO for this operation.
InputBuffer [in]: Not used with this operation. Set to NULL.
InputBufferLength [in]: Not used with this operation. Set to zero.
OutputBuffer [out]: A pointer to a BOOT_AREA_INFO structure, which receives the location of the volume's boot sectors.
OutputBufferLength [out]: The size of the output buffer, in bytes.
FltFsControlFile or ZwFsControlFile returns an appropriate NTSTATUS value such as one of the following:
| Code | Meaning |
|---|---|
| STATUS_SUCCESS | The operation was successful. OutputBuffer contains a pointer to a BOOT_AREA_INFO structure. |
| STATUS_INVALID_PARAMETER | A parameter was not valid; for example, the handle used is not a valid volume handle. |
| STATUS_BUFFER_TOO_SMALL | OutputBuffer is not large enough for the result. No information has been written to the buffer. |
| STATUS_ACCESS_DENIED | The user does not have SE_MANAGE_VOLUME access. |
FSCTL_GET_BOOT_AREA_INFO control code can be used on FastFAT and exFAT devices. This capability supports the use of BitLocker for devices such as flash drives.
| Requirement type | Requirement |
|---|---|
| Minimum supported client | Windows 7 |
| Minimum supported server | Windows Server 2008 R2 |
| Header | Ntifs.h (include Ntifs.h or Fltkernel.h) |