ホーム › System.Ioctl › NTFS_STATISTICS_EX
NTFS_STATISTICS_EX
構造体サイズ=各フィールドのバイト数(x64/x86 で異なる場合は x64/x86 と併記)。x64/x86 列=フィールドのバイトオフセット(HSPで dupptr / lpoke / wpoke 等に使用)。
フィールド
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| LogFileFullExceptions | DWORD | 4 | +0 | +0 | ログ ファイルが満杯になったことにより発生した例外の数。 |
| OtherExceptions | DWORD | 4 | +4 | +4 | 発生したその他の例外の数。 |
| MftReads | ULONGLONG | 8 | +8 | +8 | マスター ファイル テーブル (MFT) に対する読み取り操作の数。 |
| MftReadBytes | ULONGLONG | 8 | +16 | +16 | MFT から読み取られたバイト数。 |
| MftWrites | ULONGLONG | 8 | +24 | +24 | MFT に対する書き込み操作の数。 |
| MftWriteBytes | ULONGLONG | 8 | +32 | +32 | MFT に書き込まれたバイト数。 |
| MftWritesUserLevel | _MftWritesUserLevel_e__Struct | 16 | +40 | +40 | MFT書き込みの発生元レベル別内訳を保持する内部構造体。 |
| MftWritesFlushForLogFileFull | DWORD | 4 | +56 | +56 | ログ ファイルが満杯になったために実行された MFT のフラッシュの数。 |
| MftWritesLazyWriter | DWORD | 4 | +60 | +60 | 遅延書き込みスレッドによって実行された MFT 書き込み操作の数。 |
| MftWritesUserRequest | DWORD | 4 | +64 | +64 | 予約済みです。 |
| Mft2Writes | ULONGLONG | 8 | +72 | +72 | MFT ミラーに対する書き込み操作の数。 |
| Mft2WriteBytes | ULONGLONG | 8 | +80 | +80 | MFT ミラーに書き込まれたバイト数。 |
| Mft2WritesUserLevel | _Mft2WritesUserLevel_e__Struct | 16 | +88 | +88 | MFTミラー書き込みの発生元レベル別内訳を保持する内部構造体。 |
| Mft2WritesFlushForLogFileFull | DWORD | 4 | +104 | +104 | ログ ファイルが満杯になったために実行された MFT ミラーのフラッシュの数。 |
| Mft2WritesLazyWriter | DWORD | 4 | +108 | +108 | 遅延書き込みスレッドによって実行された MFT ミラー書き込み操作の数。 |
| Mft2WritesUserRequest | DWORD | 4 | +112 | +112 | 予約済みです。 |
| RootIndexReads | ULONGLONG | 8 | +120 | +120 | ルート インデックスに対する読み取り操作の数。 |
| RootIndexReadBytes | ULONGLONG | 8 | +128 | +128 | ルート インデックスから読み取られたバイト数。 |
| RootIndexWrites | ULONGLONG | 8 | +136 | +136 | ルート インデックスに対する書き込み操作の数。 |
| RootIndexWriteBytes | ULONGLONG | 8 | +144 | +144 | ルート インデックスに書き込まれたバイト数。 |
| BitmapReads | ULONGLONG | 8 | +152 | +152 | クラスター割り当てビットマップに対する読み取り操作の数。 |
| BitmapReadBytes | ULONGLONG | 8 | +160 | +160 | クラスター割り当てビットマップから読み取られたバイト数。 |
| BitmapWrites | ULONGLONG | 8 | +168 | +168 | クラスター割り当てビットマップに対する書き込み操作の数。 |
| BitmapWriteBytes | ULONGLONG | 8 | +176 | +176 | クラスター割り当てビットマップに書き込まれたバイト数。 |
| BitmapWritesFlushForLogFileFull | DWORD | 4 | +184 | +184 | ログ ファイルが満杯になったために実行されたビットマップのフラッシュの数。 |
| BitmapWritesLazyWriter | DWORD | 4 | +188 | +188 | 遅延書き込みスレッドによって実行されたビットマップ書き込み操作の数。 |
| BitmapWritesUserRequest | DWORD | 4 | +192 | +192 | 予約済みです。 |
| BitmapWritesUserLevel | _BitmapWritesUserLevel_e__Struct | 16 | +196 | +196 | ビットマップ書き込みの発生元レベル別内訳を保持する内部構造体。 |
| MftBitmapReads | ULONGLONG | 8 | +216 | +216 | MFT ビットマップに対する読み取り操作の数。 |
| MftBitmapReadBytes | ULONGLONG | 8 | +224 | +224 | MFT ビットマップから読み取られたバイト数。 |
| MftBitmapWrites | ULONGLONG | 8 | +232 | +232 | MFT ビットマップに対する書き込み操作の数。 |
| MftBitmapWriteBytes | ULONGLONG | 8 | +240 | +240 | MFT ビットマップに書き込まれたバイト数。 |
| MftBitmapWritesFlushForLogFileFull | DWORD | 4 | +248 | +248 | ログ ファイルが満杯になったために実行された MFT ビットマップのフラッシュの数。 |
| MftBitmapWritesLazyWriter | DWORD | 4 | +252 | +252 | 遅延書き込みスレッドによって実行された MFT ビットマップ書き込み操作の数。 |
| MftBitmapWritesUserRequest | DWORD | 4 | +256 | +256 | 予約済みです。 |
| MftBitmapWritesUserLevel | _MftBitmapWritesUserLevel_e__Struct | 16 | +260 | +260 | MFTビットマップ書き込みの発生元レベル別内訳を保持する内部構造体。 |
| UserIndexReads | ULONGLONG | 8 | +280 | +280 | ユーザー インデックスに対する読み取り操作の数。 |
| UserIndexReadBytes | ULONGLONG | 8 | +288 | +288 | ユーザー インデックスから読み取られたバイト数。 |
| UserIndexWrites | ULONGLONG | 8 | +296 | +296 | ユーザー インデックスに対する書き込み操作の数。 |
| UserIndexWriteBytes | ULONGLONG | 8 | +304 | +304 | ユーザー インデックスに書き込まれたバイト数。 |
| LogFileReads | ULONGLONG | 8 | +312 | +312 | ログ ファイルに対する読み取り操作の数。 |
| LogFileReadBytes | ULONGLONG | 8 | +320 | +320 | ログ ファイルから読み取られたバイト数。 |
| LogFileWrites | ULONGLONG | 8 | +328 | +328 | ログ ファイルに対する書き込み操作の数。 |
| LogFileWriteBytes | ULONGLONG | 8 | +336 | +336 | ログ ファイルに書き込まれたバイト数。 |
| Allocate | _Allocate_e__Struct | 56 | +344 | +344 | クラスタ割り当て活動の統計を保持する内部構造体。 |
| DiskResourcesExhausted | DWORD | 4 | +400 | +400 | 現在のシン プロビジョニング ボリュームで使用するストレージのスラブの取得に失敗した回数。 |
| VolumeTrimCount | ULONGLONG | 8 | +408 | +408 | 発行されたボリューム レベルのトリム操作の数。 |
| VolumeTrimTime | ULONGLONG | 8 | +416 | +416 | すべてのボリューム レベルのトリム操作に要した合計時間。この値を QueryPerformanceFrequency または KeQueryPerformanceCounter から得られる周波数の値で割ると、秒単位の時間が得られます。 |
| VolumeTrimByteCount | ULONGLONG | 8 | +424 | +424 | すべてのボリューム レベルのトリム操作によって発行された合計バイト数。 |
| FileLevelTrimCount | ULONGLONG | 8 | +432 | +432 | 発行されたファイル レベルのトリム操作の数。 |
| FileLevelTrimTime | ULONGLONG | 8 | +440 | +440 | すべてのファイル レベルのトリム操作に要した合計時間。この値を QueryPerformanceFrequency または KeQueryPerformanceCounter から得られる周波数の値で割ると、秒単位の時間が得られます。 |
| FileLevelTrimByteCount | ULONGLONG | 8 | +448 | +448 | すべてのファイル レベルのトリム操作によって発行された合計バイト数。 |
| VolumeTrimSkippedCount | ULONGLONG | 8 | +456 | +456 | ボリューム レベルのトリム操作が、ストレージ スタックへ送信される前に中止された回数。 |
| VolumeTrimSkippedByteCount | ULONGLONG | 8 | +464 | +464 | スキップされたためにボリューム レベルのトリム操作で送信されなかったバイト数。 |
| NtfsFillStatInfoFromMftRecordCalledCount | ULONGLONG | 8 | +472 | +472 | MFTレコードからの統計情報取得処理が呼ばれた回数。 |
| NtfsFillStatInfoFromMftRecordBailedBecauseOfAttributeListCount | ULONGLONG | 8 | +480 | +480 | 属性リストの存在により統計取得を中断した回数。 |
| NtfsFillStatInfoFromMftRecordBailedBecauseOfNonResReparsePointCount | ULONGLONG | 8 | +488 | +488 | 非常駐の再解析ポイントにより統計取得を中断した回数。 |
構造体: _MftWritesUserLevel_e__Struct x64 16B / x86 16B
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Write | DWORD | 4 | +0 | +0 | 書き込み操作に起因する MFT ミラー書き込みの数。 |
| Create | DWORD | 4 | +4 | +4 | 作成操作に起因する MFT ミラー書き込みの数。 |
| SetInfo | DWORD | 4 | +8 | +8 | ファイル情報の設定に起因する MFT ミラー書き込みの数。 |
| Flush | DWORD | 4 | +12 | +12 | フラッシュ操作に起因する MFT ミラー書き込みの数。 |
構造体: _Mft2WritesUserLevel_e__Struct x64 16B / x86 16B
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Write | DWORD | 4 | +0 | +0 | 書き込み操作に起因する MFT ミラー書き込みの数。 |
| Create | DWORD | 4 | +4 | +4 | 作成操作に起因する MFT ミラー書き込みの数。 |
| SetInfo | DWORD | 4 | +8 | +8 | ファイル情報の設定に起因する MFT ミラー書き込みの数。 |
| Flush | DWORD | 4 | +12 | +12 | フラッシュ操作に起因する MFT ミラー書き込みの数。 |
構造体: _BitmapWritesUserLevel_e__Struct x64 16B / x86 16B
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Write | DWORD | 4 | +0 | +0 | 書き込み操作に起因する MFT ミラー書き込みの数。 |
| Create | DWORD | 4 | +4 | +4 | 作成操作に起因する MFT ミラー書き込みの数。 |
| SetInfo | DWORD | 4 | +8 | +8 | ファイル情報の設定に起因する MFT ミラー書き込みの数。 |
| Flush | DWORD | 4 | +12 | +12 | フラッシュ操作に起因する MFT ミラー書き込みの数。 |
構造体: _MftBitmapWritesUserLevel_e__Struct x64 16B / x86 16B
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Write | DWORD | 4 | +0 | +0 | 書き込み操作に起因する MFT ミラー書き込みの数。 |
| Create | DWORD | 4 | +4 | +4 | 作成操作に起因する MFT ミラー書き込みの数。 |
| SetInfo | DWORD | 4 | +8 | +8 | ファイル情報の設定に起因する MFT ミラー書き込みの数。 |
| Flush | DWORD | 4 | +12 | +12 | フラッシュ操作に起因する MFT ミラー書き込みの数。 |
構造体: _Allocate_e__Struct x64 56B / x86 56B
| フィールド | 型 | サイズ | x64 | x86 | 説明 |
|---|---|---|---|---|---|
| Calls | DWORD | 4 | +0 | +0 | クラスターを割り当てるための個々の呼び出しの数。 |
| RunsReturned | DWORD | 4 | +4 | +4 | すべての要求を満たすために使用されたラン (run) の数。 |
| Hints | DWORD | 4 | +8 | +8 | ヒントが指定された回数。 |
| HintsHonored | DWORD | 4 | +12 | +12 | ヒントが有効であった回数。 |
| Cache | DWORD | 4 | +16 | +16 | ヒント以外でキャッシュが有効であった回数。 |
| CacheMiss | DWORD | 4 | +20 | +20 | キャッシュが有効でなかった回数。 |
| Clusters | ULONGLONG | 8 | +24 | +24 | 割り当てられたクラスターの数。 |
| HintsClusters | ULONGLONG | 8 | +32 | +32 | ヒントによって割り当てられたクラスターの数。 |
| CacheClusters | ULONGLONG | 8 | +40 | +40 | ヒント以外でキャッシュによって割り当てられたクラスターの数。 |
| CacheMissClusters | ULONGLONG | 8 | +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)
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 Structureimport 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: uint64struct 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