// winioctl.h
typedef struct _NTFS_STATISTICS_EX {
DWORD LogFileFullExceptions;
DWORD OtherExceptions;
DWORDLONG MftReads;
DWORDLONG MftReadBytes;
DWORDLONG MftWrites;
DWORDLONG MftWriteBytes;
struct {
DWORD Write;
DWORD Create;
DWORD SetInfo;
DWORD Flush;
} MftWritesUserLevel;
DWORD MftWritesFlushForLogFileFull;
DWORD MftWritesLazyWriter;
DWORD MftWritesUserRequest;
DWORDLONG Mft2Writes;
DWORDLONG Mft2WriteBytes;
struct {
DWORD Write;
DWORD Create;
DWORD SetInfo;
DWORD Flush;
} Mft2WritesUserLevel;
DWORD Mft2WritesFlushForLogFileFull;
DWORD Mft2WritesLazyWriter;
DWORD Mft2WritesUserRequest;
DWORDLONG RootIndexReads;
DWORDLONG RootIndexReadBytes;
DWORDLONG RootIndexWrites;
DWORDLONG RootIndexWriteBytes;
DWORDLONG BitmapReads;
DWORDLONG BitmapReadBytes;
DWORDLONG BitmapWrites;
DWORDLONG BitmapWriteBytes;
DWORD BitmapWritesFlushForLogFileFull;
DWORD BitmapWritesLazyWriter;
DWORD BitmapWritesUserRequest;
struct {
DWORD Write;
DWORD Create;
DWORD SetInfo;
DWORD Flush;
} BitmapWritesUserLevel;
DWORDLONG MftBitmapReads;
DWORDLONG MftBitmapReadBytes;
DWORDLONG MftBitmapWrites;
DWORDLONG MftBitmapWriteBytes;
DWORD MftBitmapWritesFlushForLogFileFull;
DWORD MftBitmapWritesLazyWriter;
DWORD MftBitmapWritesUserRequest;
struct {
DWORD Write;
DWORD Create;
DWORD SetInfo;
DWORD Flush;
} MftBitmapWritesUserLevel;
DWORDLONG UserIndexReads;
DWORDLONG UserIndexReadBytes;
DWORDLONG UserIndexWrites;
DWORDLONG UserIndexWriteBytes;
DWORDLONG LogFileReads;
DWORDLONG LogFileReadBytes;
DWORDLONG LogFileWrites;
DWORDLONG LogFileWriteBytes;
struct {
DWORD Calls;
DWORD RunsReturned;
DWORD Hints;
DWORD HintsHonored;
DWORD Cache;
DWORD CacheMiss;
DWORDLONG Clusters;
DWORDLONG HintsClusters;
DWORDLONG CacheClusters;
DWORDLONG CacheMissClusters;
} Allocate;
DWORD DiskResourcesExhausted;
DWORDLONG VolumeTrimCount;
DWORDLONG VolumeTrimTime;
DWORDLONG VolumeTrimByteCount;
DWORDLONG FileLevelTrimCount;
DWORDLONG FileLevelTrimTime;
DWORDLONG FileLevelTrimByteCount;
DWORDLONG VolumeTrimSkippedCount;
DWORDLONG VolumeTrimSkippedByteCount;
DWORDLONG NtfsFillStatInfoFromMftRecordCalledCount;
DWORDLONG NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount;
DWORDLONG NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount;
} NTFS_STATISTICS_EX, *PNTFS_STATISTICS_EX;
View the official Win32 API referenceNo description available.
Contains statistical information from the NTFS file system.Support for this structure started with Windows 10.
LogFileFullExceptionsThe number of exceptions generated due to the log file being full.
OtherExceptionsThe number of other exceptions generated.
MftReadsThe number of read operations on the master file table (MFT).
MftReadBytesThe number of bytes read from the MFT.
MftWritesThe number of write operations on the MFT.
MftWriteBytesThe number of bytes written to the MFT.
MftWritesUserLevelMftWritesUserLevel.WriteThe number of MFT writes due to a write operation.
MftWritesUserLevel.CreateThe number of MFT writes due to a create operation.
MftWritesUserLevel.SetInfoThe number of MFT writes due to setting file information.
MftWritesUserLevel.FlushThe number of MFT writes due to a flush operation.
MftWritesFlushForLogFileFullThe number of flushes of the MFT performed because the log file was full.
MftWritesLazyWriterThe number of MFT write operations performed by the lazy writer thread.
MftWritesUserRequestReserved.
Mft2WritesThe number of write operations on the MFT mirror.
Mft2WriteBytesThe number of bytes written to the MFT mirror.
Mft2WritesUserLevelMft2WritesUserLevel.WriteThe number of MFT mirror writes due to a write operation.
Mft2WritesUserLevel.CreateThe number of MFT mirror writes due to a create operation.
Mft2WritesUserLevel.SetInfoThe number of MFT mirror writes due to setting file information.
Mft2WritesUserLevel.FlushThe number of MFT mirror writes due to a flush operation.
Mft2WritesFlushForLogFileFullThe number of flushes of the MFT mirror performed because the log file was full.
Mft2WritesLazyWriterThe number of MFT mirror write operations performed by the lazy writer thread.
Mft2WritesUserRequestReserved.
RootIndexReadsThe number of read operations on the root index.
RootIndexReadBytesThe number of bytes read from the root index.
RootIndexWritesThe number of write operations on the root index.
RootIndexWriteBytesThe number of bytes written to the root index.
BitmapReadsThe number of read operations on the cluster allocation bitmap.
BitmapReadBytesThe number of bytes read from the cluster allocation bitmap.
BitmapWritesThe number of write operations on the cluster allocation bitmap.
BitmapWriteBytesThe number of bytes written to the cluster allocation bitmap.
BitmapWritesFlushForLogFileFullThe number of flushes of the bitmap performed because the log file was full.
BitmapWritesLazyWriterThe number of bitmap write operations performed by the lazy writer thread.
BitmapWritesUserRequestReserved.
BitmapWritesUserLevelBitmapWritesUserLevel.WriteThe number of bitmap writes due to a write operation.
BitmapWritesUserLevel.CreateThe number of bitmap writes due to a create operation.
BitmapWritesUserLevel.SetInfoThe number of bitmap writes due to setting file information.
BitmapWritesUserLevel.FlushThe number of bitmap writes due to a flush operation.
MftBitmapReadsThe number of read operations on the MFT bitmap.
MftBitmapReadBytesThe number of bytes read from the MFT bitmap.
MftBitmapWritesThe number of write operations on the MFT bitmap.
MftBitmapWriteBytesThe number of bytes written to the MFT bitmap.
MftBitmapWritesFlushForLogFileFullThe number of flushes of the MFT bitmap performed because the log file was full.
MftBitmapWritesLazyWriterThe number of MFT bitmap write operations performed by the lazy writer thread.
MftBitmapWritesUserRequestReserved.
MftBitmapWritesUserLevelMftBitmapWritesUserLevel.WriteThe number of MFT bitmap writes due to a write operation.
MftBitmapWritesUserLevel.CreateThe number of bitmap writes due to a create operation.
MftBitmapWritesUserLevel.SetInfoThe number of bitmap writes due to setting file information.
MftBitmapWritesUserLevel.FlushThe number of bitmap writes due to a flush operation.
UserIndexReadsThe number of read operations on the user index.
UserIndexReadBytesThe number of bytes read from the user index.
UserIndexWritesThe number of write operations on the user index.
UserIndexWriteBytesThe number of bytes written to the user index.
LogFileReadsThe number of read operations on the log file.
LogFileReadBytesThe number of bytes read from the log file.
LogFileWritesThe number of write operations on the log file.
LogFileWriteBytesThe number of bytes written to the log file.
AllocateAllocate.CallsThe number of individual calls to allocate clusters.
Allocate.RunsReturnedThe number of runs used to satisfy all the requests.
Allocate.HintsThe number of times a hint was specified.
Allocate.HintsHonoredThe number of times the hint was useful.
Allocate.CacheThe number of times the cache was useful other than the hint.
Allocate.CacheMissThe number of times the cache was not useful.
Allocate.ClustersThe number of clusters allocated.
Allocate.HintsClustersThe number of clusters allocated through the hint.
Allocate.CacheClustersThe number of clusters allocated through the cache other than the hint.
Allocate.CacheMissClustersThe number of clusters allocated without the cache.
DiskResourcesExhaustedThe number of failed attempts made to acquire a slab of storage for use on the current thinly provisioned volume.
VolumeTrimCountThe number of volume level trim operations issued.
VolumeTrimTimeThe total time elapsed during all volume level trim operations. This value, divided by the frequency value from QueryPerformanceFrequency or KeQueryPerformanceCounter, will give the time in seconds.
VolumeTrimByteCountThe total number of bytes issued by all volume level trim operations.
FileLevelTrimCountThe number of file level trim operations issued.
FileLevelTrimTimeThe total time elapsed during all file level trim operations. This value, divided by the frequency value from QueryPerformanceFrequency or KeQueryPerformanceCounter, will give the time in seconds.
FileLevelTrimByteCountThe total number of bytes issued by all file level trim operations.
VolumeTrimSkippedCountThe number of times a volume level trim operation was aborted before being sent down through the storage stack.
VolumeTrimSkippedByteCountThe number of bytes that were not sent through a volume level trim operation because they were skipped.
NtfsFillStatInfoFromMftRecordCalledCountNtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCountNtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCountThe MFT, MFT mirror, root index, user index, bitmap, and MFT bitmap are counted as metadata files. The log file is not counted as a metadata file.
The number of read and write operations measured is the number of paging operations.