// winioctl.h
typedef struct _NTFS_STATISTICS {
DWORD LogFileFullExceptions;
DWORD OtherExceptions;
DWORD MftReads;
DWORD MftReadBytes;
DWORD MftWrites;
DWORD MftWriteBytes;
struct {
WORD Write;
WORD Create;
WORD SetInfo;
WORD Flush;
} MftWritesUserLevel;
WORD MftWritesFlushForLogFileFull;
WORD MftWritesLazyWriter;
WORD MftWritesUserRequest;
DWORD Mft2Writes;
DWORD Mft2WriteBytes;
struct {
WORD Write;
WORD Create;
WORD SetInfo;
WORD Flush;
} Mft2WritesUserLevel;
WORD Mft2WritesFlushForLogFileFull;
WORD Mft2WritesLazyWriter;
WORD Mft2WritesUserRequest;
DWORD RootIndexReads;
DWORD RootIndexReadBytes;
DWORD RootIndexWrites;
DWORD RootIndexWriteBytes;
DWORD BitmapReads;
DWORD BitmapReadBytes;
DWORD BitmapWrites;
DWORD BitmapWriteBytes;
WORD BitmapWritesFlushForLogFileFull;
WORD BitmapWritesLazyWriter;
WORD BitmapWritesUserRequest;
struct {
WORD Write;
WORD Create;
WORD SetInfo;
} BitmapWritesUserLevel;
DWORD MftBitmapReads;
DWORD MftBitmapReadBytes;
DWORD MftBitmapWrites;
DWORD MftBitmapWriteBytes;
WORD MftBitmapWritesFlushForLogFileFull;
WORD MftBitmapWritesLazyWriter;
WORD MftBitmapWritesUserRequest;
struct {
WORD Write;
WORD Create;
WORD SetInfo;
WORD Flush;
} MftBitmapWritesUserLevel;
DWORD UserIndexReads;
DWORD UserIndexReadBytes;
DWORD UserIndexWrites;
DWORD UserIndexWriteBytes;
DWORD LogFileReads;
DWORD LogFileReadBytes;
DWORD LogFileWrites;
DWORD LogFileWriteBytes;
struct {
DWORD Calls;
DWORD Clusters;
DWORD Hints;
DWORD RunsReturned;
DWORD HintsHonored;
DWORD HintsClusters;
DWORD Cache;
DWORD CacheClusters;
DWORD CacheMiss;
DWORD CacheMissClusters;
} Allocate;
DWORD DiskResourcesExhausted;
} NTFS_STATISTICS, *PNTFS_STATISTICS;
View the official Win32 API referenceNo description available.
Contains statistical information from the NTFS file system.
Tip Applications targeting Windows 10 can access additional statistics through NTFS_STATISTICS_EX.
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.
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.ClustersThe number of clusters allocated.
Allocate.HintsThe number of times a hint was specified.
Allocate.RunsReturnedThe number of runs used to satisfy all the requests.
Allocate.HintsHonoredThe number of times the hint was useful.
Allocate.HintsClustersThe number of clusters allocated through the hint.
Allocate.CacheThe number of times the cache was useful other than the hint.
Allocate.CacheClustersThe number of clusters allocated through the cache other than the hint.
Allocate.CacheMissThe number of times the cache was not useful.
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.
Support for this member started with Windows 8.1.
The 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.
For additional statistics that are only available with Windows 10, use NTFS_STATISTICS_EX.