FSCTL_GET_RETRIEVAL_POINTER_BASE - NtDoc

Native API online documentation, based on the System Informer (formerly Process Hacker) phnt headers
// winioctl.h

// CTL_CODE(0x0009, 0x08d, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_RETRIEVAL_POINTER_BASE 0x00090234
View the official Win32 API reference
// ntifs.h

// CTL_CODE(0x0009, 0x08d, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define FSCTL_GET_RETRIEVAL_POINTER_BASE 0x00090234
View the official Windows hardware development documentation

NtDoc

No description available.

Win32 API reference (ni-winioctl-fsctl_get_retrieval_pointer_base)

FSCTL_GET_RETRIEVAL_POINTER_BASE IOCTL

Description

Returns the sector offset to the first logical cluster number (LCN) of the file system relative to the start of the volume.

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

BOOL DeviceIoControl(
  (HANDLE) hDevice,                    // handle to volume
  FSCTL_GET_RETRIEVAL_POINTER_BASE,    // dwIoControlCode
  (LPVOID) NULL,                       // input buffer
  (DWORD) 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
);

Parameters

Input buffer

Input buffer length

Output buffer

Output buffer length

Input/output buffer

Input/output buffer length

Status block

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.

Remarks

Adding the value retrieved by FSCTL_GET_RETRIEVAL_POINTER_BASE to the value retrieved by the FSCTL_GET_RETRIEVAL_POINTERS control code results in a volume-relative file extent offset.

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

See also


Windows hardware development documentation (fsctl-get-retrieval-pointer-base)

FSCTL_GET_RETRIEVAL_POINTER_BASE control code

The FSCTL_GET_RETRIEVAL_POINTER_BASE returns the sector offset to the first logical cluster number (LCN) of the file system relative to the start of the volume.

To perform this operation, call the FltFsControlFile function or ZwFsControlFile function with the following parameters.

Parameters

This handle must be opened with the SE_MANAGE_VOLUME_NAME access rights. For more information, see File Security and Access Rights.

Status block

FltFsControlFile or ZwFsControlFile returns STATUS_SUCCESS or an appropriate NTSTATUS value such as one of the following:

Code Meaning
STATUS_SUCCESS The operation was successful. OutputBuffer contains the sector offset to the first LCN of the file system relative to the start of the volume.
STATUS_ACCESS_DENIED The user does not have SE_MANAGE_VOLUME access.
STATUS_BUFFER_TOO_SMALL OutputBuffer is not large enough for the result. No information has been written to the buffer.
STATUS_INVALID_PARAMETER A parameter was not valid; for example, the handle used is not a valid volume handle.

Remarks

Adding the value retrieved by FSCTL_GET_RETRIEVAL_POINTER_BASE to the value retrieved by the FSCTL_GET_RETRIEVAL_POINTERS control code results in a volume-relative file extent offset.

The FSCTL_GET_RETRIEVAL_POINTER_BASE control code can be used on FastFAT and exFAT devices. This capability supports the use of BitLocker for devices such as flash drives.

Requirements

Requirement type Requirement
Minimum supported client Windows 7
Minimum supported server Windows Server 2008 R2
Header Ntifs.h (include Ntifs.h or Fltkernel.h)

See also

FltFsControlFile

ZwFsControlFile