// ntifs.h
typedef struct {
LARGE_INTEGER VolumeSerialNumber;
LARGE_INTEGER NumberSectors;
LARGE_INTEGER TotalClusters;
LARGE_INTEGER FreeClusters;
LARGE_INTEGER TotalReserved;
ULONG BytesPerSector;
ULONG BytesPerCluster;
ULONG BytesPerFileRecordSegment;
ULONG ClustersPerFileRecordSegment;
LARGE_INTEGER MftValidDataLength;
LARGE_INTEGER MftStartLcn;
LARGE_INTEGER Mft2StartLcn;
LARGE_INTEGER MftZoneStart;
LARGE_INTEGER MftZoneEnd;
} NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
View the official Windows Driver Kit DDI reference// winioctl.h
typedef struct {
LARGE_INTEGER VolumeSerialNumber;
LARGE_INTEGER NumberSectors;
LARGE_INTEGER TotalClusters;
LARGE_INTEGER FreeClusters;
LARGE_INTEGER TotalReserved;
DWORD BytesPerSector;
DWORD BytesPerCluster;
DWORD BytesPerFileRecordSegment;
DWORD ClustersPerFileRecordSegment;
LARGE_INTEGER MftValidDataLength;
LARGE_INTEGER MftStartLcn;
LARGE_INTEGER Mft2StartLcn;
LARGE_INTEGER MftZoneStart;
LARGE_INTEGER MftZoneEnd;
} NTFS_VOLUME_DATA_BUFFER, *PNTFS_VOLUME_DATA_BUFFER;
View the official Win32 API referenceNo description available.
The NTFS_VOLUME_DATA_BUFFER structure contains information about an NTFS volume. It's used with the FSCTL_GET_NTFS_VOLUME_DATA control code.
VolumeSerialNumberThe serial number of the volume. This is a unique number assigned to the volume media by the operating system.
NumberSectorsNumber of sectors in the specified volume.
TotalClustersNumber of used and free clusters in the specified volume.
FreeClustersNumber of free clusters in the specified volume.
TotalReservedNumber of reserved clusters in the specified volume.
BytesPerSectorNumber of bytes in a sector on the specified volume.
BytesPerClusterNumber of bytes in a cluster on the specified volume. This value is also known as the cluster factor.
BytesPerFileRecordSegmentNumber of bytes in a file record segment.
ClustersPerFileRecordSegmentNumber of clusters in a file record segment.
MftValidDataLengthLength of the master file table (MFT) in bytes.
MftStartLcnStarting logical cluster number (LCN) of the MFT.
Mft2StartLcnStarting LCN of the MFT mirror.
MftZoneStartStarting LCN of the MFT zone.
MftZoneEndEnding LCN of the MFT zone.
Reserved clusters are the free clusters reserved for later use by Windows.
The NTFS_VOLUME_DATA_BUFFER structure represents the basic information returned by FSCTL_GET_NTFS_VOLUME_DATA. For extended volume information, pass a buffer that is the combined size of the NTFS_VOLUME_DATA_BUFFER and NTFS_EXTENDED_VOLUME_DATA structures. Upon success, the buffer returned by FSCTL_GET_NTFS_VOLUME_DATA will contain the information associated with both structures. The NTFS_VOLUME_DATA_BUFFER structure will always be filled starting at the beginning of the buffer, with the NTFS_EXTENDED_VOLUME_DATA structure immediately following.
Represents volume data. This structure is passed to the FSCTL_GET_NTFS_VOLUME_DATA control code.
VolumeSerialNumberThe serial number of the volume. This is a unique number assigned to the volume media by the operating system.
NumberSectorsThe number of sectors in the specified volume.
TotalClustersThe number of used and free clusters in the specified volume.
FreeClustersThe number of free clusters in the specified volume.
TotalReservedThe number of reserved clusters in the specified volume.
BytesPerSectorThe number of bytes in a sector on the specified volume.
BytesPerClusterThe number of bytes in a cluster on the specified volume. This value is also known as the cluster factor.
BytesPerFileRecordSegmentThe number of bytes in a file record segment.
ClustersPerFileRecordSegmentThe number of clusters in a file record segment.
MftValidDataLengthThe length of the master file table, in bytes.
MftStartLcnThe starting logical cluster number of the master file table.
Mft2StartLcnThe starting logical cluster number of the master file table mirror.
MftZoneStartThe starting logical cluster number of the master file table zone.
MftZoneEndThe ending logical cluster number of the master file table zone.
Reserved clusters are the free clusters reserved for later use by Windows.
The NTFS_VOLUME_DATA_BUFFER structure represents the basic information returned by FSCTL_GET_NTFS_VOLUME_DATA. For extended volume information, pass a buffer that is the combined size of the NTFS_VOLUME_DATA_BUFFER and NTFS_EXTENDED_VOLUME_DATA structures. Upon success, the buffer returned by FSCTL_GET_NTFS_VOLUME_DATA will contain the information associated with both structures. The NTFS_VOLUME_DATA_BUFFER structure will always be filled starting at the beginning of the buffer, with the NTFS_EXTENDED_VOLUME_DATA structure immediately following. The NTFS_EXTENDED_VOLUME_DATA structure is defined as follows:
| C++ |
|---|
typedef struct { ULONG ByteCount; USHORT MajorVersion; USHORT MinorVersion; } NTFS_EXTENDED_VOLUME_DATA, *PNTFS_EXTENDED_VOLUME_DATA; |
This structure contains the major and minor version information for an NTFS volume. The ByteCount member will return the total bytes of the output buffer used for this structure by the call to FSCTL_GET_NTFS_VOLUME_DATA. This value should be sizeof(NTFS_EXTENDED_VOLUME_DATA) if the buffer passed was large enough to hold it, otherwise the value will be less than sizeof(NTFS_EXTENDED_VOLUME_DATA).