Win32 API 日本語リファレンス
ホームSystem.Ioctl › NTFS_STATISTICS_EX

NTFS_STATISTICS_EX

構造体
サイズx64: 496 バイト / x86: 496 バイト

サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。

フィールド

フィールドサイズx64x86説明
LogFileFullExceptionsDWORD4+0+0ログ ファイルが満杯になったことにより発生した例外の数。
OtherExceptionsDWORD4+4+4発生したその他の例外の数。
MftReadsULONGLONG8+8+8マスター ファイル テーブル (MFT) に対する読み取り操作の数。
MftReadBytesULONGLONG8+16+16MFT から読み取られたバイト数。
MftWritesULONGLONG8+24+24MFT に対する書き込み操作の数。
MftWriteBytesULONGLONG8+32+32MFT に書き込まれたバイト数。
MftWritesUserLevel_MftWritesUserLevel_e__Struct16+40+40MFT書き込みの発生元レベル別内訳を保持する内部構造体。
MftWritesFlushForLogFileFullDWORD4+56+56ログ ファイルが満杯になったために実行された MFT のフラッシュの数。
MftWritesLazyWriterDWORD4+60+60遅延書き込みスレッドによって実行された MFT 書き込み操作の数。
MftWritesUserRequestDWORD4+64+64予約済みです。
Mft2WritesULONGLONG8+72+72MFT ミラーに対する書き込み操作の数。
Mft2WriteBytesULONGLONG8+80+80MFT ミラーに書き込まれたバイト数。
Mft2WritesUserLevel_Mft2WritesUserLevel_e__Struct16+88+88MFTミラー書き込みの発生元レベル別内訳を保持する内部構造体。
Mft2WritesFlushForLogFileFullDWORD4+104+104ログ ファイルが満杯になったために実行された MFT ミラーのフラッシュの数。
Mft2WritesLazyWriterDWORD4+108+108遅延書き込みスレッドによって実行された MFT ミラー書き込み操作の数。
Mft2WritesUserRequestDWORD4+112+112予約済みです。
RootIndexReadsULONGLONG8+120+120ルート インデックスに対する読み取り操作の数。
RootIndexReadBytesULONGLONG8+128+128ルート インデックスから読み取られたバイト数。
RootIndexWritesULONGLONG8+136+136ルート インデックスに対する書き込み操作の数。
RootIndexWriteBytesULONGLONG8+144+144ルート インデックスに書き込まれたバイト数。
BitmapReadsULONGLONG8+152+152クラスター割り当てビットマップに対する読み取り操作の数。
BitmapReadBytesULONGLONG8+160+160クラスター割り当てビットマップから読み取られたバイト数。
BitmapWritesULONGLONG8+168+168クラスター割り当てビットマップに対する書き込み操作の数。
BitmapWriteBytesULONGLONG8+176+176クラスター割り当てビットマップに書き込まれたバイト数。
BitmapWritesFlushForLogFileFullDWORD4+184+184ログ ファイルが満杯になったために実行されたビットマップのフラッシュの数。
BitmapWritesLazyWriterDWORD4+188+188遅延書き込みスレッドによって実行されたビットマップ書き込み操作の数。
BitmapWritesUserRequestDWORD4+192+192予約済みです。
BitmapWritesUserLevel_BitmapWritesUserLevel_e__Struct16+196+196ビットマップ書き込みの発生元レベル別内訳を保持する内部構造体。
MftBitmapReadsULONGLONG8+216+216MFT ビットマップに対する読み取り操作の数。
MftBitmapReadBytesULONGLONG8+224+224MFT ビットマップから読み取られたバイト数。
MftBitmapWritesULONGLONG8+232+232MFT ビットマップに対する書き込み操作の数。
MftBitmapWriteBytesULONGLONG8+240+240MFT ビットマップに書き込まれたバイト数。
MftBitmapWritesFlushForLogFileFullDWORD4+248+248ログ ファイルが満杯になったために実行された MFT ビットマップのフラッシュの数。
MftBitmapWritesLazyWriterDWORD4+252+252遅延書き込みスレッドによって実行された MFT ビットマップ書き込み操作の数。
MftBitmapWritesUserRequestDWORD4+256+256予約済みです。
MftBitmapWritesUserLevel_MftBitmapWritesUserLevel_e__Struct16+260+260MFTビットマップ書き込みの発生元レベル別内訳を保持する内部構造体。
UserIndexReadsULONGLONG8+280+280ユーザー インデックスに対する読み取り操作の数。
UserIndexReadBytesULONGLONG8+288+288ユーザー インデックスから読み取られたバイト数。
UserIndexWritesULONGLONG8+296+296ユーザー インデックスに対する書き込み操作の数。
UserIndexWriteBytesULONGLONG8+304+304ユーザー インデックスに書き込まれたバイト数。
LogFileReadsULONGLONG8+312+312ログ ファイルに対する読み取り操作の数。
LogFileReadBytesULONGLONG8+320+320ログ ファイルから読み取られたバイト数。
LogFileWritesULONGLONG8+328+328ログ ファイルに対する書き込み操作の数。
LogFileWriteBytesULONGLONG8+336+336ログ ファイルに書き込まれたバイト数。
Allocate_Allocate_e__Struct56+344+344クラスタ割り当て活動の統計を保持する内部構造体。
DiskResourcesExhaustedDWORD4+400+400現在のシン プロビジョニング ボリュームで使用するストレージのスラブの取得に失敗した回数。
VolumeTrimCountULONGLONG8+408+408発行されたボリューム レベルのトリム操作の数。
VolumeTrimTimeULONGLONG8+416+416すべてのボリューム レベルのトリム操作に要した合計時間。この値を QueryPerformanceFrequency または KeQueryPerformanceCounter から得られる周波数の値で割ると、秒単位の時間が得られます。
VolumeTrimByteCountULONGLONG8+424+424すべてのボリューム レベルのトリム操作によって発行された合計バイト数。
FileLevelTrimCountULONGLONG8+432+432発行されたファイル レベルのトリム操作の数。
FileLevelTrimTimeULONGLONG8+440+440すべてのファイル レベルのトリム操作に要した合計時間。この値を QueryPerformanceFrequency または KeQueryPerformanceCounter から得られる周波数の値で割ると、秒単位の時間が得られます。
FileLevelTrimByteCountULONGLONG8+448+448すべてのファイル レベルのトリム操作によって発行された合計バイト数。
VolumeTrimSkippedCountULONGLONG8+456+456ボリューム レベルのトリム操作が、ストレージ スタックへ送信される前に中止された回数。
VolumeTrimSkippedByteCountULONGLONG8+464+464スキップされたためにボリューム レベルのトリム操作で送信されなかったバイト数。
NtfsFillStatInfoFromMftRecordCalledCountULONGLONG8+472+472MFTレコードからの統計情報取得処理が呼ばれた回数。
NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCountULONGLONG8+480+480属性リストの存在により統計取得を中断した回数。
NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCountULONGLONG8+488+488非常駐の再解析ポイントにより統計取得を中断した回数。

構造体: _MftWritesUserLevel_e__Struct x64 16B / x86 16B

フィールドサイズx64x86説明
WriteDWORD4+0+0書き込み操作に起因する MFT ミラー書き込みの数。
CreateDWORD4+4+4作成操作に起因する MFT ミラー書き込みの数。
SetInfoDWORD4+8+8ファイル情報の設定に起因する MFT ミラー書き込みの数。
FlushDWORD4+12+12フラッシュ操作に起因する MFT ミラー書き込みの数。

構造体: _Mft2WritesUserLevel_e__Struct x64 16B / x86 16B

フィールドサイズx64x86説明
WriteDWORD4+0+0書き込み操作に起因する MFT ミラー書き込みの数。
CreateDWORD4+4+4作成操作に起因する MFT ミラー書き込みの数。
SetInfoDWORD4+8+8ファイル情報の設定に起因する MFT ミラー書き込みの数。
FlushDWORD4+12+12フラッシュ操作に起因する MFT ミラー書き込みの数。

構造体: _BitmapWritesUserLevel_e__Struct x64 16B / x86 16B

フィールドサイズx64x86説明
WriteDWORD4+0+0書き込み操作に起因する MFT ミラー書き込みの数。
CreateDWORD4+4+4作成操作に起因する MFT ミラー書き込みの数。
SetInfoDWORD4+8+8ファイル情報の設定に起因する MFT ミラー書き込みの数。
FlushDWORD4+12+12フラッシュ操作に起因する MFT ミラー書き込みの数。

構造体: _MftBitmapWritesUserLevel_e__Struct x64 16B / x86 16B

フィールドサイズx64x86説明
WriteDWORD4+0+0書き込み操作に起因する MFT ミラー書き込みの数。
CreateDWORD4+4+4作成操作に起因する MFT ミラー書き込みの数。
SetInfoDWORD4+8+8ファイル情報の設定に起因する MFT ミラー書き込みの数。
FlushDWORD4+12+12フラッシュ操作に起因する MFT ミラー書き込みの数。

構造体: _Allocate_e__Struct x64 56B / x86 56B

フィールドサイズx64x86説明
CallsDWORD4+0+0クラスターを割り当てるための個々の呼び出しの数。
RunsReturnedDWORD4+4+4すべての要求を満たすために使用されたラン (run) の数。
HintsDWORD4+8+8ヒントが指定された回数。
HintsHonoredDWORD4+12+12ヒントが有効であった回数。
CacheDWORD4+16+16ヒント以外でキャッシュが有効であった回数。
CacheMissDWORD4+20+20キャッシュが有効でなかった回数。
ClustersULONGLONG8+24+24割り当てられたクラスターの数。
HintsClustersULONGLONG8+32+32ヒントによって割り当てられたクラスターの数。
CacheClustersULONGLONG8+40+40ヒント以外でキャッシュによって割り当てられたクラスターの数。
CacheMissClustersULONGLONG8+48+48キャッシュを使用せずに割り当てられたクラスターの数。

公式ドキュメント

NTFS ファイル システムの統計情報を格納します。この構造体は Windows 10 以降でサポートされます。

解説(Remarks)

MFT、MFT ミラー、ルート インデックス、ユーザー インデックス、ビットマップ、および MFT ビットマップは、メタデータ ファイルとして計上されます。ログ ファイルはメタデータ ファイルとしては計上されません。

測定される読み取り操作および書き込み操作の数は、ページング操作の数です。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

各言語での定義

#include <windows.h>

// NTFS_STATISTICS_EX  (x64 496 / x86 496 バイト)
typedef struct NTFS_STATISTICS_EX {
    DWORD LogFileFullExceptions;
    DWORD OtherExceptions;
    ULONGLONG MftReads;
    ULONGLONG MftReadBytes;
    ULONGLONG MftWrites;
    ULONGLONG MftWriteBytes;
    _MftWritesUserLevel_e__Struct MftWritesUserLevel;
    DWORD MftWritesFlushForLogFileFull;
    DWORD MftWritesLazyWriter;
    DWORD MftWritesUserRequest;
    ULONGLONG Mft2Writes;
    ULONGLONG Mft2WriteBytes;
    _Mft2WritesUserLevel_e__Struct Mft2WritesUserLevel;
    DWORD Mft2WritesFlushForLogFileFull;
    DWORD Mft2WritesLazyWriter;
    DWORD Mft2WritesUserRequest;
    ULONGLONG RootIndexReads;
    ULONGLONG RootIndexReadBytes;
    ULONGLONG RootIndexWrites;
    ULONGLONG RootIndexWriteBytes;
    ULONGLONG BitmapReads;
    ULONGLONG BitmapReadBytes;
    ULONGLONG BitmapWrites;
    ULONGLONG BitmapWriteBytes;
    DWORD BitmapWritesFlushForLogFileFull;
    DWORD BitmapWritesLazyWriter;
    DWORD BitmapWritesUserRequest;
    _BitmapWritesUserLevel_e__Struct BitmapWritesUserLevel;
    ULONGLONG MftBitmapReads;
    ULONGLONG MftBitmapReadBytes;
    ULONGLONG MftBitmapWrites;
    ULONGLONG MftBitmapWriteBytes;
    DWORD MftBitmapWritesFlushForLogFileFull;
    DWORD MftBitmapWritesLazyWriter;
    DWORD MftBitmapWritesUserRequest;
    _MftBitmapWritesUserLevel_e__Struct MftBitmapWritesUserLevel;
    ULONGLONG UserIndexReads;
    ULONGLONG UserIndexReadBytes;
    ULONGLONG UserIndexWrites;
    ULONGLONG UserIndexWriteBytes;
    ULONGLONG LogFileReads;
    ULONGLONG LogFileReadBytes;
    ULONGLONG LogFileWrites;
    ULONGLONG LogFileWriteBytes;
    _Allocate_e__Struct Allocate;
    DWORD DiskResourcesExhausted;
    ULONGLONG VolumeTrimCount;
    ULONGLONG VolumeTrimTime;
    ULONGLONG VolumeTrimByteCount;
    ULONGLONG FileLevelTrimCount;
    ULONGLONG FileLevelTrimTime;
    ULONGLONG FileLevelTrimByteCount;
    ULONGLONG VolumeTrimSkippedCount;
    ULONGLONG VolumeTrimSkippedByteCount;
    ULONGLONG NtfsFillStatInfoFromMftRecordCalledCount;
    ULONGLONG NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount;
    ULONGLONG NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount;
} NTFS_STATISTICS_EX;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct NTFS_STATISTICS_EX
{
    public uint LogFileFullExceptions;
    public uint OtherExceptions;
    public ulong MftReads;
    public ulong MftReadBytes;
    public ulong MftWrites;
    public ulong MftWriteBytes;
    public _MftWritesUserLevel_e__Struct MftWritesUserLevel;
    public uint MftWritesFlushForLogFileFull;
    public uint MftWritesLazyWriter;
    public uint MftWritesUserRequest;
    public ulong Mft2Writes;
    public ulong Mft2WriteBytes;
    public _Mft2WritesUserLevel_e__Struct Mft2WritesUserLevel;
    public uint Mft2WritesFlushForLogFileFull;
    public uint Mft2WritesLazyWriter;
    public uint Mft2WritesUserRequest;
    public ulong RootIndexReads;
    public ulong RootIndexReadBytes;
    public ulong RootIndexWrites;
    public ulong RootIndexWriteBytes;
    public ulong BitmapReads;
    public ulong BitmapReadBytes;
    public ulong BitmapWrites;
    public ulong BitmapWriteBytes;
    public uint BitmapWritesFlushForLogFileFull;
    public uint BitmapWritesLazyWriter;
    public uint BitmapWritesUserRequest;
    public _BitmapWritesUserLevel_e__Struct BitmapWritesUserLevel;
    public ulong MftBitmapReads;
    public ulong MftBitmapReadBytes;
    public ulong MftBitmapWrites;
    public ulong MftBitmapWriteBytes;
    public uint MftBitmapWritesFlushForLogFileFull;
    public uint MftBitmapWritesLazyWriter;
    public uint MftBitmapWritesUserRequest;
    public _MftBitmapWritesUserLevel_e__Struct MftBitmapWritesUserLevel;
    public ulong UserIndexReads;
    public ulong UserIndexReadBytes;
    public ulong UserIndexWrites;
    public ulong UserIndexWriteBytes;
    public ulong LogFileReads;
    public ulong LogFileReadBytes;
    public ulong LogFileWrites;
    public ulong LogFileWriteBytes;
    public _Allocate_e__Struct Allocate;
    public uint DiskResourcesExhausted;
    public ulong VolumeTrimCount;
    public ulong VolumeTrimTime;
    public ulong VolumeTrimByteCount;
    public ulong FileLevelTrimCount;
    public ulong FileLevelTrimTime;
    public ulong FileLevelTrimByteCount;
    public ulong VolumeTrimSkippedCount;
    public ulong VolumeTrimSkippedByteCount;
    public ulong NtfsFillStatInfoFromMftRecordCalledCount;
    public ulong NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount;
    public ulong NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure NTFS_STATISTICS_EX
    Public LogFileFullExceptions As UInteger
    Public OtherExceptions As UInteger
    Public MftReads As ULong
    Public MftReadBytes As ULong
    Public MftWrites As ULong
    Public MftWriteBytes As ULong
    Public MftWritesUserLevel As _MftWritesUserLevel_e__Struct
    Public MftWritesFlushForLogFileFull As UInteger
    Public MftWritesLazyWriter As UInteger
    Public MftWritesUserRequest As UInteger
    Public Mft2Writes As ULong
    Public Mft2WriteBytes As ULong
    Public Mft2WritesUserLevel As _Mft2WritesUserLevel_e__Struct
    Public Mft2WritesFlushForLogFileFull As UInteger
    Public Mft2WritesLazyWriter As UInteger
    Public Mft2WritesUserRequest As UInteger
    Public RootIndexReads As ULong
    Public RootIndexReadBytes As ULong
    Public RootIndexWrites As ULong
    Public RootIndexWriteBytes As ULong
    Public BitmapReads As ULong
    Public BitmapReadBytes As ULong
    Public BitmapWrites As ULong
    Public BitmapWriteBytes As ULong
    Public BitmapWritesFlushForLogFileFull As UInteger
    Public BitmapWritesLazyWriter As UInteger
    Public BitmapWritesUserRequest As UInteger
    Public BitmapWritesUserLevel As _BitmapWritesUserLevel_e__Struct
    Public MftBitmapReads As ULong
    Public MftBitmapReadBytes As ULong
    Public MftBitmapWrites As ULong
    Public MftBitmapWriteBytes As ULong
    Public MftBitmapWritesFlushForLogFileFull As UInteger
    Public MftBitmapWritesLazyWriter As UInteger
    Public MftBitmapWritesUserRequest As UInteger
    Public MftBitmapWritesUserLevel As _MftBitmapWritesUserLevel_e__Struct
    Public UserIndexReads As ULong
    Public UserIndexReadBytes As ULong
    Public UserIndexWrites As ULong
    Public UserIndexWriteBytes As ULong
    Public LogFileReads As ULong
    Public LogFileReadBytes As ULong
    Public LogFileWrites As ULong
    Public LogFileWriteBytes As ULong
    Public Allocate As _Allocate_e__Struct
    Public DiskResourcesExhausted As UInteger
    Public VolumeTrimCount As ULong
    Public VolumeTrimTime As ULong
    Public VolumeTrimByteCount As ULong
    Public FileLevelTrimCount As ULong
    Public FileLevelTrimTime As ULong
    Public FileLevelTrimByteCount As ULong
    Public VolumeTrimSkippedCount As ULong
    Public VolumeTrimSkippedByteCount As ULong
    Public NtfsFillStatInfoFromMftRecordCalledCount As ULong
    Public NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount As ULong
    Public NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount As ULong
End Structure
import ctypes
from ctypes import wintypes

class NTFS_STATISTICS_EX(ctypes.Structure):
    _fields_ = [
        ("LogFileFullExceptions", wintypes.DWORD),
        ("OtherExceptions", wintypes.DWORD),
        ("MftReads", ctypes.c_ulonglong),
        ("MftReadBytes", ctypes.c_ulonglong),
        ("MftWrites", ctypes.c_ulonglong),
        ("MftWriteBytes", ctypes.c_ulonglong),
        ("MftWritesUserLevel", _MftWritesUserLevel_e__Struct),
        ("MftWritesFlushForLogFileFull", wintypes.DWORD),
        ("MftWritesLazyWriter", wintypes.DWORD),
        ("MftWritesUserRequest", wintypes.DWORD),
        ("Mft2Writes", ctypes.c_ulonglong),
        ("Mft2WriteBytes", ctypes.c_ulonglong),
        ("Mft2WritesUserLevel", _Mft2WritesUserLevel_e__Struct),
        ("Mft2WritesFlushForLogFileFull", wintypes.DWORD),
        ("Mft2WritesLazyWriter", wintypes.DWORD),
        ("Mft2WritesUserRequest", wintypes.DWORD),
        ("RootIndexReads", ctypes.c_ulonglong),
        ("RootIndexReadBytes", ctypes.c_ulonglong),
        ("RootIndexWrites", ctypes.c_ulonglong),
        ("RootIndexWriteBytes", ctypes.c_ulonglong),
        ("BitmapReads", ctypes.c_ulonglong),
        ("BitmapReadBytes", ctypes.c_ulonglong),
        ("BitmapWrites", ctypes.c_ulonglong),
        ("BitmapWriteBytes", ctypes.c_ulonglong),
        ("BitmapWritesFlushForLogFileFull", wintypes.DWORD),
        ("BitmapWritesLazyWriter", wintypes.DWORD),
        ("BitmapWritesUserRequest", wintypes.DWORD),
        ("BitmapWritesUserLevel", _BitmapWritesUserLevel_e__Struct),
        ("MftBitmapReads", ctypes.c_ulonglong),
        ("MftBitmapReadBytes", ctypes.c_ulonglong),
        ("MftBitmapWrites", ctypes.c_ulonglong),
        ("MftBitmapWriteBytes", ctypes.c_ulonglong),
        ("MftBitmapWritesFlushForLogFileFull", wintypes.DWORD),
        ("MftBitmapWritesLazyWriter", wintypes.DWORD),
        ("MftBitmapWritesUserRequest", wintypes.DWORD),
        ("MftBitmapWritesUserLevel", _MftBitmapWritesUserLevel_e__Struct),
        ("UserIndexReads", ctypes.c_ulonglong),
        ("UserIndexReadBytes", ctypes.c_ulonglong),
        ("UserIndexWrites", ctypes.c_ulonglong),
        ("UserIndexWriteBytes", ctypes.c_ulonglong),
        ("LogFileReads", ctypes.c_ulonglong),
        ("LogFileReadBytes", ctypes.c_ulonglong),
        ("LogFileWrites", ctypes.c_ulonglong),
        ("LogFileWriteBytes", ctypes.c_ulonglong),
        ("Allocate", _Allocate_e__Struct),
        ("DiskResourcesExhausted", wintypes.DWORD),
        ("VolumeTrimCount", ctypes.c_ulonglong),
        ("VolumeTrimTime", ctypes.c_ulonglong),
        ("VolumeTrimByteCount", ctypes.c_ulonglong),
        ("FileLevelTrimCount", ctypes.c_ulonglong),
        ("FileLevelTrimTime", ctypes.c_ulonglong),
        ("FileLevelTrimByteCount", ctypes.c_ulonglong),
        ("VolumeTrimSkippedCount", ctypes.c_ulonglong),
        ("VolumeTrimSkippedByteCount", ctypes.c_ulonglong),
        ("NtfsFillStatInfoFromMftRecordCalledCount", ctypes.c_ulonglong),
        ("NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount", ctypes.c_ulonglong),
        ("NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount", ctypes.c_ulonglong),
    ]
#[repr(C)]
pub struct NTFS_STATISTICS_EX {
    pub LogFileFullExceptions: u32,
    pub OtherExceptions: u32,
    pub MftReads: u64,
    pub MftReadBytes: u64,
    pub MftWrites: u64,
    pub MftWriteBytes: u64,
    pub MftWritesUserLevel: _MftWritesUserLevel_e__Struct,
    pub MftWritesFlushForLogFileFull: u32,
    pub MftWritesLazyWriter: u32,
    pub MftWritesUserRequest: u32,
    pub Mft2Writes: u64,
    pub Mft2WriteBytes: u64,
    pub Mft2WritesUserLevel: _Mft2WritesUserLevel_e__Struct,
    pub Mft2WritesFlushForLogFileFull: u32,
    pub Mft2WritesLazyWriter: u32,
    pub Mft2WritesUserRequest: u32,
    pub RootIndexReads: u64,
    pub RootIndexReadBytes: u64,
    pub RootIndexWrites: u64,
    pub RootIndexWriteBytes: u64,
    pub BitmapReads: u64,
    pub BitmapReadBytes: u64,
    pub BitmapWrites: u64,
    pub BitmapWriteBytes: u64,
    pub BitmapWritesFlushForLogFileFull: u32,
    pub BitmapWritesLazyWriter: u32,
    pub BitmapWritesUserRequest: u32,
    pub BitmapWritesUserLevel: _BitmapWritesUserLevel_e__Struct,
    pub MftBitmapReads: u64,
    pub MftBitmapReadBytes: u64,
    pub MftBitmapWrites: u64,
    pub MftBitmapWriteBytes: u64,
    pub MftBitmapWritesFlushForLogFileFull: u32,
    pub MftBitmapWritesLazyWriter: u32,
    pub MftBitmapWritesUserRequest: u32,
    pub MftBitmapWritesUserLevel: _MftBitmapWritesUserLevel_e__Struct,
    pub UserIndexReads: u64,
    pub UserIndexReadBytes: u64,
    pub UserIndexWrites: u64,
    pub UserIndexWriteBytes: u64,
    pub LogFileReads: u64,
    pub LogFileReadBytes: u64,
    pub LogFileWrites: u64,
    pub LogFileWriteBytes: u64,
    pub Allocate: _Allocate_e__Struct,
    pub DiskResourcesExhausted: u32,
    pub VolumeTrimCount: u64,
    pub VolumeTrimTime: u64,
    pub VolumeTrimByteCount: u64,
    pub FileLevelTrimCount: u64,
    pub FileLevelTrimTime: u64,
    pub FileLevelTrimByteCount: u64,
    pub VolumeTrimSkippedCount: u64,
    pub VolumeTrimSkippedByteCount: u64,
    pub NtfsFillStatInfoFromMftRecordCalledCount: u64,
    pub NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount: u64,
    pub NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount: u64,
}
import "golang.org/x/sys/windows"

type NTFS_STATISTICS_EX struct {
	LogFileFullExceptions uint32
	OtherExceptions uint32
	MftReads uint64
	MftReadBytes uint64
	MftWrites uint64
	MftWriteBytes uint64
	MftWritesUserLevel _MftWritesUserLevel_e__Struct
	MftWritesFlushForLogFileFull uint32
	MftWritesLazyWriter uint32
	MftWritesUserRequest uint32
	Mft2Writes uint64
	Mft2WriteBytes uint64
	Mft2WritesUserLevel _Mft2WritesUserLevel_e__Struct
	Mft2WritesFlushForLogFileFull uint32
	Mft2WritesLazyWriter uint32
	Mft2WritesUserRequest uint32
	RootIndexReads uint64
	RootIndexReadBytes uint64
	RootIndexWrites uint64
	RootIndexWriteBytes uint64
	BitmapReads uint64
	BitmapReadBytes uint64
	BitmapWrites uint64
	BitmapWriteBytes uint64
	BitmapWritesFlushForLogFileFull uint32
	BitmapWritesLazyWriter uint32
	BitmapWritesUserRequest uint32
	BitmapWritesUserLevel _BitmapWritesUserLevel_e__Struct
	MftBitmapReads uint64
	MftBitmapReadBytes uint64
	MftBitmapWrites uint64
	MftBitmapWriteBytes uint64
	MftBitmapWritesFlushForLogFileFull uint32
	MftBitmapWritesLazyWriter uint32
	MftBitmapWritesUserRequest uint32
	MftBitmapWritesUserLevel _MftBitmapWritesUserLevel_e__Struct
	UserIndexReads uint64
	UserIndexReadBytes uint64
	UserIndexWrites uint64
	UserIndexWriteBytes uint64
	LogFileReads uint64
	LogFileReadBytes uint64
	LogFileWrites uint64
	LogFileWriteBytes uint64
	Allocate _Allocate_e__Struct
	DiskResourcesExhausted uint32
	VolumeTrimCount uint64
	VolumeTrimTime uint64
	VolumeTrimByteCount uint64
	FileLevelTrimCount uint64
	FileLevelTrimTime uint64
	FileLevelTrimByteCount uint64
	VolumeTrimSkippedCount uint64
	VolumeTrimSkippedByteCount uint64
	NtfsFillStatInfoFromMftRecordCalledCount uint64
	NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount uint64
	NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount uint64
}
type
  NTFS_STATISTICS_EX = record
    LogFileFullExceptions: DWORD;
    OtherExceptions: DWORD;
    MftReads: UInt64;
    MftReadBytes: UInt64;
    MftWrites: UInt64;
    MftWriteBytes: UInt64;
    MftWritesUserLevel: _MftWritesUserLevel_e__Struct;
    MftWritesFlushForLogFileFull: DWORD;
    MftWritesLazyWriter: DWORD;
    MftWritesUserRequest: DWORD;
    Mft2Writes: UInt64;
    Mft2WriteBytes: UInt64;
    Mft2WritesUserLevel: _Mft2WritesUserLevel_e__Struct;
    Mft2WritesFlushForLogFileFull: DWORD;
    Mft2WritesLazyWriter: DWORD;
    Mft2WritesUserRequest: DWORD;
    RootIndexReads: UInt64;
    RootIndexReadBytes: UInt64;
    RootIndexWrites: UInt64;
    RootIndexWriteBytes: UInt64;
    BitmapReads: UInt64;
    BitmapReadBytes: UInt64;
    BitmapWrites: UInt64;
    BitmapWriteBytes: UInt64;
    BitmapWritesFlushForLogFileFull: DWORD;
    BitmapWritesLazyWriter: DWORD;
    BitmapWritesUserRequest: DWORD;
    BitmapWritesUserLevel: _BitmapWritesUserLevel_e__Struct;
    MftBitmapReads: UInt64;
    MftBitmapReadBytes: UInt64;
    MftBitmapWrites: UInt64;
    MftBitmapWriteBytes: UInt64;
    MftBitmapWritesFlushForLogFileFull: DWORD;
    MftBitmapWritesLazyWriter: DWORD;
    MftBitmapWritesUserRequest: DWORD;
    MftBitmapWritesUserLevel: _MftBitmapWritesUserLevel_e__Struct;
    UserIndexReads: UInt64;
    UserIndexReadBytes: UInt64;
    UserIndexWrites: UInt64;
    UserIndexWriteBytes: UInt64;
    LogFileReads: UInt64;
    LogFileReadBytes: UInt64;
    LogFileWrites: UInt64;
    LogFileWriteBytes: UInt64;
    Allocate: _Allocate_e__Struct;
    DiskResourcesExhausted: DWORD;
    VolumeTrimCount: UInt64;
    VolumeTrimTime: UInt64;
    VolumeTrimByteCount: UInt64;
    FileLevelTrimCount: UInt64;
    FileLevelTrimTime: UInt64;
    FileLevelTrimByteCount: UInt64;
    VolumeTrimSkippedCount: UInt64;
    VolumeTrimSkippedByteCount: UInt64;
    NtfsFillStatInfoFromMftRecordCalledCount: UInt64;
    NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount: UInt64;
    NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount: UInt64;
  end;
const NTFS_STATISTICS_EX = extern struct {
    LogFileFullExceptions: u32,
    OtherExceptions: u32,
    MftReads: u64,
    MftReadBytes: u64,
    MftWrites: u64,
    MftWriteBytes: u64,
    MftWritesUserLevel: _MftWritesUserLevel_e__Struct,
    MftWritesFlushForLogFileFull: u32,
    MftWritesLazyWriter: u32,
    MftWritesUserRequest: u32,
    Mft2Writes: u64,
    Mft2WriteBytes: u64,
    Mft2WritesUserLevel: _Mft2WritesUserLevel_e__Struct,
    Mft2WritesFlushForLogFileFull: u32,
    Mft2WritesLazyWriter: u32,
    Mft2WritesUserRequest: u32,
    RootIndexReads: u64,
    RootIndexReadBytes: u64,
    RootIndexWrites: u64,
    RootIndexWriteBytes: u64,
    BitmapReads: u64,
    BitmapReadBytes: u64,
    BitmapWrites: u64,
    BitmapWriteBytes: u64,
    BitmapWritesFlushForLogFileFull: u32,
    BitmapWritesLazyWriter: u32,
    BitmapWritesUserRequest: u32,
    BitmapWritesUserLevel: _BitmapWritesUserLevel_e__Struct,
    MftBitmapReads: u64,
    MftBitmapReadBytes: u64,
    MftBitmapWrites: u64,
    MftBitmapWriteBytes: u64,
    MftBitmapWritesFlushForLogFileFull: u32,
    MftBitmapWritesLazyWriter: u32,
    MftBitmapWritesUserRequest: u32,
    MftBitmapWritesUserLevel: _MftBitmapWritesUserLevel_e__Struct,
    UserIndexReads: u64,
    UserIndexReadBytes: u64,
    UserIndexWrites: u64,
    UserIndexWriteBytes: u64,
    LogFileReads: u64,
    LogFileReadBytes: u64,
    LogFileWrites: u64,
    LogFileWriteBytes: u64,
    Allocate: _Allocate_e__Struct,
    DiskResourcesExhausted: u32,
    VolumeTrimCount: u64,
    VolumeTrimTime: u64,
    VolumeTrimByteCount: u64,
    FileLevelTrimCount: u64,
    FileLevelTrimTime: u64,
    FileLevelTrimByteCount: u64,
    VolumeTrimSkippedCount: u64,
    VolumeTrimSkippedByteCount: u64,
    NtfsFillStatInfoFromMftRecordCalledCount: u64,
    NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount: u64,
    NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount: u64,
};
type
  NTFS_STATISTICS_EX {.bycopy.} = object
    LogFileFullExceptions: uint32
    OtherExceptions: uint32
    MftReads: uint64
    MftReadBytes: uint64
    MftWrites: uint64
    MftWriteBytes: uint64
    MftWritesUserLevel: _MftWritesUserLevel_e__Struct
    MftWritesFlushForLogFileFull: uint32
    MftWritesLazyWriter: uint32
    MftWritesUserRequest: uint32
    Mft2Writes: uint64
    Mft2WriteBytes: uint64
    Mft2WritesUserLevel: _Mft2WritesUserLevel_e__Struct
    Mft2WritesFlushForLogFileFull: uint32
    Mft2WritesLazyWriter: uint32
    Mft2WritesUserRequest: uint32
    RootIndexReads: uint64
    RootIndexReadBytes: uint64
    RootIndexWrites: uint64
    RootIndexWriteBytes: uint64
    BitmapReads: uint64
    BitmapReadBytes: uint64
    BitmapWrites: uint64
    BitmapWriteBytes: uint64
    BitmapWritesFlushForLogFileFull: uint32
    BitmapWritesLazyWriter: uint32
    BitmapWritesUserRequest: uint32
    BitmapWritesUserLevel: _BitmapWritesUserLevel_e__Struct
    MftBitmapReads: uint64
    MftBitmapReadBytes: uint64
    MftBitmapWrites: uint64
    MftBitmapWriteBytes: uint64
    MftBitmapWritesFlushForLogFileFull: uint32
    MftBitmapWritesLazyWriter: uint32
    MftBitmapWritesUserRequest: uint32
    MftBitmapWritesUserLevel: _MftBitmapWritesUserLevel_e__Struct
    UserIndexReads: uint64
    UserIndexReadBytes: uint64
    UserIndexWrites: uint64
    UserIndexWriteBytes: uint64
    LogFileReads: uint64
    LogFileReadBytes: uint64
    LogFileWrites: uint64
    LogFileWriteBytes: uint64
    Allocate: _Allocate_e__Struct
    DiskResourcesExhausted: uint32
    VolumeTrimCount: uint64
    VolumeTrimTime: uint64
    VolumeTrimByteCount: uint64
    FileLevelTrimCount: uint64
    FileLevelTrimTime: uint64
    FileLevelTrimByteCount: uint64
    VolumeTrimSkippedCount: uint64
    VolumeTrimSkippedByteCount: uint64
    NtfsFillStatInfoFromMftRecordCalledCount: uint64
    NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount: uint64
    NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount: uint64
struct NTFS_STATISTICS_EX
{
    uint LogFileFullExceptions;
    uint OtherExceptions;
    ulong MftReads;
    ulong MftReadBytes;
    ulong MftWrites;
    ulong MftWriteBytes;
    _MftWritesUserLevel_e__Struct MftWritesUserLevel;
    uint MftWritesFlushForLogFileFull;
    uint MftWritesLazyWriter;
    uint MftWritesUserRequest;
    ulong Mft2Writes;
    ulong Mft2WriteBytes;
    _Mft2WritesUserLevel_e__Struct Mft2WritesUserLevel;
    uint Mft2WritesFlushForLogFileFull;
    uint Mft2WritesLazyWriter;
    uint Mft2WritesUserRequest;
    ulong RootIndexReads;
    ulong RootIndexReadBytes;
    ulong RootIndexWrites;
    ulong RootIndexWriteBytes;
    ulong BitmapReads;
    ulong BitmapReadBytes;
    ulong BitmapWrites;
    ulong BitmapWriteBytes;
    uint BitmapWritesFlushForLogFileFull;
    uint BitmapWritesLazyWriter;
    uint BitmapWritesUserRequest;
    _BitmapWritesUserLevel_e__Struct BitmapWritesUserLevel;
    ulong MftBitmapReads;
    ulong MftBitmapReadBytes;
    ulong MftBitmapWrites;
    ulong MftBitmapWriteBytes;
    uint MftBitmapWritesFlushForLogFileFull;
    uint MftBitmapWritesLazyWriter;
    uint MftBitmapWritesUserRequest;
    _MftBitmapWritesUserLevel_e__Struct MftBitmapWritesUserLevel;
    ulong UserIndexReads;
    ulong UserIndexReadBytes;
    ulong UserIndexWrites;
    ulong UserIndexWriteBytes;
    ulong LogFileReads;
    ulong LogFileReadBytes;
    ulong LogFileWrites;
    ulong LogFileWriteBytes;
    _Allocate_e__Struct Allocate;
    uint DiskResourcesExhausted;
    ulong VolumeTrimCount;
    ulong VolumeTrimTime;
    ulong VolumeTrimByteCount;
    ulong FileLevelTrimCount;
    ulong FileLevelTrimTime;
    ulong FileLevelTrimByteCount;
    ulong VolumeTrimSkippedCount;
    ulong VolumeTrimSkippedByteCount;
    ulong NtfsFillStatInfoFromMftRecordCalledCount;
    ulong NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount;
    ulong NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount;
}

HSP用 定義

HSP3.7/3.8 は構造体機能が無いため4byte整数配列(dim)+peek/poke で操作(32/64bitでサイズ・位置が異なる場合はタブで分割)。IronHSP は NSTRUCT(#defstruct/stdim/->)で32/64bit共通。

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; NTFS_STATISTICS_EX サイズ: 496 バイト(x64)
dim st, 124    ; 4byte整数×124(構造体サイズ 496 / 4 切り上げ)
; LogFileFullExceptions : DWORD (+0, 4byte)  st.0 = 値  /  値 = st.0   (lpoke/lpeek も可)
; OtherExceptions : DWORD (+4, 4byte)  st.1 = 値  /  値 = st.1   (lpoke/lpeek も可)
; MftReads : ULONGLONG (+8, 8byte)  qpoke st,8,値 / qpeek(st,8)  ※IronHSPのみ。3.7/3.8は lpoke st,8,下位 : lpoke st,12,上位
; MftReadBytes : ULONGLONG (+16, 8byte)  qpoke st,16,値 / qpeek(st,16)  ※IronHSPのみ。3.7/3.8は lpoke st,16,下位 : lpoke st,20,上位
; MftWrites : ULONGLONG (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; MftWriteBytes : ULONGLONG (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; MftWritesUserLevel : _MftWritesUserLevel_e__Struct (+40, 16byte)  varptr(st)+40 を基点に操作(16byte:入れ子/配列)
; MftWritesFlushForLogFileFull : DWORD (+56, 4byte)  st.14 = 値  /  値 = st.14   (lpoke/lpeek も可)
; MftWritesLazyWriter : DWORD (+60, 4byte)  st.15 = 値  /  値 = st.15   (lpoke/lpeek も可)
; MftWritesUserRequest : DWORD (+64, 4byte)  st.16 = 値  /  値 = st.16   (lpoke/lpeek も可)
; Mft2Writes : ULONGLONG (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; Mft2WriteBytes : ULONGLONG (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; Mft2WritesUserLevel : _Mft2WritesUserLevel_e__Struct (+88, 16byte)  varptr(st)+88 を基点に操作(16byte:入れ子/配列)
; Mft2WritesFlushForLogFileFull : DWORD (+104, 4byte)  st.26 = 値  /  値 = st.26   (lpoke/lpeek も可)
; Mft2WritesLazyWriter : DWORD (+108, 4byte)  st.27 = 値  /  値 = st.27   (lpoke/lpeek も可)
; Mft2WritesUserRequest : DWORD (+112, 4byte)  st.28 = 値  /  値 = st.28   (lpoke/lpeek も可)
; RootIndexReads : ULONGLONG (+120, 8byte)  qpoke st,120,値 / qpeek(st,120)  ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; RootIndexReadBytes : ULONGLONG (+128, 8byte)  qpoke st,128,値 / qpeek(st,128)  ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; RootIndexWrites : ULONGLONG (+136, 8byte)  qpoke st,136,値 / qpeek(st,136)  ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; RootIndexWriteBytes : ULONGLONG (+144, 8byte)  qpoke st,144,値 / qpeek(st,144)  ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; BitmapReads : ULONGLONG (+152, 8byte)  qpoke st,152,値 / qpeek(st,152)  ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; BitmapReadBytes : ULONGLONG (+160, 8byte)  qpoke st,160,値 / qpeek(st,160)  ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; BitmapWrites : ULONGLONG (+168, 8byte)  qpoke st,168,値 / qpeek(st,168)  ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; BitmapWriteBytes : ULONGLONG (+176, 8byte)  qpoke st,176,値 / qpeek(st,176)  ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; BitmapWritesFlushForLogFileFull : DWORD (+184, 4byte)  st.46 = 値  /  値 = st.46   (lpoke/lpeek も可)
; BitmapWritesLazyWriter : DWORD (+188, 4byte)  st.47 = 値  /  値 = st.47   (lpoke/lpeek も可)
; BitmapWritesUserRequest : DWORD (+192, 4byte)  st.48 = 値  /  値 = st.48   (lpoke/lpeek も可)
; BitmapWritesUserLevel : _BitmapWritesUserLevel_e__Struct (+196, 16byte)  varptr(st)+196 を基点に操作(16byte:入れ子/配列)
; MftBitmapReads : ULONGLONG (+216, 8byte)  qpoke st,216,値 / qpeek(st,216)  ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; MftBitmapReadBytes : ULONGLONG (+224, 8byte)  qpoke st,224,値 / qpeek(st,224)  ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; MftBitmapWrites : ULONGLONG (+232, 8byte)  qpoke st,232,値 / qpeek(st,232)  ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; MftBitmapWriteBytes : ULONGLONG (+240, 8byte)  qpoke st,240,値 / qpeek(st,240)  ※IronHSPのみ。3.7/3.8は lpoke st,240,下位 : lpoke st,244,上位
; MftBitmapWritesFlushForLogFileFull : DWORD (+248, 4byte)  st.62 = 値  /  値 = st.62   (lpoke/lpeek も可)
; MftBitmapWritesLazyWriter : DWORD (+252, 4byte)  st.63 = 値  /  値 = st.63   (lpoke/lpeek も可)
; MftBitmapWritesUserRequest : DWORD (+256, 4byte)  st.64 = 値  /  値 = st.64   (lpoke/lpeek も可)
; MftBitmapWritesUserLevel : _MftBitmapWritesUserLevel_e__Struct (+260, 16byte)  varptr(st)+260 を基点に操作(16byte:入れ子/配列)
; UserIndexReads : ULONGLONG (+280, 8byte)  qpoke st,280,値 / qpeek(st,280)  ※IronHSPのみ。3.7/3.8は lpoke st,280,下位 : lpoke st,284,上位
; UserIndexReadBytes : ULONGLONG (+288, 8byte)  qpoke st,288,値 / qpeek(st,288)  ※IronHSPのみ。3.7/3.8は lpoke st,288,下位 : lpoke st,292,上位
; UserIndexWrites : ULONGLONG (+296, 8byte)  qpoke st,296,値 / qpeek(st,296)  ※IronHSPのみ。3.7/3.8は lpoke st,296,下位 : lpoke st,300,上位
; UserIndexWriteBytes : ULONGLONG (+304, 8byte)  qpoke st,304,値 / qpeek(st,304)  ※IronHSPのみ。3.7/3.8は lpoke st,304,下位 : lpoke st,308,上位
; LogFileReads : ULONGLONG (+312, 8byte)  qpoke st,312,値 / qpeek(st,312)  ※IronHSPのみ。3.7/3.8は lpoke st,312,下位 : lpoke st,316,上位
; LogFileReadBytes : ULONGLONG (+320, 8byte)  qpoke st,320,値 / qpeek(st,320)  ※IronHSPのみ。3.7/3.8は lpoke st,320,下位 : lpoke st,324,上位
; LogFileWrites : ULONGLONG (+328, 8byte)  qpoke st,328,値 / qpeek(st,328)  ※IronHSPのみ。3.7/3.8は lpoke st,328,下位 : lpoke st,332,上位
; LogFileWriteBytes : ULONGLONG (+336, 8byte)  qpoke st,336,値 / qpeek(st,336)  ※IronHSPのみ。3.7/3.8は lpoke st,336,下位 : lpoke st,340,上位
; Allocate : _Allocate_e__Struct (+344, 56byte)  varptr(st)+344 を基点に操作(56byte:入れ子/配列)
; DiskResourcesExhausted : DWORD (+400, 4byte)  st.100 = 値  /  値 = st.100   (lpoke/lpeek も可)
; VolumeTrimCount : ULONGLONG (+408, 8byte)  qpoke st,408,値 / qpeek(st,408)  ※IronHSPのみ。3.7/3.8は lpoke st,408,下位 : lpoke st,412,上位
; VolumeTrimTime : ULONGLONG (+416, 8byte)  qpoke st,416,値 / qpeek(st,416)  ※IronHSPのみ。3.7/3.8は lpoke st,416,下位 : lpoke st,420,上位
; VolumeTrimByteCount : ULONGLONG (+424, 8byte)  qpoke st,424,値 / qpeek(st,424)  ※IronHSPのみ。3.7/3.8は lpoke st,424,下位 : lpoke st,428,上位
; FileLevelTrimCount : ULONGLONG (+432, 8byte)  qpoke st,432,値 / qpeek(st,432)  ※IronHSPのみ。3.7/3.8は lpoke st,432,下位 : lpoke st,436,上位
; FileLevelTrimTime : ULONGLONG (+440, 8byte)  qpoke st,440,値 / qpeek(st,440)  ※IronHSPのみ。3.7/3.8は lpoke st,440,下位 : lpoke st,444,上位
; FileLevelTrimByteCount : ULONGLONG (+448, 8byte)  qpoke st,448,値 / qpeek(st,448)  ※IronHSPのみ。3.7/3.8は lpoke st,448,下位 : lpoke st,452,上位
; VolumeTrimSkippedCount : ULONGLONG (+456, 8byte)  qpoke st,456,値 / qpeek(st,456)  ※IronHSPのみ。3.7/3.8は lpoke st,456,下位 : lpoke st,460,上位
; VolumeTrimSkippedByteCount : ULONGLONG (+464, 8byte)  qpoke st,464,値 / qpeek(st,464)  ※IronHSPのみ。3.7/3.8は lpoke st,464,下位 : lpoke st,468,上位
; NtfsFillStatInfoFromMftRecordCalledCount : ULONGLONG (+472, 8byte)  qpoke st,472,値 / qpeek(st,472)  ※IronHSPのみ。3.7/3.8は lpoke st,472,下位 : lpoke st,476,上位
; NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount : ULONGLONG (+480, 8byte)  qpoke st,480,値 / qpeek(st,480)  ※IronHSPのみ。3.7/3.8は lpoke st,480,下位 : lpoke st,484,上位
; NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount : ULONGLONG (+488, 8byte)  qpoke st,488,値 / qpeek(st,488)  ※IronHSPのみ。3.7/3.8は lpoke st,488,下位 : lpoke st,492,上位
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
#defstruct global NTFS_STATISTICS_EX
    #field int LogFileFullExceptions
    #field int OtherExceptions
    #field int64 MftReads
    #field int64 MftReadBytes
    #field int64 MftWrites
    #field int64 MftWriteBytes
    #field _MftWritesUserLevel_e__Struct MftWritesUserLevel
    #field int MftWritesFlushForLogFileFull
    #field int MftWritesLazyWriter
    #field int MftWritesUserRequest
    #field int64 Mft2Writes
    #field int64 Mft2WriteBytes
    #field _Mft2WritesUserLevel_e__Struct Mft2WritesUserLevel
    #field int Mft2WritesFlushForLogFileFull
    #field int Mft2WritesLazyWriter
    #field int Mft2WritesUserRequest
    #field int64 RootIndexReads
    #field int64 RootIndexReadBytes
    #field int64 RootIndexWrites
    #field int64 RootIndexWriteBytes
    #field int64 BitmapReads
    #field int64 BitmapReadBytes
    #field int64 BitmapWrites
    #field int64 BitmapWriteBytes
    #field int BitmapWritesFlushForLogFileFull
    #field int BitmapWritesLazyWriter
    #field int BitmapWritesUserRequest
    #field _BitmapWritesUserLevel_e__Struct BitmapWritesUserLevel
    #field int64 MftBitmapReads
    #field int64 MftBitmapReadBytes
    #field int64 MftBitmapWrites
    #field int64 MftBitmapWriteBytes
    #field int MftBitmapWritesFlushForLogFileFull
    #field int MftBitmapWritesLazyWriter
    #field int MftBitmapWritesUserRequest
    #field _MftBitmapWritesUserLevel_e__Struct MftBitmapWritesUserLevel
    #field int64 UserIndexReads
    #field int64 UserIndexReadBytes
    #field int64 UserIndexWrites
    #field int64 UserIndexWriteBytes
    #field int64 LogFileReads
    #field int64 LogFileReadBytes
    #field int64 LogFileWrites
    #field int64 LogFileWriteBytes
    #field _Allocate_e__Struct Allocate
    #field int DiskResourcesExhausted
    #field int64 VolumeTrimCount
    #field int64 VolumeTrimTime
    #field int64 VolumeTrimByteCount
    #field int64 FileLevelTrimCount
    #field int64 FileLevelTrimTime
    #field int64 FileLevelTrimByteCount
    #field int64 VolumeTrimSkippedCount
    #field int64 VolumeTrimSkippedByteCount
    #field int64 NtfsFillStatInfoFromMftRecordCalledCount
    #field int64 NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount
    #field int64 NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount
#endstruct

stdim st, NTFS_STATISTICS_EX        ; NSTRUCT 変数を確保
st->LogFileFullExceptions = 100
mes "LogFileFullExceptions=" + st->LogFileFullExceptions