FILESYSTEM_STATISTICS_EX structure (winioctl.h)

Contains statistical information from the file system.Support for this structure started with Windows 10.

Syntax

typedef struct _FILESYSTEM_STATISTICS_EX {
  WORD      FileSystemType;
  WORD      Version;
  DWORD     SizeOfCompleteStructure;
  DWORDLONG UserFileReads;
  DWORDLONG UserFileReadBytes;
  DWORDLONG UserDiskReads;
  DWORDLONG UserFileWrites;
  DWORDLONG UserFileWriteBytes;
  DWORDLONG UserDiskWrites;
  DWORDLONG MetaDataReads;
  DWORDLONG MetaDataReadBytes;
  DWORDLONG MetaDataDiskReads;
  DWORDLONG MetaDataWrites;
  DWORDLONG MetaDataWriteBytes;
  DWORDLONG MetaDataDiskWrites;
} FILESYSTEM_STATISTICS_EX, *PFILESYSTEM_STATISTICS_EX;

Members

FileSystemType

The type of file system.

This member can be one of the following values.

Value Meaning
FILESYSTEM_STATISTICS_TYPE_EXFAT
3
The file system is an exFAT file system.

If this value is set, this structure is followed by an EXFAT_STATISTICS structure.

Windows Vista, Windows Server 2003 and Windows XP:  This value is not supported until Windows Vista with SP1.

FILESYSTEM_STATISTICS_TYPE_FAT
2
The file system is a FAT file system.

If this value is set, this structure is followed by a FAT_STATISTICS structure.

FILESYSTEM_STATISTICS_TYPE_NTFS
1
The file system is the NTFS file system.

If this value is set, this structure is followed by an NTFS_STATISTICS_EX structure.

Version

This member is set to 1 (one).

SizeOfCompleteStructure

The size of this structure plus the size of the file system-specific structure that follows this structure, multiplied by the number of processors.

This value must be a multiple of 64. For example, if the size of FILESYSTEM_STATISTICS_EX is 0x68, the size of NTFS_STATISTICS_EX is 0x1D8, and if there are 2 processors, the buffer allocated must be 0x480.

sizeof(FILESYSTEM_STATISTICS_EX) = 0x68

sizeof(NTFS_STATISTICS_EX) = 0x1D8

Total Size = 0x240

size of the complete structure = 0x240 (which is the aligned length, a multiple of 64)

multiplied by 2 (the number of processors) = 0x480

UserFileReads

The number of read operations on user files.

UserFileReadBytes

The number of bytes read from user files.

UserDiskReads

The number of read operations on user files.

This value includes sub-read operations.

UserFileWrites

The number of write operations on user files.

UserFileWriteBytes

The number of bytes written to user files.

UserDiskWrites

The number of write operations on user files.

This value includes sub-write operations.

MetaDataReads

The number of read operations on metadata files.

MetaDataReadBytes

The number of bytes read from metadata files.

MetaDataDiskReads

The number of read operations on metadata files.

This value includes sub-read operations.

MetaDataWrites

The number of write operations on metadata files.

MetaDataWriteBytes

The number of bytes written to metadata files.

MetaDataDiskWrites

The number of write operations on metadata files.

This value includes sub-write operations.

Remarks

There are two types of files: user and metadata. User files are available for the user. Metadata files are system files that contain information, which the file system uses for its internal organization.

The number of read and write operations measured is the number of paging operations.

Requirements

Requirement Value
Minimum supported client Windows 10 [desktop apps only]
Minimum supported server Windows Server 2016 [desktop apps only]
Header winioctl.h (include Windows.h)

See also

EXFAT_STATISTICS

FAT_STATISTICS

FSCTL_FILESYSTEM_GET_STATISTICS

NTFS_STATISTICS_EX