Win32 API 日本語リファレンス
ホームSystem.Diagnostics.Debug.Extensions › KDDEBUGGER_DATA64

KDDEBUGGER_DATA64

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

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

フィールド

フィールドサイズx64x86説明
HeaderDBGKD_DEBUG_DATA_HEADER6424+0+0デバッガデータブロックの共通ヘッダ(64ビット)。
KernBaseULONGLONG8+24+24カーネルイメージの基底アドレス。
BreakpointWithStatusULONGLONG8+32+32ステータス付きブレークポイント命令のアドレス。
SavedContextULONGLONG8+40+40保存済みコンテキストのアドレス。
ThCallbackStackWORD2+48+48スレッドのコールバックスタックのオフセット。
NextCallbackWORD2+50+50次のコールバックフレームのオフセット。
FramePointerWORD2+52+52コールバックフレームポインタのオフセット。
_bitfieldWORD2+54+54各種フラグをまとめたビットフィールド。
KiCallUserModeULONGLONG8+56+56KiCallUserMode関数のアドレス。
KeUserCallbackDispatcherULONGLONG8+64+64ユーザーコールバックディスパッチャのアドレス。
PsLoadedModuleListULONGLONG8+72+72読み込み済みモジュールリストのアドレス。
PsActiveProcessHeadULONGLONG8+80+80アクティブプロセスリストの先頭アドレス。
PspCidTableULONGLONG8+88+88クライアントID(PID/TID)テーブルのアドレス。
ExpSystemResourcesListULONGLONG8+96+96システムリソースリストのアドレス。
ExpPagedPoolDescriptorULONGLONG8+104+104ページプール記述子のアドレス。
ExpNumberOfPagedPoolsULONGLONG8+112+112ページプールの数を保持する変数のアドレス。
KeTimeIncrementULONGLONG8+120+120タイマ刻み(時間増分)を保持する変数のアドレス。
KeBugCheckCallbackListHeadULONGLONG8+128+128バグチェックコールバックリストの先頭アドレス。
KiBugcheckDataULONGLONG8+136+136バグチェックデータ配列のアドレス。
IopErrorLogListHeadULONGLONG8+144+144I/Oエラーログリストの先頭アドレス。
ObpRootDirectoryObjectULONGLONG8+152+152オブジェクトマネージャのルートディレクトリのアドレス。
ObpTypeObjectTypeULONGLONG8+160+160型オブジェクトのタイプを示すアドレス。
MmSystemCacheStartULONGLONG8+168+168システムキャッシュの開始アドレス。
MmSystemCacheEndULONGLONG8+176+176システムキャッシュの終了アドレス。
MmSystemCacheWsULONGLONG8+184+184システムキャッシュのワーキングセット情報のアドレス。
MmPfnDatabaseULONGLONG8+192+192ページフレーム番号(PFN)データベースのアドレス。
MmSystemPtesStartULONGLONG8+200+200システムPTE領域の開始アドレス。
MmSystemPtesEndULONGLONG8+208+208システムPTE領域の終了アドレス。
MmSubsectionBaseULONGLONG8+216+216サブセクションの基底アドレス。
MmNumberOfPagingFilesULONGLONG8+224+224ページングファイル数を保持する変数のアドレス。
MmLowestPhysicalPageULONGLONG8+232+232最小物理ページ番号を保持する変数のアドレス。
MmHighestPhysicalPageULONGLONG8+240+240最大物理ページ番号を保持する変数のアドレス。
MmNumberOfPhysicalPagesULONGLONG8+248+248物理ページ総数を保持する変数のアドレス。
MmMaximumNonPagedPoolInBytesULONGLONG8+256+256非ページプールの最大バイト数を保持する変数のアドレス。
MmNonPagedSystemStartULONGLONG8+264+264非ページシステム領域の開始アドレス。
MmNonPagedPoolStartULONGLONG8+272+272非ページプールの開始アドレス。
MmNonPagedPoolEndULONGLONG8+280+280非ページプールの終了アドレス。
MmPagedPoolStartULONGLONG8+288+288ページプールの開始アドレス。
MmPagedPoolEndULONGLONG8+296+296ページプールの終了アドレス。
MmPagedPoolInformationULONGLONG8+304+304ページプール情報のアドレス。
MmPageSizeULONGLONG8+312+312メモリページのサイズ(バイト)。
MmSizeOfPagedPoolInBytesULONGLONG8+320+320ページプールのサイズ(バイト)を保持する変数のアドレス。
MmTotalCommitLimitULONGLONG8+328+328コミット上限を保持する変数のアドレス。
MmTotalCommittedPagesULONGLONG8+336+336コミット済みページ数を保持する変数のアドレス。
MmSharedCommitULONGLONG8+344+344共有コミット量を保持する変数のアドレス。
MmDriverCommitULONGLONG8+352+352ドライバのコミット量を保持する変数のアドレス。
MmProcessCommitULONGLONG8+360+360プロセスのコミット量を保持する変数のアドレス。
MmPagedPoolCommitULONGLONG8+368+368ページプールのコミット量を保持する変数のアドレス。
MmExtendedCommitULONGLONG8+376+376拡張コミット量を保持する変数のアドレス。
MmZeroedPageListHeadULONGLONG8+384+384ゼロ化済みページリストの先頭アドレス。
MmFreePageListHeadULONGLONG8+392+392空きページリストの先頭アドレス。
MmStandbyPageListHeadULONGLONG8+400+400スタンバイページリストの先頭アドレス。
MmModifiedPageListHeadULONGLONG8+408+408変更済みページリストの先頭アドレス。
MmModifiedNoWritePageListHeadULONGLONG8+416+416書き戻し不要の変更済みページリストの先頭アドレス。
MmAvailablePagesULONGLONG8+424+424利用可能ページ数を保持する変数のアドレス。
MmResidentAvailablePagesULONGLONG8+432+432常駐可能ページ数を保持する変数のアドレス。
PoolTrackTableULONGLONG8+440+440プール追跡テーブルのアドレス。
NonPagedPoolDescriptorULONGLONG8+448+448非ページプール記述子のアドレス。
MmHighestUserAddressULONGLONG8+456+456ユーザー空間の最高アドレスを保持する変数のアドレス。
MmSystemRangeStartULONGLONG8+464+464システム空間の開始アドレスを保持する変数のアドレス。
MmUserProbeAddressULONGLONG8+472+472ユーザーポインタ検証上限アドレスを保持する変数のアドレス。
KdPrintCircularBufferULONGLONG8+480+480デバッグ出力用循環バッファの開始アドレス。
KdPrintCircularBufferEndULONGLONG8+488+488デバッグ出力用循環バッファの終了アドレス。
KdPrintWritePointerULONGLONG8+496+496循環バッファの書き込み位置を保持するアドレス。
KdPrintRolloverCountULONGLONG8+504+504循環バッファのロールオーバー回数を保持するアドレス。
MmLoadedUserImageListULONGLONG8+512+512読み込み済みユーザーイメージリストのアドレス。
NtBuildLabULONGLONG8+520+520OSビルドラボ文字列のアドレス。
KiNormalSystemCallULONGLONG8+528+528通常システムコールエントリのアドレス。
KiProcessorBlockULONGLONG8+536+536プロセッサ制御ブロック配列のアドレス。
MmUnloadedDriversULONGLONG8+544+544アンロード済みドライバ情報のアドレス。
MmLastUnloadedDriverULONGLONG8+552+552最後にアンロードされたドライバのインデックスのアドレス。
MmTriageActionTakenULONGLONG8+560+560トリアージ処理状態を保持する変数のアドレス。
MmSpecialPoolTagULONGLONG8+568+568特殊プールタグを保持する変数のアドレス。
KernelVerifierULONGLONG8+576+576カーネルベリファイアフラグのアドレス。
MmVerifierDataULONGLONG8+584+584ベリファイアデータのアドレス。
MmAllocatedNonPagedPoolULONGLONG8+592+592割り当て済み非ページプール量のアドレス。
MmPeakCommitmentULONGLONG8+600+600コミットのピーク量を保持する変数のアドレス。
MmTotalCommitLimitMaximumULONGLONG8+608+608コミット上限の最大値を保持する変数のアドレス。
CmNtCSDVersionULONGLONG8+616+616サービスパック(CSD)バージョンのアドレス。
MmPhysicalMemoryBlockULONGLONG8+624+624物理メモリブロック記述子のアドレス。
MmSessionBaseULONGLONG8+632+632セッション空間の基底アドレス。
MmSessionSizeULONGLONG8+640+640セッション空間のサイズを保持する変数のアドレス。
MmSystemParentTablePageULONGLONG8+648+648システム親ページテーブルページのアドレス。
MmVirtualTranslationBaseULONGLONG8+656+656仮想アドレス変換の基底情報のアドレス。
OffsetKThreadNextProcessorWORD2+664+664KTHREAD内のNextProcessorフィールドのオフセット。
OffsetKThreadTebWORD2+666+666KTHREAD内のTEBポインタのオフセット。
OffsetKThreadKernelStackWORD2+668+668KTHREAD内のカーネルスタックのオフセット。
OffsetKThreadInitialStackWORD2+670+670KTHREAD内の初期スタックのオフセット。
OffsetKThreadApcProcessWORD2+672+672KTHREAD内のAPCプロセスのオフセット。
OffsetKThreadStateWORD2+674+674KTHREAD内のスレッド状態のオフセット。
OffsetKThreadBStoreWORD2+676+676KTHREAD内のバッキングストアのオフセット(IA64)。
OffsetKThreadBStoreLimitWORD2+678+678KTHREAD内のバッキングストア上限のオフセット(IA64)。
SizeEProcessWORD2+680+680EPROCESS構造体のサイズ。
OffsetEprocessPebWORD2+682+682EPROCESS内のPEBポインタのオフセット。
OffsetEprocessParentCIDWORD2+684+684EPROCESS内の親プロセスIDのオフセット。
OffsetEprocessDirectoryTableBaseWORD2+686+686EPROCESS内のディレクトリテーブル基底のオフセット。
SizePrcbWORD2+688+688PRCB(プロセッサ制御ブロック)のサイズ。
OffsetPrcbDpcRoutineWORD2+690+690PRCB内のDPCルーチンのオフセット。
OffsetPrcbCurrentThreadWORD2+692+692PRCB内の現在スレッドのオフセット。
OffsetPrcbMhzWORD2+694+694PRCB内のプロセッサ周波数(MHz)のオフセット。
OffsetPrcbCpuTypeWORD2+696+696PRCB内のCPU種別のオフセット。
OffsetPrcbVendorStringWORD2+698+698PRCB内のベンダー文字列のオフセット。
OffsetPrcbProcStateContextWORD2+700+700PRCB内のプロセッサ状態コンテキストのオフセット。
OffsetPrcbNumberWORD2+702+702PRCB内のプロセッサ番号のオフセット。
SizeEThreadWORD2+704+704ETHREAD構造体のサイズ。
L1tfHighPhysicalBitIndexBYTE1+706+706L1TF緩和用の上位物理アドレスビット位置。
L1tfSwizzleBitIndexBYTE1+707+707L1TF緩和用のスウィズルビット位置。
Padding0DWORD4+708+708アラインメント用のパディング。
KdPrintCircularBufferPtrULONGLONG8+712+712循環バッファポインタを保持する変数のアドレス。
KdPrintBufferSizeULONGLONG8+720+720循環バッファのサイズを保持する変数のアドレス。
KeLoaderBlockULONGLONG8+728+728ローダパラメータブロックのアドレス。
SizePcrWORD2+736+736PCR(プロセッサ制御領域)のサイズ。
OffsetPcrSelfPcrWORD2+738+738PCR内の自己参照ポインタのオフセット。
OffsetPcrCurrentPrcbWORD2+740+740PCR内の現在PRCBポインタのオフセット。
OffsetPcrContainedPrcbWORD2+742+742PCR内に含まれるPRCBのオフセット。
OffsetPcrInitialBStoreWORD2+744+744PCR内の初期バッキングストアのオフセット(IA64)。
OffsetPcrBStoreLimitWORD2+746+746PCR内のバッキングストア上限のオフセット(IA64)。
OffsetPcrInitialStackWORD2+748+748PCR内の初期スタックのオフセット。
OffsetPcrStackLimitWORD2+750+750PCR内のスタック上限のオフセット。
OffsetPrcbPcrPageWORD2+752+752PRCB内のPCRページのオフセット。
OffsetPrcbProcStateSpecialRegWORD2+754+754PRCB内のプロセッサ状態特殊レジスタのオフセット。
GdtR0CodeWORD2+756+756GDT内のリング0コードセグメントセレクタ。
GdtR0DataWORD2+758+758GDT内のリング0データセグメントセレクタ。
GdtR0PcrWORD2+760+760GDT内のリング0 PCRセグメントセレクタ。
GdtR3CodeWORD2+762+762GDT内のリング3コードセグメントセレクタ。
GdtR3DataWORD2+764+764GDT内のリング3データセグメントセレクタ。
GdtR3TebWORD2+766+766GDT内のリング3 TEBセグメントセレクタ。
GdtLdtWORD2+768+768GDT内のLDTセレクタ。
GdtTssWORD2+770+770GDT内のTSSセレクタ。
Gdt64R3CmCodeWORD2+772+772GDT内の64ビット互換モードリング3コードセレクタ。
Gdt64R3CmTebWORD2+774+774GDT内の64ビット互換モードリング3 TEBセレクタ。
IopNumTriageDumpDataBlocksULONGLONG8+776+776トリアージダンプデータブロック数のアドレス。
IopTriageDumpDataBlocksULONGLONG8+784+784トリアージダンプデータブロック配列のアドレス。
VfCrashDataBlockULONGLONG8+792+792ベリファイアのクラッシュデータブロックのアドレス。
MmBadPagesDetectedULONGLONG8+800+800検出された不良ページ数を保持する変数のアドレス。
MmZeroedPageSingleBitErrorsDetectedULONGLONG8+808+808ゼロ化ページの単一ビット誤り検出数のアドレス。
EtwpDebuggerDataULONGLONG8+816+816ETWデバッガデータのアドレス。
OffsetPrcbContextWORD2+824+824PRCB内のコンテキストポインタのオフセット。
OffsetPrcbMaxBreakpointsWORD2+826+826PRCB内の最大ブレークポイント数のオフセット。
OffsetPrcbMaxWatchpointsWORD2+828+828PRCB内の最大ウォッチポイント数のオフセット。
OffsetKThreadStackLimitDWORD4+832+832KTHREAD内のスタック上限のオフセット。
OffsetKThreadStackBaseDWORD4+836+836KTHREAD内のスタック基底のオフセット。
OffsetKThreadQueueListEntryDWORD4+840+840KTHREAD内のキューリストエントリのオフセット。
OffsetEThreadIrpListDWORD4+844+844ETHREAD内のIRPリストのオフセット。
OffsetPrcbIdleThreadWORD2+848+848PRCB内のアイドルスレッドのオフセット。
OffsetPrcbNormalDpcStateWORD2+850+850PRCB内の通常DPC状態のオフセット。
OffsetPrcbDpcStackWORD2+852+852PRCB内のDPCスタックのオフセット。
OffsetPrcbIsrStackWORD2+854+854PRCB内のISRスタックのオフセット。
SizeKDPC_STACK_FRAMEWORD2+856+856KDPC_STACK_FRAME構造体のサイズ。
OffsetKPriQueueThreadListHeadWORD2+858+858優先度キューのスレッドリスト先頭のオフセット。
OffsetKThreadWaitReasonWORD2+860+860KTHREAD内の待機理由のオフセット。
Padding1WORD2+862+862アラインメント用のパディング。
PteBaseULONGLONG8+864+864ページテーブルエントリ(PTE)の基底アドレス。
RetpolineStubFunctionTableULONGLONG8+872+872Retpolineスタブ関数テーブルのアドレス。
RetpolineStubFunctionTableSizeDWORD4+880+880Retpolineスタブ関数テーブルのサイズ。
RetpolineStubOffsetDWORD4+884+884Retpolineスタブのオフセット。
RetpolineStubSizeDWORD4+888+888Retpolineスタブのサイズ。
OffsetEProcessMmHotPatchContextWORD2+892+892EPROCESS内のホットパッチコンテキストのオフセット。
OffsetKThreadShadowStackLimitDWORD4+896+896KTHREAD内のシャドウスタック上限のオフセット。
OffsetKThreadShadowStackBaseDWORD4+900+900KTHREAD内のシャドウスタック基底のオフセット。
ShadowStackEnabledULONGLONG8+904+904シャドウスタック有効フラグを保持する変数のアドレス。
PointerAuthMaskULONGLONG8+912+912ポインタ認証マスクを保持する変数のアドレス(ARM64)。
OffsetPrcbExceptionStackWORD2+920+920PRCB内の例外スタックのオフセット。

各言語での定義

#include <windows.h>

// LIST_ENTRY64  (x64 16 / x86 16 バイト)
typedef struct LIST_ENTRY64 {
    ULONGLONG Flink;
    ULONGLONG Blink;
} LIST_ENTRY64;

// DBGKD_DEBUG_DATA_HEADER64  (x64 24 / x86 24 バイト)
typedef struct DBGKD_DEBUG_DATA_HEADER64 {
    LIST_ENTRY64 List;
    DWORD OwnerTag;
    DWORD Size;
} DBGKD_DEBUG_DATA_HEADER64;

// KDDEBUGGER_DATA64  (x64 928 / x86 928 バイト)
typedef struct KDDEBUGGER_DATA64 {
    DBGKD_DEBUG_DATA_HEADER64 Header;
    ULONGLONG KernBase;
    ULONGLONG BreakpointWithStatus;
    ULONGLONG SavedContext;
    WORD ThCallbackStack;
    WORD NextCallback;
    WORD FramePointer;
    WORD _bitfield;
    ULONGLONG KiCallUserMode;
    ULONGLONG KeUserCallbackDispatcher;
    ULONGLONG PsLoadedModuleList;
    ULONGLONG PsActiveProcessHead;
    ULONGLONG PspCidTable;
    ULONGLONG ExpSystemResourcesList;
    ULONGLONG ExpPagedPoolDescriptor;
    ULONGLONG ExpNumberOfPagedPools;
    ULONGLONG KeTimeIncrement;
    ULONGLONG KeBugCheckCallbackListHead;
    ULONGLONG KiBugcheckData;
    ULONGLONG IopErrorLogListHead;
    ULONGLONG ObpRootDirectoryObject;
    ULONGLONG ObpTypeObjectType;
    ULONGLONG MmSystemCacheStart;
    ULONGLONG MmSystemCacheEnd;
    ULONGLONG MmSystemCacheWs;
    ULONGLONG MmPfnDatabase;
    ULONGLONG MmSystemPtesStart;
    ULONGLONG MmSystemPtesEnd;
    ULONGLONG MmSubsectionBase;
    ULONGLONG MmNumberOfPagingFiles;
    ULONGLONG MmLowestPhysicalPage;
    ULONGLONG MmHighestPhysicalPage;
    ULONGLONG MmNumberOfPhysicalPages;
    ULONGLONG MmMaximumNonPagedPoolInBytes;
    ULONGLONG MmNonPagedSystemStart;
    ULONGLONG MmNonPagedPoolStart;
    ULONGLONG MmNonPagedPoolEnd;
    ULONGLONG MmPagedPoolStart;
    ULONGLONG MmPagedPoolEnd;
    ULONGLONG MmPagedPoolInformation;
    ULONGLONG MmPageSize;
    ULONGLONG MmSizeOfPagedPoolInBytes;
    ULONGLONG MmTotalCommitLimit;
    ULONGLONG MmTotalCommittedPages;
    ULONGLONG MmSharedCommit;
    ULONGLONG MmDriverCommit;
    ULONGLONG MmProcessCommit;
    ULONGLONG MmPagedPoolCommit;
    ULONGLONG MmExtendedCommit;
    ULONGLONG MmZeroedPageListHead;
    ULONGLONG MmFreePageListHead;
    ULONGLONG MmStandbyPageListHead;
    ULONGLONG MmModifiedPageListHead;
    ULONGLONG MmModifiedNoWritePageListHead;
    ULONGLONG MmAvailablePages;
    ULONGLONG MmResidentAvailablePages;
    ULONGLONG PoolTrackTable;
    ULONGLONG NonPagedPoolDescriptor;
    ULONGLONG MmHighestUserAddress;
    ULONGLONG MmSystemRangeStart;
    ULONGLONG MmUserProbeAddress;
    ULONGLONG KdPrintCircularBuffer;
    ULONGLONG KdPrintCircularBufferEnd;
    ULONGLONG KdPrintWritePointer;
    ULONGLONG KdPrintRolloverCount;
    ULONGLONG MmLoadedUserImageList;
    ULONGLONG NtBuildLab;
    ULONGLONG KiNormalSystemCall;
    ULONGLONG KiProcessorBlock;
    ULONGLONG MmUnloadedDrivers;
    ULONGLONG MmLastUnloadedDriver;
    ULONGLONG MmTriageActionTaken;
    ULONGLONG MmSpecialPoolTag;
    ULONGLONG KernelVerifier;
    ULONGLONG MmVerifierData;
    ULONGLONG MmAllocatedNonPagedPool;
    ULONGLONG MmPeakCommitment;
    ULONGLONG MmTotalCommitLimitMaximum;
    ULONGLONG CmNtCSDVersion;
    ULONGLONG MmPhysicalMemoryBlock;
    ULONGLONG MmSessionBase;
    ULONGLONG MmSessionSize;
    ULONGLONG MmSystemParentTablePage;
    ULONGLONG MmVirtualTranslationBase;
    WORD OffsetKThreadNextProcessor;
    WORD OffsetKThreadTeb;
    WORD OffsetKThreadKernelStack;
    WORD OffsetKThreadInitialStack;
    WORD OffsetKThreadApcProcess;
    WORD OffsetKThreadState;
    WORD OffsetKThreadBStore;
    WORD OffsetKThreadBStoreLimit;
    WORD SizeEProcess;
    WORD OffsetEprocessPeb;
    WORD OffsetEprocessParentCID;
    WORD OffsetEprocessDirectoryTableBase;
    WORD SizePrcb;
    WORD OffsetPrcbDpcRoutine;
    WORD OffsetPrcbCurrentThread;
    WORD OffsetPrcbMhz;
    WORD OffsetPrcbCpuType;
    WORD OffsetPrcbVendorString;
    WORD OffsetPrcbProcStateContext;
    WORD OffsetPrcbNumber;
    WORD SizeEThread;
    BYTE L1tfHighPhysicalBitIndex;
    BYTE L1tfSwizzleBitIndex;
    DWORD Padding0;
    ULONGLONG KdPrintCircularBufferPtr;
    ULONGLONG KdPrintBufferSize;
    ULONGLONG KeLoaderBlock;
    WORD SizePcr;
    WORD OffsetPcrSelfPcr;
    WORD OffsetPcrCurrentPrcb;
    WORD OffsetPcrContainedPrcb;
    WORD OffsetPcrInitialBStore;
    WORD OffsetPcrBStoreLimit;
    WORD OffsetPcrInitialStack;
    WORD OffsetPcrStackLimit;
    WORD OffsetPrcbPcrPage;
    WORD OffsetPrcbProcStateSpecialReg;
    WORD GdtR0Code;
    WORD GdtR0Data;
    WORD GdtR0Pcr;
    WORD GdtR3Code;
    WORD GdtR3Data;
    WORD GdtR3Teb;
    WORD GdtLdt;
    WORD GdtTss;
    WORD Gdt64R3CmCode;
    WORD Gdt64R3CmTeb;
    ULONGLONG IopNumTriageDumpDataBlocks;
    ULONGLONG IopTriageDumpDataBlocks;
    ULONGLONG VfCrashDataBlock;
    ULONGLONG MmBadPagesDetected;
    ULONGLONG MmZeroedPageSingleBitErrorsDetected;
    ULONGLONG EtwpDebuggerData;
    WORD OffsetPrcbContext;
    WORD OffsetPrcbMaxBreakpoints;
    WORD OffsetPrcbMaxWatchpoints;
    DWORD OffsetKThreadStackLimit;
    DWORD OffsetKThreadStackBase;
    DWORD OffsetKThreadQueueListEntry;
    DWORD OffsetEThreadIrpList;
    WORD OffsetPrcbIdleThread;
    WORD OffsetPrcbNormalDpcState;
    WORD OffsetPrcbDpcStack;
    WORD OffsetPrcbIsrStack;
    WORD SizeKDPC_STACK_FRAME;
    WORD OffsetKPriQueueThreadListHead;
    WORD OffsetKThreadWaitReason;
    WORD Padding1;
    ULONGLONG PteBase;
    ULONGLONG RetpolineStubFunctionTable;
    DWORD RetpolineStubFunctionTableSize;
    DWORD RetpolineStubOffset;
    DWORD RetpolineStubSize;
    WORD OffsetEProcessMmHotPatchContext;
    DWORD OffsetKThreadShadowStackLimit;
    DWORD OffsetKThreadShadowStackBase;
    ULONGLONG ShadowStackEnabled;
    ULONGLONG PointerAuthMask;
    WORD OffsetPrcbExceptionStack;
} KDDEBUGGER_DATA64;
using System;
using System.Runtime.InteropServices;

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct LIST_ENTRY64
{
    public ulong Flink;
    public ulong Blink;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct DBGKD_DEBUG_DATA_HEADER64
{
    public LIST_ENTRY64 List;
    public uint OwnerTag;
    public uint Size;
}

[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct KDDEBUGGER_DATA64
{
    public DBGKD_DEBUG_DATA_HEADER64 Header;
    public ulong KernBase;
    public ulong BreakpointWithStatus;
    public ulong SavedContext;
    public ushort ThCallbackStack;
    public ushort NextCallback;
    public ushort FramePointer;
    public ushort _bitfield;
    public ulong KiCallUserMode;
    public ulong KeUserCallbackDispatcher;
    public ulong PsLoadedModuleList;
    public ulong PsActiveProcessHead;
    public ulong PspCidTable;
    public ulong ExpSystemResourcesList;
    public ulong ExpPagedPoolDescriptor;
    public ulong ExpNumberOfPagedPools;
    public ulong KeTimeIncrement;
    public ulong KeBugCheckCallbackListHead;
    public ulong KiBugcheckData;
    public ulong IopErrorLogListHead;
    public ulong ObpRootDirectoryObject;
    public ulong ObpTypeObjectType;
    public ulong MmSystemCacheStart;
    public ulong MmSystemCacheEnd;
    public ulong MmSystemCacheWs;
    public ulong MmPfnDatabase;
    public ulong MmSystemPtesStart;
    public ulong MmSystemPtesEnd;
    public ulong MmSubsectionBase;
    public ulong MmNumberOfPagingFiles;
    public ulong MmLowestPhysicalPage;
    public ulong MmHighestPhysicalPage;
    public ulong MmNumberOfPhysicalPages;
    public ulong MmMaximumNonPagedPoolInBytes;
    public ulong MmNonPagedSystemStart;
    public ulong MmNonPagedPoolStart;
    public ulong MmNonPagedPoolEnd;
    public ulong MmPagedPoolStart;
    public ulong MmPagedPoolEnd;
    public ulong MmPagedPoolInformation;
    public ulong MmPageSize;
    public ulong MmSizeOfPagedPoolInBytes;
    public ulong MmTotalCommitLimit;
    public ulong MmTotalCommittedPages;
    public ulong MmSharedCommit;
    public ulong MmDriverCommit;
    public ulong MmProcessCommit;
    public ulong MmPagedPoolCommit;
    public ulong MmExtendedCommit;
    public ulong MmZeroedPageListHead;
    public ulong MmFreePageListHead;
    public ulong MmStandbyPageListHead;
    public ulong MmModifiedPageListHead;
    public ulong MmModifiedNoWritePageListHead;
    public ulong MmAvailablePages;
    public ulong MmResidentAvailablePages;
    public ulong PoolTrackTable;
    public ulong NonPagedPoolDescriptor;
    public ulong MmHighestUserAddress;
    public ulong MmSystemRangeStart;
    public ulong MmUserProbeAddress;
    public ulong KdPrintCircularBuffer;
    public ulong KdPrintCircularBufferEnd;
    public ulong KdPrintWritePointer;
    public ulong KdPrintRolloverCount;
    public ulong MmLoadedUserImageList;
    public ulong NtBuildLab;
    public ulong KiNormalSystemCall;
    public ulong KiProcessorBlock;
    public ulong MmUnloadedDrivers;
    public ulong MmLastUnloadedDriver;
    public ulong MmTriageActionTaken;
    public ulong MmSpecialPoolTag;
    public ulong KernelVerifier;
    public ulong MmVerifierData;
    public ulong MmAllocatedNonPagedPool;
    public ulong MmPeakCommitment;
    public ulong MmTotalCommitLimitMaximum;
    public ulong CmNtCSDVersion;
    public ulong MmPhysicalMemoryBlock;
    public ulong MmSessionBase;
    public ulong MmSessionSize;
    public ulong MmSystemParentTablePage;
    public ulong MmVirtualTranslationBase;
    public ushort OffsetKThreadNextProcessor;
    public ushort OffsetKThreadTeb;
    public ushort OffsetKThreadKernelStack;
    public ushort OffsetKThreadInitialStack;
    public ushort OffsetKThreadApcProcess;
    public ushort OffsetKThreadState;
    public ushort OffsetKThreadBStore;
    public ushort OffsetKThreadBStoreLimit;
    public ushort SizeEProcess;
    public ushort OffsetEprocessPeb;
    public ushort OffsetEprocessParentCID;
    public ushort OffsetEprocessDirectoryTableBase;
    public ushort SizePrcb;
    public ushort OffsetPrcbDpcRoutine;
    public ushort OffsetPrcbCurrentThread;
    public ushort OffsetPrcbMhz;
    public ushort OffsetPrcbCpuType;
    public ushort OffsetPrcbVendorString;
    public ushort OffsetPrcbProcStateContext;
    public ushort OffsetPrcbNumber;
    public ushort SizeEThread;
    public byte L1tfHighPhysicalBitIndex;
    public byte L1tfSwizzleBitIndex;
    public uint Padding0;
    public ulong KdPrintCircularBufferPtr;
    public ulong KdPrintBufferSize;
    public ulong KeLoaderBlock;
    public ushort SizePcr;
    public ushort OffsetPcrSelfPcr;
    public ushort OffsetPcrCurrentPrcb;
    public ushort OffsetPcrContainedPrcb;
    public ushort OffsetPcrInitialBStore;
    public ushort OffsetPcrBStoreLimit;
    public ushort OffsetPcrInitialStack;
    public ushort OffsetPcrStackLimit;
    public ushort OffsetPrcbPcrPage;
    public ushort OffsetPrcbProcStateSpecialReg;
    public ushort GdtR0Code;
    public ushort GdtR0Data;
    public ushort GdtR0Pcr;
    public ushort GdtR3Code;
    public ushort GdtR3Data;
    public ushort GdtR3Teb;
    public ushort GdtLdt;
    public ushort GdtTss;
    public ushort Gdt64R3CmCode;
    public ushort Gdt64R3CmTeb;
    public ulong IopNumTriageDumpDataBlocks;
    public ulong IopTriageDumpDataBlocks;
    public ulong VfCrashDataBlock;
    public ulong MmBadPagesDetected;
    public ulong MmZeroedPageSingleBitErrorsDetected;
    public ulong EtwpDebuggerData;
    public ushort OffsetPrcbContext;
    public ushort OffsetPrcbMaxBreakpoints;
    public ushort OffsetPrcbMaxWatchpoints;
    public uint OffsetKThreadStackLimit;
    public uint OffsetKThreadStackBase;
    public uint OffsetKThreadQueueListEntry;
    public uint OffsetEThreadIrpList;
    public ushort OffsetPrcbIdleThread;
    public ushort OffsetPrcbNormalDpcState;
    public ushort OffsetPrcbDpcStack;
    public ushort OffsetPrcbIsrStack;
    public ushort SizeKDPC_STACK_FRAME;
    public ushort OffsetKPriQueueThreadListHead;
    public ushort OffsetKThreadWaitReason;
    public ushort Padding1;
    public ulong PteBase;
    public ulong RetpolineStubFunctionTable;
    public uint RetpolineStubFunctionTableSize;
    public uint RetpolineStubOffset;
    public uint RetpolineStubSize;
    public ushort OffsetEProcessMmHotPatchContext;
    public uint OffsetKThreadShadowStackLimit;
    public uint OffsetKThreadShadowStackBase;
    public ulong ShadowStackEnabled;
    public ulong PointerAuthMask;
    public ushort OffsetPrcbExceptionStack;
}
Imports System.Runtime.InteropServices

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure LIST_ENTRY64
    Public Flink As ULong
    Public Blink As ULong
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure DBGKD_DEBUG_DATA_HEADER64
    Public List As LIST_ENTRY64
    Public OwnerTag As UInteger
    Public Size As UInteger
End Structure

<StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)>
Public Structure KDDEBUGGER_DATA64
    Public Header As DBGKD_DEBUG_DATA_HEADER64
    Public KernBase As ULong
    Public BreakpointWithStatus As ULong
    Public SavedContext As ULong
    Public ThCallbackStack As UShort
    Public NextCallback As UShort
    Public FramePointer As UShort
    Public _bitfield As UShort
    Public KiCallUserMode As ULong
    Public KeUserCallbackDispatcher As ULong
    Public PsLoadedModuleList As ULong
    Public PsActiveProcessHead As ULong
    Public PspCidTable As ULong
    Public ExpSystemResourcesList As ULong
    Public ExpPagedPoolDescriptor As ULong
    Public ExpNumberOfPagedPools As ULong
    Public KeTimeIncrement As ULong
    Public KeBugCheckCallbackListHead As ULong
    Public KiBugcheckData As ULong
    Public IopErrorLogListHead As ULong
    Public ObpRootDirectoryObject As ULong
    Public ObpTypeObjectType As ULong
    Public MmSystemCacheStart As ULong
    Public MmSystemCacheEnd As ULong
    Public MmSystemCacheWs As ULong
    Public MmPfnDatabase As ULong
    Public MmSystemPtesStart As ULong
    Public MmSystemPtesEnd As ULong
    Public MmSubsectionBase As ULong
    Public MmNumberOfPagingFiles As ULong
    Public MmLowestPhysicalPage As ULong
    Public MmHighestPhysicalPage As ULong
    Public MmNumberOfPhysicalPages As ULong
    Public MmMaximumNonPagedPoolInBytes As ULong
    Public MmNonPagedSystemStart As ULong
    Public MmNonPagedPoolStart As ULong
    Public MmNonPagedPoolEnd As ULong
    Public MmPagedPoolStart As ULong
    Public MmPagedPoolEnd As ULong
    Public MmPagedPoolInformation As ULong
    Public MmPageSize As ULong
    Public MmSizeOfPagedPoolInBytes As ULong
    Public MmTotalCommitLimit As ULong
    Public MmTotalCommittedPages As ULong
    Public MmSharedCommit As ULong
    Public MmDriverCommit As ULong
    Public MmProcessCommit As ULong
    Public MmPagedPoolCommit As ULong
    Public MmExtendedCommit As ULong
    Public MmZeroedPageListHead As ULong
    Public MmFreePageListHead As ULong
    Public MmStandbyPageListHead As ULong
    Public MmModifiedPageListHead As ULong
    Public MmModifiedNoWritePageListHead As ULong
    Public MmAvailablePages As ULong
    Public MmResidentAvailablePages As ULong
    Public PoolTrackTable As ULong
    Public NonPagedPoolDescriptor As ULong
    Public MmHighestUserAddress As ULong
    Public MmSystemRangeStart As ULong
    Public MmUserProbeAddress As ULong
    Public KdPrintCircularBuffer As ULong
    Public KdPrintCircularBufferEnd As ULong
    Public KdPrintWritePointer As ULong
    Public KdPrintRolloverCount As ULong
    Public MmLoadedUserImageList As ULong
    Public NtBuildLab As ULong
    Public KiNormalSystemCall As ULong
    Public KiProcessorBlock As ULong
    Public MmUnloadedDrivers As ULong
    Public MmLastUnloadedDriver As ULong
    Public MmTriageActionTaken As ULong
    Public MmSpecialPoolTag As ULong
    Public KernelVerifier As ULong
    Public MmVerifierData As ULong
    Public MmAllocatedNonPagedPool As ULong
    Public MmPeakCommitment As ULong
    Public MmTotalCommitLimitMaximum As ULong
    Public CmNtCSDVersion As ULong
    Public MmPhysicalMemoryBlock As ULong
    Public MmSessionBase As ULong
    Public MmSessionSize As ULong
    Public MmSystemParentTablePage As ULong
    Public MmVirtualTranslationBase As ULong
    Public OffsetKThreadNextProcessor As UShort
    Public OffsetKThreadTeb As UShort
    Public OffsetKThreadKernelStack As UShort
    Public OffsetKThreadInitialStack As UShort
    Public OffsetKThreadApcProcess As UShort
    Public OffsetKThreadState As UShort
    Public OffsetKThreadBStore As UShort
    Public OffsetKThreadBStoreLimit As UShort
    Public SizeEProcess As UShort
    Public OffsetEprocessPeb As UShort
    Public OffsetEprocessParentCID As UShort
    Public OffsetEprocessDirectoryTableBase As UShort
    Public SizePrcb As UShort
    Public OffsetPrcbDpcRoutine As UShort
    Public OffsetPrcbCurrentThread As UShort
    Public OffsetPrcbMhz As UShort
    Public OffsetPrcbCpuType As UShort
    Public OffsetPrcbVendorString As UShort
    Public OffsetPrcbProcStateContext As UShort
    Public OffsetPrcbNumber As UShort
    Public SizeEThread As UShort
    Public L1tfHighPhysicalBitIndex As Byte
    Public L1tfSwizzleBitIndex As Byte
    Public Padding0 As UInteger
    Public KdPrintCircularBufferPtr As ULong
    Public KdPrintBufferSize As ULong
    Public KeLoaderBlock As ULong
    Public SizePcr As UShort
    Public OffsetPcrSelfPcr As UShort
    Public OffsetPcrCurrentPrcb As UShort
    Public OffsetPcrContainedPrcb As UShort
    Public OffsetPcrInitialBStore As UShort
    Public OffsetPcrBStoreLimit As UShort
    Public OffsetPcrInitialStack As UShort
    Public OffsetPcrStackLimit As UShort
    Public OffsetPrcbPcrPage As UShort
    Public OffsetPrcbProcStateSpecialReg As UShort
    Public GdtR0Code As UShort
    Public GdtR0Data As UShort
    Public GdtR0Pcr As UShort
    Public GdtR3Code As UShort
    Public GdtR3Data As UShort
    Public GdtR3Teb As UShort
    Public GdtLdt As UShort
    Public GdtTss As UShort
    Public Gdt64R3CmCode As UShort
    Public Gdt64R3CmTeb As UShort
    Public IopNumTriageDumpDataBlocks As ULong
    Public IopTriageDumpDataBlocks As ULong
    Public VfCrashDataBlock As ULong
    Public MmBadPagesDetected As ULong
    Public MmZeroedPageSingleBitErrorsDetected As ULong
    Public EtwpDebuggerData As ULong
    Public OffsetPrcbContext As UShort
    Public OffsetPrcbMaxBreakpoints As UShort
    Public OffsetPrcbMaxWatchpoints As UShort
    Public OffsetKThreadStackLimit As UInteger
    Public OffsetKThreadStackBase As UInteger
    Public OffsetKThreadQueueListEntry As UInteger
    Public OffsetEThreadIrpList As UInteger
    Public OffsetPrcbIdleThread As UShort
    Public OffsetPrcbNormalDpcState As UShort
    Public OffsetPrcbDpcStack As UShort
    Public OffsetPrcbIsrStack As UShort
    Public SizeKDPC_STACK_FRAME As UShort
    Public OffsetKPriQueueThreadListHead As UShort
    Public OffsetKThreadWaitReason As UShort
    Public Padding1 As UShort
    Public PteBase As ULong
    Public RetpolineStubFunctionTable As ULong
    Public RetpolineStubFunctionTableSize As UInteger
    Public RetpolineStubOffset As UInteger
    Public RetpolineStubSize As UInteger
    Public OffsetEProcessMmHotPatchContext As UShort
    Public OffsetKThreadShadowStackLimit As UInteger
    Public OffsetKThreadShadowStackBase As UInteger
    Public ShadowStackEnabled As ULong
    Public PointerAuthMask As ULong
    Public OffsetPrcbExceptionStack As UShort
End Structure
import ctypes
from ctypes import wintypes

class LIST_ENTRY64(ctypes.Structure):
    _fields_ = [
        ("Flink", ctypes.c_ulonglong),
        ("Blink", ctypes.c_ulonglong),
    ]

class DBGKD_DEBUG_DATA_HEADER64(ctypes.Structure):
    _fields_ = [
        ("List", LIST_ENTRY64),
        ("OwnerTag", wintypes.DWORD),
        ("Size", wintypes.DWORD),
    ]

class KDDEBUGGER_DATA64(ctypes.Structure):
    _fields_ = [
        ("Header", DBGKD_DEBUG_DATA_HEADER64),
        ("KernBase", ctypes.c_ulonglong),
        ("BreakpointWithStatus", ctypes.c_ulonglong),
        ("SavedContext", ctypes.c_ulonglong),
        ("ThCallbackStack", ctypes.c_ushort),
        ("NextCallback", ctypes.c_ushort),
        ("FramePointer", ctypes.c_ushort),
        ("_bitfield", ctypes.c_ushort),
        ("KiCallUserMode", ctypes.c_ulonglong),
        ("KeUserCallbackDispatcher", ctypes.c_ulonglong),
        ("PsLoadedModuleList", ctypes.c_ulonglong),
        ("PsActiveProcessHead", ctypes.c_ulonglong),
        ("PspCidTable", ctypes.c_ulonglong),
        ("ExpSystemResourcesList", ctypes.c_ulonglong),
        ("ExpPagedPoolDescriptor", ctypes.c_ulonglong),
        ("ExpNumberOfPagedPools", ctypes.c_ulonglong),
        ("KeTimeIncrement", ctypes.c_ulonglong),
        ("KeBugCheckCallbackListHead", ctypes.c_ulonglong),
        ("KiBugcheckData", ctypes.c_ulonglong),
        ("IopErrorLogListHead", ctypes.c_ulonglong),
        ("ObpRootDirectoryObject", ctypes.c_ulonglong),
        ("ObpTypeObjectType", ctypes.c_ulonglong),
        ("MmSystemCacheStart", ctypes.c_ulonglong),
        ("MmSystemCacheEnd", ctypes.c_ulonglong),
        ("MmSystemCacheWs", ctypes.c_ulonglong),
        ("MmPfnDatabase", ctypes.c_ulonglong),
        ("MmSystemPtesStart", ctypes.c_ulonglong),
        ("MmSystemPtesEnd", ctypes.c_ulonglong),
        ("MmSubsectionBase", ctypes.c_ulonglong),
        ("MmNumberOfPagingFiles", ctypes.c_ulonglong),
        ("MmLowestPhysicalPage", ctypes.c_ulonglong),
        ("MmHighestPhysicalPage", ctypes.c_ulonglong),
        ("MmNumberOfPhysicalPages", ctypes.c_ulonglong),
        ("MmMaximumNonPagedPoolInBytes", ctypes.c_ulonglong),
        ("MmNonPagedSystemStart", ctypes.c_ulonglong),
        ("MmNonPagedPoolStart", ctypes.c_ulonglong),
        ("MmNonPagedPoolEnd", ctypes.c_ulonglong),
        ("MmPagedPoolStart", ctypes.c_ulonglong),
        ("MmPagedPoolEnd", ctypes.c_ulonglong),
        ("MmPagedPoolInformation", ctypes.c_ulonglong),
        ("MmPageSize", ctypes.c_ulonglong),
        ("MmSizeOfPagedPoolInBytes", ctypes.c_ulonglong),
        ("MmTotalCommitLimit", ctypes.c_ulonglong),
        ("MmTotalCommittedPages", ctypes.c_ulonglong),
        ("MmSharedCommit", ctypes.c_ulonglong),
        ("MmDriverCommit", ctypes.c_ulonglong),
        ("MmProcessCommit", ctypes.c_ulonglong),
        ("MmPagedPoolCommit", ctypes.c_ulonglong),
        ("MmExtendedCommit", ctypes.c_ulonglong),
        ("MmZeroedPageListHead", ctypes.c_ulonglong),
        ("MmFreePageListHead", ctypes.c_ulonglong),
        ("MmStandbyPageListHead", ctypes.c_ulonglong),
        ("MmModifiedPageListHead", ctypes.c_ulonglong),
        ("MmModifiedNoWritePageListHead", ctypes.c_ulonglong),
        ("MmAvailablePages", ctypes.c_ulonglong),
        ("MmResidentAvailablePages", ctypes.c_ulonglong),
        ("PoolTrackTable", ctypes.c_ulonglong),
        ("NonPagedPoolDescriptor", ctypes.c_ulonglong),
        ("MmHighestUserAddress", ctypes.c_ulonglong),
        ("MmSystemRangeStart", ctypes.c_ulonglong),
        ("MmUserProbeAddress", ctypes.c_ulonglong),
        ("KdPrintCircularBuffer", ctypes.c_ulonglong),
        ("KdPrintCircularBufferEnd", ctypes.c_ulonglong),
        ("KdPrintWritePointer", ctypes.c_ulonglong),
        ("KdPrintRolloverCount", ctypes.c_ulonglong),
        ("MmLoadedUserImageList", ctypes.c_ulonglong),
        ("NtBuildLab", ctypes.c_ulonglong),
        ("KiNormalSystemCall", ctypes.c_ulonglong),
        ("KiProcessorBlock", ctypes.c_ulonglong),
        ("MmUnloadedDrivers", ctypes.c_ulonglong),
        ("MmLastUnloadedDriver", ctypes.c_ulonglong),
        ("MmTriageActionTaken", ctypes.c_ulonglong),
        ("MmSpecialPoolTag", ctypes.c_ulonglong),
        ("KernelVerifier", ctypes.c_ulonglong),
        ("MmVerifierData", ctypes.c_ulonglong),
        ("MmAllocatedNonPagedPool", ctypes.c_ulonglong),
        ("MmPeakCommitment", ctypes.c_ulonglong),
        ("MmTotalCommitLimitMaximum", ctypes.c_ulonglong),
        ("CmNtCSDVersion", ctypes.c_ulonglong),
        ("MmPhysicalMemoryBlock", ctypes.c_ulonglong),
        ("MmSessionBase", ctypes.c_ulonglong),
        ("MmSessionSize", ctypes.c_ulonglong),
        ("MmSystemParentTablePage", ctypes.c_ulonglong),
        ("MmVirtualTranslationBase", ctypes.c_ulonglong),
        ("OffsetKThreadNextProcessor", ctypes.c_ushort),
        ("OffsetKThreadTeb", ctypes.c_ushort),
        ("OffsetKThreadKernelStack", ctypes.c_ushort),
        ("OffsetKThreadInitialStack", ctypes.c_ushort),
        ("OffsetKThreadApcProcess", ctypes.c_ushort),
        ("OffsetKThreadState", ctypes.c_ushort),
        ("OffsetKThreadBStore", ctypes.c_ushort),
        ("OffsetKThreadBStoreLimit", ctypes.c_ushort),
        ("SizeEProcess", ctypes.c_ushort),
        ("OffsetEprocessPeb", ctypes.c_ushort),
        ("OffsetEprocessParentCID", ctypes.c_ushort),
        ("OffsetEprocessDirectoryTableBase", ctypes.c_ushort),
        ("SizePrcb", ctypes.c_ushort),
        ("OffsetPrcbDpcRoutine", ctypes.c_ushort),
        ("OffsetPrcbCurrentThread", ctypes.c_ushort),
        ("OffsetPrcbMhz", ctypes.c_ushort),
        ("OffsetPrcbCpuType", ctypes.c_ushort),
        ("OffsetPrcbVendorString", ctypes.c_ushort),
        ("OffsetPrcbProcStateContext", ctypes.c_ushort),
        ("OffsetPrcbNumber", ctypes.c_ushort),
        ("SizeEThread", ctypes.c_ushort),
        ("L1tfHighPhysicalBitIndex", ctypes.c_ubyte),
        ("L1tfSwizzleBitIndex", ctypes.c_ubyte),
        ("Padding0", wintypes.DWORD),
        ("KdPrintCircularBufferPtr", ctypes.c_ulonglong),
        ("KdPrintBufferSize", ctypes.c_ulonglong),
        ("KeLoaderBlock", ctypes.c_ulonglong),
        ("SizePcr", ctypes.c_ushort),
        ("OffsetPcrSelfPcr", ctypes.c_ushort),
        ("OffsetPcrCurrentPrcb", ctypes.c_ushort),
        ("OffsetPcrContainedPrcb", ctypes.c_ushort),
        ("OffsetPcrInitialBStore", ctypes.c_ushort),
        ("OffsetPcrBStoreLimit", ctypes.c_ushort),
        ("OffsetPcrInitialStack", ctypes.c_ushort),
        ("OffsetPcrStackLimit", ctypes.c_ushort),
        ("OffsetPrcbPcrPage", ctypes.c_ushort),
        ("OffsetPrcbProcStateSpecialReg", ctypes.c_ushort),
        ("GdtR0Code", ctypes.c_ushort),
        ("GdtR0Data", ctypes.c_ushort),
        ("GdtR0Pcr", ctypes.c_ushort),
        ("GdtR3Code", ctypes.c_ushort),
        ("GdtR3Data", ctypes.c_ushort),
        ("GdtR3Teb", ctypes.c_ushort),
        ("GdtLdt", ctypes.c_ushort),
        ("GdtTss", ctypes.c_ushort),
        ("Gdt64R3CmCode", ctypes.c_ushort),
        ("Gdt64R3CmTeb", ctypes.c_ushort),
        ("IopNumTriageDumpDataBlocks", ctypes.c_ulonglong),
        ("IopTriageDumpDataBlocks", ctypes.c_ulonglong),
        ("VfCrashDataBlock", ctypes.c_ulonglong),
        ("MmBadPagesDetected", ctypes.c_ulonglong),
        ("MmZeroedPageSingleBitErrorsDetected", ctypes.c_ulonglong),
        ("EtwpDebuggerData", ctypes.c_ulonglong),
        ("OffsetPrcbContext", ctypes.c_ushort),
        ("OffsetPrcbMaxBreakpoints", ctypes.c_ushort),
        ("OffsetPrcbMaxWatchpoints", ctypes.c_ushort),
        ("OffsetKThreadStackLimit", wintypes.DWORD),
        ("OffsetKThreadStackBase", wintypes.DWORD),
        ("OffsetKThreadQueueListEntry", wintypes.DWORD),
        ("OffsetEThreadIrpList", wintypes.DWORD),
        ("OffsetPrcbIdleThread", ctypes.c_ushort),
        ("OffsetPrcbNormalDpcState", ctypes.c_ushort),
        ("OffsetPrcbDpcStack", ctypes.c_ushort),
        ("OffsetPrcbIsrStack", ctypes.c_ushort),
        ("SizeKDPC_STACK_FRAME", ctypes.c_ushort),
        ("OffsetKPriQueueThreadListHead", ctypes.c_ushort),
        ("OffsetKThreadWaitReason", ctypes.c_ushort),
        ("Padding1", ctypes.c_ushort),
        ("PteBase", ctypes.c_ulonglong),
        ("RetpolineStubFunctionTable", ctypes.c_ulonglong),
        ("RetpolineStubFunctionTableSize", wintypes.DWORD),
        ("RetpolineStubOffset", wintypes.DWORD),
        ("RetpolineStubSize", wintypes.DWORD),
        ("OffsetEProcessMmHotPatchContext", ctypes.c_ushort),
        ("OffsetKThreadShadowStackLimit", wintypes.DWORD),
        ("OffsetKThreadShadowStackBase", wintypes.DWORD),
        ("ShadowStackEnabled", ctypes.c_ulonglong),
        ("PointerAuthMask", ctypes.c_ulonglong),
        ("OffsetPrcbExceptionStack", ctypes.c_ushort),
    ]
#[repr(C)]
pub struct LIST_ENTRY64 {
    pub Flink: u64,
    pub Blink: u64,
}

#[repr(C)]
pub struct DBGKD_DEBUG_DATA_HEADER64 {
    pub List: LIST_ENTRY64,
    pub OwnerTag: u32,
    pub Size: u32,
}

#[repr(C)]
pub struct KDDEBUGGER_DATA64 {
    pub Header: DBGKD_DEBUG_DATA_HEADER64,
    pub KernBase: u64,
    pub BreakpointWithStatus: u64,
    pub SavedContext: u64,
    pub ThCallbackStack: u16,
    pub NextCallback: u16,
    pub FramePointer: u16,
    pub _bitfield: u16,
    pub KiCallUserMode: u64,
    pub KeUserCallbackDispatcher: u64,
    pub PsLoadedModuleList: u64,
    pub PsActiveProcessHead: u64,
    pub PspCidTable: u64,
    pub ExpSystemResourcesList: u64,
    pub ExpPagedPoolDescriptor: u64,
    pub ExpNumberOfPagedPools: u64,
    pub KeTimeIncrement: u64,
    pub KeBugCheckCallbackListHead: u64,
    pub KiBugcheckData: u64,
    pub IopErrorLogListHead: u64,
    pub ObpRootDirectoryObject: u64,
    pub ObpTypeObjectType: u64,
    pub MmSystemCacheStart: u64,
    pub MmSystemCacheEnd: u64,
    pub MmSystemCacheWs: u64,
    pub MmPfnDatabase: u64,
    pub MmSystemPtesStart: u64,
    pub MmSystemPtesEnd: u64,
    pub MmSubsectionBase: u64,
    pub MmNumberOfPagingFiles: u64,
    pub MmLowestPhysicalPage: u64,
    pub MmHighestPhysicalPage: u64,
    pub MmNumberOfPhysicalPages: u64,
    pub MmMaximumNonPagedPoolInBytes: u64,
    pub MmNonPagedSystemStart: u64,
    pub MmNonPagedPoolStart: u64,
    pub MmNonPagedPoolEnd: u64,
    pub MmPagedPoolStart: u64,
    pub MmPagedPoolEnd: u64,
    pub MmPagedPoolInformation: u64,
    pub MmPageSize: u64,
    pub MmSizeOfPagedPoolInBytes: u64,
    pub MmTotalCommitLimit: u64,
    pub MmTotalCommittedPages: u64,
    pub MmSharedCommit: u64,
    pub MmDriverCommit: u64,
    pub MmProcessCommit: u64,
    pub MmPagedPoolCommit: u64,
    pub MmExtendedCommit: u64,
    pub MmZeroedPageListHead: u64,
    pub MmFreePageListHead: u64,
    pub MmStandbyPageListHead: u64,
    pub MmModifiedPageListHead: u64,
    pub MmModifiedNoWritePageListHead: u64,
    pub MmAvailablePages: u64,
    pub MmResidentAvailablePages: u64,
    pub PoolTrackTable: u64,
    pub NonPagedPoolDescriptor: u64,
    pub MmHighestUserAddress: u64,
    pub MmSystemRangeStart: u64,
    pub MmUserProbeAddress: u64,
    pub KdPrintCircularBuffer: u64,
    pub KdPrintCircularBufferEnd: u64,
    pub KdPrintWritePointer: u64,
    pub KdPrintRolloverCount: u64,
    pub MmLoadedUserImageList: u64,
    pub NtBuildLab: u64,
    pub KiNormalSystemCall: u64,
    pub KiProcessorBlock: u64,
    pub MmUnloadedDrivers: u64,
    pub MmLastUnloadedDriver: u64,
    pub MmTriageActionTaken: u64,
    pub MmSpecialPoolTag: u64,
    pub KernelVerifier: u64,
    pub MmVerifierData: u64,
    pub MmAllocatedNonPagedPool: u64,
    pub MmPeakCommitment: u64,
    pub MmTotalCommitLimitMaximum: u64,
    pub CmNtCSDVersion: u64,
    pub MmPhysicalMemoryBlock: u64,
    pub MmSessionBase: u64,
    pub MmSessionSize: u64,
    pub MmSystemParentTablePage: u64,
    pub MmVirtualTranslationBase: u64,
    pub OffsetKThreadNextProcessor: u16,
    pub OffsetKThreadTeb: u16,
    pub OffsetKThreadKernelStack: u16,
    pub OffsetKThreadInitialStack: u16,
    pub OffsetKThreadApcProcess: u16,
    pub OffsetKThreadState: u16,
    pub OffsetKThreadBStore: u16,
    pub OffsetKThreadBStoreLimit: u16,
    pub SizeEProcess: u16,
    pub OffsetEprocessPeb: u16,
    pub OffsetEprocessParentCID: u16,
    pub OffsetEprocessDirectoryTableBase: u16,
    pub SizePrcb: u16,
    pub OffsetPrcbDpcRoutine: u16,
    pub OffsetPrcbCurrentThread: u16,
    pub OffsetPrcbMhz: u16,
    pub OffsetPrcbCpuType: u16,
    pub OffsetPrcbVendorString: u16,
    pub OffsetPrcbProcStateContext: u16,
    pub OffsetPrcbNumber: u16,
    pub SizeEThread: u16,
    pub L1tfHighPhysicalBitIndex: u8,
    pub L1tfSwizzleBitIndex: u8,
    pub Padding0: u32,
    pub KdPrintCircularBufferPtr: u64,
    pub KdPrintBufferSize: u64,
    pub KeLoaderBlock: u64,
    pub SizePcr: u16,
    pub OffsetPcrSelfPcr: u16,
    pub OffsetPcrCurrentPrcb: u16,
    pub OffsetPcrContainedPrcb: u16,
    pub OffsetPcrInitialBStore: u16,
    pub OffsetPcrBStoreLimit: u16,
    pub OffsetPcrInitialStack: u16,
    pub OffsetPcrStackLimit: u16,
    pub OffsetPrcbPcrPage: u16,
    pub OffsetPrcbProcStateSpecialReg: u16,
    pub GdtR0Code: u16,
    pub GdtR0Data: u16,
    pub GdtR0Pcr: u16,
    pub GdtR3Code: u16,
    pub GdtR3Data: u16,
    pub GdtR3Teb: u16,
    pub GdtLdt: u16,
    pub GdtTss: u16,
    pub Gdt64R3CmCode: u16,
    pub Gdt64R3CmTeb: u16,
    pub IopNumTriageDumpDataBlocks: u64,
    pub IopTriageDumpDataBlocks: u64,
    pub VfCrashDataBlock: u64,
    pub MmBadPagesDetected: u64,
    pub MmZeroedPageSingleBitErrorsDetected: u64,
    pub EtwpDebuggerData: u64,
    pub OffsetPrcbContext: u16,
    pub OffsetPrcbMaxBreakpoints: u16,
    pub OffsetPrcbMaxWatchpoints: u16,
    pub OffsetKThreadStackLimit: u32,
    pub OffsetKThreadStackBase: u32,
    pub OffsetKThreadQueueListEntry: u32,
    pub OffsetEThreadIrpList: u32,
    pub OffsetPrcbIdleThread: u16,
    pub OffsetPrcbNormalDpcState: u16,
    pub OffsetPrcbDpcStack: u16,
    pub OffsetPrcbIsrStack: u16,
    pub SizeKDPC_STACK_FRAME: u16,
    pub OffsetKPriQueueThreadListHead: u16,
    pub OffsetKThreadWaitReason: u16,
    pub Padding1: u16,
    pub PteBase: u64,
    pub RetpolineStubFunctionTable: u64,
    pub RetpolineStubFunctionTableSize: u32,
    pub RetpolineStubOffset: u32,
    pub RetpolineStubSize: u32,
    pub OffsetEProcessMmHotPatchContext: u16,
    pub OffsetKThreadShadowStackLimit: u32,
    pub OffsetKThreadShadowStackBase: u32,
    pub ShadowStackEnabled: u64,
    pub PointerAuthMask: u64,
    pub OffsetPrcbExceptionStack: u16,
}
import "golang.org/x/sys/windows"

type LIST_ENTRY64 struct {
	Flink uint64
	Blink uint64
}

type DBGKD_DEBUG_DATA_HEADER64 struct {
	List LIST_ENTRY64
	OwnerTag uint32
	Size uint32
}

type KDDEBUGGER_DATA64 struct {
	Header DBGKD_DEBUG_DATA_HEADER64
	KernBase uint64
	BreakpointWithStatus uint64
	SavedContext uint64
	ThCallbackStack uint16
	NextCallback uint16
	FramePointer uint16
	_bitfield uint16
	KiCallUserMode uint64
	KeUserCallbackDispatcher uint64
	PsLoadedModuleList uint64
	PsActiveProcessHead uint64
	PspCidTable uint64
	ExpSystemResourcesList uint64
	ExpPagedPoolDescriptor uint64
	ExpNumberOfPagedPools uint64
	KeTimeIncrement uint64
	KeBugCheckCallbackListHead uint64
	KiBugcheckData uint64
	IopErrorLogListHead uint64
	ObpRootDirectoryObject uint64
	ObpTypeObjectType uint64
	MmSystemCacheStart uint64
	MmSystemCacheEnd uint64
	MmSystemCacheWs uint64
	MmPfnDatabase uint64
	MmSystemPtesStart uint64
	MmSystemPtesEnd uint64
	MmSubsectionBase uint64
	MmNumberOfPagingFiles uint64
	MmLowestPhysicalPage uint64
	MmHighestPhysicalPage uint64
	MmNumberOfPhysicalPages uint64
	MmMaximumNonPagedPoolInBytes uint64
	MmNonPagedSystemStart uint64
	MmNonPagedPoolStart uint64
	MmNonPagedPoolEnd uint64
	MmPagedPoolStart uint64
	MmPagedPoolEnd uint64
	MmPagedPoolInformation uint64
	MmPageSize uint64
	MmSizeOfPagedPoolInBytes uint64
	MmTotalCommitLimit uint64
	MmTotalCommittedPages uint64
	MmSharedCommit uint64
	MmDriverCommit uint64
	MmProcessCommit uint64
	MmPagedPoolCommit uint64
	MmExtendedCommit uint64
	MmZeroedPageListHead uint64
	MmFreePageListHead uint64
	MmStandbyPageListHead uint64
	MmModifiedPageListHead uint64
	MmModifiedNoWritePageListHead uint64
	MmAvailablePages uint64
	MmResidentAvailablePages uint64
	PoolTrackTable uint64
	NonPagedPoolDescriptor uint64
	MmHighestUserAddress uint64
	MmSystemRangeStart uint64
	MmUserProbeAddress uint64
	KdPrintCircularBuffer uint64
	KdPrintCircularBufferEnd uint64
	KdPrintWritePointer uint64
	KdPrintRolloverCount uint64
	MmLoadedUserImageList uint64
	NtBuildLab uint64
	KiNormalSystemCall uint64
	KiProcessorBlock uint64
	MmUnloadedDrivers uint64
	MmLastUnloadedDriver uint64
	MmTriageActionTaken uint64
	MmSpecialPoolTag uint64
	KernelVerifier uint64
	MmVerifierData uint64
	MmAllocatedNonPagedPool uint64
	MmPeakCommitment uint64
	MmTotalCommitLimitMaximum uint64
	CmNtCSDVersion uint64
	MmPhysicalMemoryBlock uint64
	MmSessionBase uint64
	MmSessionSize uint64
	MmSystemParentTablePage uint64
	MmVirtualTranslationBase uint64
	OffsetKThreadNextProcessor uint16
	OffsetKThreadTeb uint16
	OffsetKThreadKernelStack uint16
	OffsetKThreadInitialStack uint16
	OffsetKThreadApcProcess uint16
	OffsetKThreadState uint16
	OffsetKThreadBStore uint16
	OffsetKThreadBStoreLimit uint16
	SizeEProcess uint16
	OffsetEprocessPeb uint16
	OffsetEprocessParentCID uint16
	OffsetEprocessDirectoryTableBase uint16
	SizePrcb uint16
	OffsetPrcbDpcRoutine uint16
	OffsetPrcbCurrentThread uint16
	OffsetPrcbMhz uint16
	OffsetPrcbCpuType uint16
	OffsetPrcbVendorString uint16
	OffsetPrcbProcStateContext uint16
	OffsetPrcbNumber uint16
	SizeEThread uint16
	L1tfHighPhysicalBitIndex byte
	L1tfSwizzleBitIndex byte
	Padding0 uint32
	KdPrintCircularBufferPtr uint64
	KdPrintBufferSize uint64
	KeLoaderBlock uint64
	SizePcr uint16
	OffsetPcrSelfPcr uint16
	OffsetPcrCurrentPrcb uint16
	OffsetPcrContainedPrcb uint16
	OffsetPcrInitialBStore uint16
	OffsetPcrBStoreLimit uint16
	OffsetPcrInitialStack uint16
	OffsetPcrStackLimit uint16
	OffsetPrcbPcrPage uint16
	OffsetPrcbProcStateSpecialReg uint16
	GdtR0Code uint16
	GdtR0Data uint16
	GdtR0Pcr uint16
	GdtR3Code uint16
	GdtR3Data uint16
	GdtR3Teb uint16
	GdtLdt uint16
	GdtTss uint16
	Gdt64R3CmCode uint16
	Gdt64R3CmTeb uint16
	IopNumTriageDumpDataBlocks uint64
	IopTriageDumpDataBlocks uint64
	VfCrashDataBlock uint64
	MmBadPagesDetected uint64
	MmZeroedPageSingleBitErrorsDetected uint64
	EtwpDebuggerData uint64
	OffsetPrcbContext uint16
	OffsetPrcbMaxBreakpoints uint16
	OffsetPrcbMaxWatchpoints uint16
	OffsetKThreadStackLimit uint32
	OffsetKThreadStackBase uint32
	OffsetKThreadQueueListEntry uint32
	OffsetEThreadIrpList uint32
	OffsetPrcbIdleThread uint16
	OffsetPrcbNormalDpcState uint16
	OffsetPrcbDpcStack uint16
	OffsetPrcbIsrStack uint16
	SizeKDPC_STACK_FRAME uint16
	OffsetKPriQueueThreadListHead uint16
	OffsetKThreadWaitReason uint16
	Padding1 uint16
	PteBase uint64
	RetpolineStubFunctionTable uint64
	RetpolineStubFunctionTableSize uint32
	RetpolineStubOffset uint32
	RetpolineStubSize uint32
	OffsetEProcessMmHotPatchContext uint16
	OffsetKThreadShadowStackLimit uint32
	OffsetKThreadShadowStackBase uint32
	ShadowStackEnabled uint64
	PointerAuthMask uint64
	OffsetPrcbExceptionStack uint16
}
type
  LIST_ENTRY64 = record
    Flink: UInt64;
    Blink: UInt64;
  end;

  DBGKD_DEBUG_DATA_HEADER64 = record
    List: LIST_ENTRY64;
    OwnerTag: DWORD;
    Size: DWORD;
  end;

  KDDEBUGGER_DATA64 = record
    Header: DBGKD_DEBUG_DATA_HEADER64;
    KernBase: UInt64;
    BreakpointWithStatus: UInt64;
    SavedContext: UInt64;
    ThCallbackStack: Word;
    NextCallback: Word;
    FramePointer: Word;
    _bitfield: Word;
    KiCallUserMode: UInt64;
    KeUserCallbackDispatcher: UInt64;
    PsLoadedModuleList: UInt64;
    PsActiveProcessHead: UInt64;
    PspCidTable: UInt64;
    ExpSystemResourcesList: UInt64;
    ExpPagedPoolDescriptor: UInt64;
    ExpNumberOfPagedPools: UInt64;
    KeTimeIncrement: UInt64;
    KeBugCheckCallbackListHead: UInt64;
    KiBugcheckData: UInt64;
    IopErrorLogListHead: UInt64;
    ObpRootDirectoryObject: UInt64;
    ObpTypeObjectType: UInt64;
    MmSystemCacheStart: UInt64;
    MmSystemCacheEnd: UInt64;
    MmSystemCacheWs: UInt64;
    MmPfnDatabase: UInt64;
    MmSystemPtesStart: UInt64;
    MmSystemPtesEnd: UInt64;
    MmSubsectionBase: UInt64;
    MmNumberOfPagingFiles: UInt64;
    MmLowestPhysicalPage: UInt64;
    MmHighestPhysicalPage: UInt64;
    MmNumberOfPhysicalPages: UInt64;
    MmMaximumNonPagedPoolInBytes: UInt64;
    MmNonPagedSystemStart: UInt64;
    MmNonPagedPoolStart: UInt64;
    MmNonPagedPoolEnd: UInt64;
    MmPagedPoolStart: UInt64;
    MmPagedPoolEnd: UInt64;
    MmPagedPoolInformation: UInt64;
    MmPageSize: UInt64;
    MmSizeOfPagedPoolInBytes: UInt64;
    MmTotalCommitLimit: UInt64;
    MmTotalCommittedPages: UInt64;
    MmSharedCommit: UInt64;
    MmDriverCommit: UInt64;
    MmProcessCommit: UInt64;
    MmPagedPoolCommit: UInt64;
    MmExtendedCommit: UInt64;
    MmZeroedPageListHead: UInt64;
    MmFreePageListHead: UInt64;
    MmStandbyPageListHead: UInt64;
    MmModifiedPageListHead: UInt64;
    MmModifiedNoWritePageListHead: UInt64;
    MmAvailablePages: UInt64;
    MmResidentAvailablePages: UInt64;
    PoolTrackTable: UInt64;
    NonPagedPoolDescriptor: UInt64;
    MmHighestUserAddress: UInt64;
    MmSystemRangeStart: UInt64;
    MmUserProbeAddress: UInt64;
    KdPrintCircularBuffer: UInt64;
    KdPrintCircularBufferEnd: UInt64;
    KdPrintWritePointer: UInt64;
    KdPrintRolloverCount: UInt64;
    MmLoadedUserImageList: UInt64;
    NtBuildLab: UInt64;
    KiNormalSystemCall: UInt64;
    KiProcessorBlock: UInt64;
    MmUnloadedDrivers: UInt64;
    MmLastUnloadedDriver: UInt64;
    MmTriageActionTaken: UInt64;
    MmSpecialPoolTag: UInt64;
    KernelVerifier: UInt64;
    MmVerifierData: UInt64;
    MmAllocatedNonPagedPool: UInt64;
    MmPeakCommitment: UInt64;
    MmTotalCommitLimitMaximum: UInt64;
    CmNtCSDVersion: UInt64;
    MmPhysicalMemoryBlock: UInt64;
    MmSessionBase: UInt64;
    MmSessionSize: UInt64;
    MmSystemParentTablePage: UInt64;
    MmVirtualTranslationBase: UInt64;
    OffsetKThreadNextProcessor: Word;
    OffsetKThreadTeb: Word;
    OffsetKThreadKernelStack: Word;
    OffsetKThreadInitialStack: Word;
    OffsetKThreadApcProcess: Word;
    OffsetKThreadState: Word;
    OffsetKThreadBStore: Word;
    OffsetKThreadBStoreLimit: Word;
    SizeEProcess: Word;
    OffsetEprocessPeb: Word;
    OffsetEprocessParentCID: Word;
    OffsetEprocessDirectoryTableBase: Word;
    SizePrcb: Word;
    OffsetPrcbDpcRoutine: Word;
    OffsetPrcbCurrentThread: Word;
    OffsetPrcbMhz: Word;
    OffsetPrcbCpuType: Word;
    OffsetPrcbVendorString: Word;
    OffsetPrcbProcStateContext: Word;
    OffsetPrcbNumber: Word;
    SizeEThread: Word;
    L1tfHighPhysicalBitIndex: Byte;
    L1tfSwizzleBitIndex: Byte;
    Padding0: DWORD;
    KdPrintCircularBufferPtr: UInt64;
    KdPrintBufferSize: UInt64;
    KeLoaderBlock: UInt64;
    SizePcr: Word;
    OffsetPcrSelfPcr: Word;
    OffsetPcrCurrentPrcb: Word;
    OffsetPcrContainedPrcb: Word;
    OffsetPcrInitialBStore: Word;
    OffsetPcrBStoreLimit: Word;
    OffsetPcrInitialStack: Word;
    OffsetPcrStackLimit: Word;
    OffsetPrcbPcrPage: Word;
    OffsetPrcbProcStateSpecialReg: Word;
    GdtR0Code: Word;
    GdtR0Data: Word;
    GdtR0Pcr: Word;
    GdtR3Code: Word;
    GdtR3Data: Word;
    GdtR3Teb: Word;
    GdtLdt: Word;
    GdtTss: Word;
    Gdt64R3CmCode: Word;
    Gdt64R3CmTeb: Word;
    IopNumTriageDumpDataBlocks: UInt64;
    IopTriageDumpDataBlocks: UInt64;
    VfCrashDataBlock: UInt64;
    MmBadPagesDetected: UInt64;
    MmZeroedPageSingleBitErrorsDetected: UInt64;
    EtwpDebuggerData: UInt64;
    OffsetPrcbContext: Word;
    OffsetPrcbMaxBreakpoints: Word;
    OffsetPrcbMaxWatchpoints: Word;
    OffsetKThreadStackLimit: DWORD;
    OffsetKThreadStackBase: DWORD;
    OffsetKThreadQueueListEntry: DWORD;
    OffsetEThreadIrpList: DWORD;
    OffsetPrcbIdleThread: Word;
    OffsetPrcbNormalDpcState: Word;
    OffsetPrcbDpcStack: Word;
    OffsetPrcbIsrStack: Word;
    SizeKDPC_STACK_FRAME: Word;
    OffsetKPriQueueThreadListHead: Word;
    OffsetKThreadWaitReason: Word;
    Padding1: Word;
    PteBase: UInt64;
    RetpolineStubFunctionTable: UInt64;
    RetpolineStubFunctionTableSize: DWORD;
    RetpolineStubOffset: DWORD;
    RetpolineStubSize: DWORD;
    OffsetEProcessMmHotPatchContext: Word;
    OffsetKThreadShadowStackLimit: DWORD;
    OffsetKThreadShadowStackBase: DWORD;
    ShadowStackEnabled: UInt64;
    PointerAuthMask: UInt64;
    OffsetPrcbExceptionStack: Word;
  end;
const LIST_ENTRY64 = extern struct {
    Flink: u64,
    Blink: u64,
};

const DBGKD_DEBUG_DATA_HEADER64 = extern struct {
    List: LIST_ENTRY64,
    OwnerTag: u32,
    Size: u32,
};

const KDDEBUGGER_DATA64 = extern struct {
    Header: DBGKD_DEBUG_DATA_HEADER64,
    KernBase: u64,
    BreakpointWithStatus: u64,
    SavedContext: u64,
    ThCallbackStack: u16,
    NextCallback: u16,
    FramePointer: u16,
    _bitfield: u16,
    KiCallUserMode: u64,
    KeUserCallbackDispatcher: u64,
    PsLoadedModuleList: u64,
    PsActiveProcessHead: u64,
    PspCidTable: u64,
    ExpSystemResourcesList: u64,
    ExpPagedPoolDescriptor: u64,
    ExpNumberOfPagedPools: u64,
    KeTimeIncrement: u64,
    KeBugCheckCallbackListHead: u64,
    KiBugcheckData: u64,
    IopErrorLogListHead: u64,
    ObpRootDirectoryObject: u64,
    ObpTypeObjectType: u64,
    MmSystemCacheStart: u64,
    MmSystemCacheEnd: u64,
    MmSystemCacheWs: u64,
    MmPfnDatabase: u64,
    MmSystemPtesStart: u64,
    MmSystemPtesEnd: u64,
    MmSubsectionBase: u64,
    MmNumberOfPagingFiles: u64,
    MmLowestPhysicalPage: u64,
    MmHighestPhysicalPage: u64,
    MmNumberOfPhysicalPages: u64,
    MmMaximumNonPagedPoolInBytes: u64,
    MmNonPagedSystemStart: u64,
    MmNonPagedPoolStart: u64,
    MmNonPagedPoolEnd: u64,
    MmPagedPoolStart: u64,
    MmPagedPoolEnd: u64,
    MmPagedPoolInformation: u64,
    MmPageSize: u64,
    MmSizeOfPagedPoolInBytes: u64,
    MmTotalCommitLimit: u64,
    MmTotalCommittedPages: u64,
    MmSharedCommit: u64,
    MmDriverCommit: u64,
    MmProcessCommit: u64,
    MmPagedPoolCommit: u64,
    MmExtendedCommit: u64,
    MmZeroedPageListHead: u64,
    MmFreePageListHead: u64,
    MmStandbyPageListHead: u64,
    MmModifiedPageListHead: u64,
    MmModifiedNoWritePageListHead: u64,
    MmAvailablePages: u64,
    MmResidentAvailablePages: u64,
    PoolTrackTable: u64,
    NonPagedPoolDescriptor: u64,
    MmHighestUserAddress: u64,
    MmSystemRangeStart: u64,
    MmUserProbeAddress: u64,
    KdPrintCircularBuffer: u64,
    KdPrintCircularBufferEnd: u64,
    KdPrintWritePointer: u64,
    KdPrintRolloverCount: u64,
    MmLoadedUserImageList: u64,
    NtBuildLab: u64,
    KiNormalSystemCall: u64,
    KiProcessorBlock: u64,
    MmUnloadedDrivers: u64,
    MmLastUnloadedDriver: u64,
    MmTriageActionTaken: u64,
    MmSpecialPoolTag: u64,
    KernelVerifier: u64,
    MmVerifierData: u64,
    MmAllocatedNonPagedPool: u64,
    MmPeakCommitment: u64,
    MmTotalCommitLimitMaximum: u64,
    CmNtCSDVersion: u64,
    MmPhysicalMemoryBlock: u64,
    MmSessionBase: u64,
    MmSessionSize: u64,
    MmSystemParentTablePage: u64,
    MmVirtualTranslationBase: u64,
    OffsetKThreadNextProcessor: u16,
    OffsetKThreadTeb: u16,
    OffsetKThreadKernelStack: u16,
    OffsetKThreadInitialStack: u16,
    OffsetKThreadApcProcess: u16,
    OffsetKThreadState: u16,
    OffsetKThreadBStore: u16,
    OffsetKThreadBStoreLimit: u16,
    SizeEProcess: u16,
    OffsetEprocessPeb: u16,
    OffsetEprocessParentCID: u16,
    OffsetEprocessDirectoryTableBase: u16,
    SizePrcb: u16,
    OffsetPrcbDpcRoutine: u16,
    OffsetPrcbCurrentThread: u16,
    OffsetPrcbMhz: u16,
    OffsetPrcbCpuType: u16,
    OffsetPrcbVendorString: u16,
    OffsetPrcbProcStateContext: u16,
    OffsetPrcbNumber: u16,
    SizeEThread: u16,
    L1tfHighPhysicalBitIndex: u8,
    L1tfSwizzleBitIndex: u8,
    Padding0: u32,
    KdPrintCircularBufferPtr: u64,
    KdPrintBufferSize: u64,
    KeLoaderBlock: u64,
    SizePcr: u16,
    OffsetPcrSelfPcr: u16,
    OffsetPcrCurrentPrcb: u16,
    OffsetPcrContainedPrcb: u16,
    OffsetPcrInitialBStore: u16,
    OffsetPcrBStoreLimit: u16,
    OffsetPcrInitialStack: u16,
    OffsetPcrStackLimit: u16,
    OffsetPrcbPcrPage: u16,
    OffsetPrcbProcStateSpecialReg: u16,
    GdtR0Code: u16,
    GdtR0Data: u16,
    GdtR0Pcr: u16,
    GdtR3Code: u16,
    GdtR3Data: u16,
    GdtR3Teb: u16,
    GdtLdt: u16,
    GdtTss: u16,
    Gdt64R3CmCode: u16,
    Gdt64R3CmTeb: u16,
    IopNumTriageDumpDataBlocks: u64,
    IopTriageDumpDataBlocks: u64,
    VfCrashDataBlock: u64,
    MmBadPagesDetected: u64,
    MmZeroedPageSingleBitErrorsDetected: u64,
    EtwpDebuggerData: u64,
    OffsetPrcbContext: u16,
    OffsetPrcbMaxBreakpoints: u16,
    OffsetPrcbMaxWatchpoints: u16,
    OffsetKThreadStackLimit: u32,
    OffsetKThreadStackBase: u32,
    OffsetKThreadQueueListEntry: u32,
    OffsetEThreadIrpList: u32,
    OffsetPrcbIdleThread: u16,
    OffsetPrcbNormalDpcState: u16,
    OffsetPrcbDpcStack: u16,
    OffsetPrcbIsrStack: u16,
    SizeKDPC_STACK_FRAME: u16,
    OffsetKPriQueueThreadListHead: u16,
    OffsetKThreadWaitReason: u16,
    Padding1: u16,
    PteBase: u64,
    RetpolineStubFunctionTable: u64,
    RetpolineStubFunctionTableSize: u32,
    RetpolineStubOffset: u32,
    RetpolineStubSize: u32,
    OffsetEProcessMmHotPatchContext: u16,
    OffsetKThreadShadowStackLimit: u32,
    OffsetKThreadShadowStackBase: u32,
    ShadowStackEnabled: u64,
    PointerAuthMask: u64,
    OffsetPrcbExceptionStack: u16,
};
type
  LIST_ENTRY64 {.bycopy.} = object
    Flink: uint64
    Blink: uint64

  DBGKD_DEBUG_DATA_HEADER64 {.bycopy.} = object
    List: LIST_ENTRY64
    OwnerTag: uint32
    Size: uint32

  KDDEBUGGER_DATA64 {.bycopy.} = object
    Header: DBGKD_DEBUG_DATA_HEADER64
    KernBase: uint64
    BreakpointWithStatus: uint64
    SavedContext: uint64
    ThCallbackStack: uint16
    NextCallback: uint16
    FramePointer: uint16
    _bitfield: uint16
    KiCallUserMode: uint64
    KeUserCallbackDispatcher: uint64
    PsLoadedModuleList: uint64
    PsActiveProcessHead: uint64
    PspCidTable: uint64
    ExpSystemResourcesList: uint64
    ExpPagedPoolDescriptor: uint64
    ExpNumberOfPagedPools: uint64
    KeTimeIncrement: uint64
    KeBugCheckCallbackListHead: uint64
    KiBugcheckData: uint64
    IopErrorLogListHead: uint64
    ObpRootDirectoryObject: uint64
    ObpTypeObjectType: uint64
    MmSystemCacheStart: uint64
    MmSystemCacheEnd: uint64
    MmSystemCacheWs: uint64
    MmPfnDatabase: uint64
    MmSystemPtesStart: uint64
    MmSystemPtesEnd: uint64
    MmSubsectionBase: uint64
    MmNumberOfPagingFiles: uint64
    MmLowestPhysicalPage: uint64
    MmHighestPhysicalPage: uint64
    MmNumberOfPhysicalPages: uint64
    MmMaximumNonPagedPoolInBytes: uint64
    MmNonPagedSystemStart: uint64
    MmNonPagedPoolStart: uint64
    MmNonPagedPoolEnd: uint64
    MmPagedPoolStart: uint64
    MmPagedPoolEnd: uint64
    MmPagedPoolInformation: uint64
    MmPageSize: uint64
    MmSizeOfPagedPoolInBytes: uint64
    MmTotalCommitLimit: uint64
    MmTotalCommittedPages: uint64
    MmSharedCommit: uint64
    MmDriverCommit: uint64
    MmProcessCommit: uint64
    MmPagedPoolCommit: uint64
    MmExtendedCommit: uint64
    MmZeroedPageListHead: uint64
    MmFreePageListHead: uint64
    MmStandbyPageListHead: uint64
    MmModifiedPageListHead: uint64
    MmModifiedNoWritePageListHead: uint64
    MmAvailablePages: uint64
    MmResidentAvailablePages: uint64
    PoolTrackTable: uint64
    NonPagedPoolDescriptor: uint64
    MmHighestUserAddress: uint64
    MmSystemRangeStart: uint64
    MmUserProbeAddress: uint64
    KdPrintCircularBuffer: uint64
    KdPrintCircularBufferEnd: uint64
    KdPrintWritePointer: uint64
    KdPrintRolloverCount: uint64
    MmLoadedUserImageList: uint64
    NtBuildLab: uint64
    KiNormalSystemCall: uint64
    KiProcessorBlock: uint64
    MmUnloadedDrivers: uint64
    MmLastUnloadedDriver: uint64
    MmTriageActionTaken: uint64
    MmSpecialPoolTag: uint64
    KernelVerifier: uint64
    MmVerifierData: uint64
    MmAllocatedNonPagedPool: uint64
    MmPeakCommitment: uint64
    MmTotalCommitLimitMaximum: uint64
    CmNtCSDVersion: uint64
    MmPhysicalMemoryBlock: uint64
    MmSessionBase: uint64
    MmSessionSize: uint64
    MmSystemParentTablePage: uint64
    MmVirtualTranslationBase: uint64
    OffsetKThreadNextProcessor: uint16
    OffsetKThreadTeb: uint16
    OffsetKThreadKernelStack: uint16
    OffsetKThreadInitialStack: uint16
    OffsetKThreadApcProcess: uint16
    OffsetKThreadState: uint16
    OffsetKThreadBStore: uint16
    OffsetKThreadBStoreLimit: uint16
    SizeEProcess: uint16
    OffsetEprocessPeb: uint16
    OffsetEprocessParentCID: uint16
    OffsetEprocessDirectoryTableBase: uint16
    SizePrcb: uint16
    OffsetPrcbDpcRoutine: uint16
    OffsetPrcbCurrentThread: uint16
    OffsetPrcbMhz: uint16
    OffsetPrcbCpuType: uint16
    OffsetPrcbVendorString: uint16
    OffsetPrcbProcStateContext: uint16
    OffsetPrcbNumber: uint16
    SizeEThread: uint16
    L1tfHighPhysicalBitIndex: uint8
    L1tfSwizzleBitIndex: uint8
    Padding0: uint32
    KdPrintCircularBufferPtr: uint64
    KdPrintBufferSize: uint64
    KeLoaderBlock: uint64
    SizePcr: uint16
    OffsetPcrSelfPcr: uint16
    OffsetPcrCurrentPrcb: uint16
    OffsetPcrContainedPrcb: uint16
    OffsetPcrInitialBStore: uint16
    OffsetPcrBStoreLimit: uint16
    OffsetPcrInitialStack: uint16
    OffsetPcrStackLimit: uint16
    OffsetPrcbPcrPage: uint16
    OffsetPrcbProcStateSpecialReg: uint16
    GdtR0Code: uint16
    GdtR0Data: uint16
    GdtR0Pcr: uint16
    GdtR3Code: uint16
    GdtR3Data: uint16
    GdtR3Teb: uint16
    GdtLdt: uint16
    GdtTss: uint16
    Gdt64R3CmCode: uint16
    Gdt64R3CmTeb: uint16
    IopNumTriageDumpDataBlocks: uint64
    IopTriageDumpDataBlocks: uint64
    VfCrashDataBlock: uint64
    MmBadPagesDetected: uint64
    MmZeroedPageSingleBitErrorsDetected: uint64
    EtwpDebuggerData: uint64
    OffsetPrcbContext: uint16
    OffsetPrcbMaxBreakpoints: uint16
    OffsetPrcbMaxWatchpoints: uint16
    OffsetKThreadStackLimit: uint32
    OffsetKThreadStackBase: uint32
    OffsetKThreadQueueListEntry: uint32
    OffsetEThreadIrpList: uint32
    OffsetPrcbIdleThread: uint16
    OffsetPrcbNormalDpcState: uint16
    OffsetPrcbDpcStack: uint16
    OffsetPrcbIsrStack: uint16
    SizeKDPC_STACK_FRAME: uint16
    OffsetKPriQueueThreadListHead: uint16
    OffsetKThreadWaitReason: uint16
    Padding1: uint16
    PteBase: uint64
    RetpolineStubFunctionTable: uint64
    RetpolineStubFunctionTableSize: uint32
    RetpolineStubOffset: uint32
    RetpolineStubSize: uint32
    OffsetEProcessMmHotPatchContext: uint16
    OffsetKThreadShadowStackLimit: uint32
    OffsetKThreadShadowStackBase: uint32
    ShadowStackEnabled: uint64
    PointerAuthMask: uint64
    OffsetPrcbExceptionStack: uint16
struct LIST_ENTRY64
{
    ulong Flink;
    ulong Blink;
}

struct DBGKD_DEBUG_DATA_HEADER64
{
    LIST_ENTRY64 List;
    uint OwnerTag;
    uint Size;
}

struct KDDEBUGGER_DATA64
{
    DBGKD_DEBUG_DATA_HEADER64 Header;
    ulong KernBase;
    ulong BreakpointWithStatus;
    ulong SavedContext;
    ushort ThCallbackStack;
    ushort NextCallback;
    ushort FramePointer;
    ushort _bitfield;
    ulong KiCallUserMode;
    ulong KeUserCallbackDispatcher;
    ulong PsLoadedModuleList;
    ulong PsActiveProcessHead;
    ulong PspCidTable;
    ulong ExpSystemResourcesList;
    ulong ExpPagedPoolDescriptor;
    ulong ExpNumberOfPagedPools;
    ulong KeTimeIncrement;
    ulong KeBugCheckCallbackListHead;
    ulong KiBugcheckData;
    ulong IopErrorLogListHead;
    ulong ObpRootDirectoryObject;
    ulong ObpTypeObjectType;
    ulong MmSystemCacheStart;
    ulong MmSystemCacheEnd;
    ulong MmSystemCacheWs;
    ulong MmPfnDatabase;
    ulong MmSystemPtesStart;
    ulong MmSystemPtesEnd;
    ulong MmSubsectionBase;
    ulong MmNumberOfPagingFiles;
    ulong MmLowestPhysicalPage;
    ulong MmHighestPhysicalPage;
    ulong MmNumberOfPhysicalPages;
    ulong MmMaximumNonPagedPoolInBytes;
    ulong MmNonPagedSystemStart;
    ulong MmNonPagedPoolStart;
    ulong MmNonPagedPoolEnd;
    ulong MmPagedPoolStart;
    ulong MmPagedPoolEnd;
    ulong MmPagedPoolInformation;
    ulong MmPageSize;
    ulong MmSizeOfPagedPoolInBytes;
    ulong MmTotalCommitLimit;
    ulong MmTotalCommittedPages;
    ulong MmSharedCommit;
    ulong MmDriverCommit;
    ulong MmProcessCommit;
    ulong MmPagedPoolCommit;
    ulong MmExtendedCommit;
    ulong MmZeroedPageListHead;
    ulong MmFreePageListHead;
    ulong MmStandbyPageListHead;
    ulong MmModifiedPageListHead;
    ulong MmModifiedNoWritePageListHead;
    ulong MmAvailablePages;
    ulong MmResidentAvailablePages;
    ulong PoolTrackTable;
    ulong NonPagedPoolDescriptor;
    ulong MmHighestUserAddress;
    ulong MmSystemRangeStart;
    ulong MmUserProbeAddress;
    ulong KdPrintCircularBuffer;
    ulong KdPrintCircularBufferEnd;
    ulong KdPrintWritePointer;
    ulong KdPrintRolloverCount;
    ulong MmLoadedUserImageList;
    ulong NtBuildLab;
    ulong KiNormalSystemCall;
    ulong KiProcessorBlock;
    ulong MmUnloadedDrivers;
    ulong MmLastUnloadedDriver;
    ulong MmTriageActionTaken;
    ulong MmSpecialPoolTag;
    ulong KernelVerifier;
    ulong MmVerifierData;
    ulong MmAllocatedNonPagedPool;
    ulong MmPeakCommitment;
    ulong MmTotalCommitLimitMaximum;
    ulong CmNtCSDVersion;
    ulong MmPhysicalMemoryBlock;
    ulong MmSessionBase;
    ulong MmSessionSize;
    ulong MmSystemParentTablePage;
    ulong MmVirtualTranslationBase;
    ushort OffsetKThreadNextProcessor;
    ushort OffsetKThreadTeb;
    ushort OffsetKThreadKernelStack;
    ushort OffsetKThreadInitialStack;
    ushort OffsetKThreadApcProcess;
    ushort OffsetKThreadState;
    ushort OffsetKThreadBStore;
    ushort OffsetKThreadBStoreLimit;
    ushort SizeEProcess;
    ushort OffsetEprocessPeb;
    ushort OffsetEprocessParentCID;
    ushort OffsetEprocessDirectoryTableBase;
    ushort SizePrcb;
    ushort OffsetPrcbDpcRoutine;
    ushort OffsetPrcbCurrentThread;
    ushort OffsetPrcbMhz;
    ushort OffsetPrcbCpuType;
    ushort OffsetPrcbVendorString;
    ushort OffsetPrcbProcStateContext;
    ushort OffsetPrcbNumber;
    ushort SizeEThread;
    ubyte L1tfHighPhysicalBitIndex;
    ubyte L1tfSwizzleBitIndex;
    uint Padding0;
    ulong KdPrintCircularBufferPtr;
    ulong KdPrintBufferSize;
    ulong KeLoaderBlock;
    ushort SizePcr;
    ushort OffsetPcrSelfPcr;
    ushort OffsetPcrCurrentPrcb;
    ushort OffsetPcrContainedPrcb;
    ushort OffsetPcrInitialBStore;
    ushort OffsetPcrBStoreLimit;
    ushort OffsetPcrInitialStack;
    ushort OffsetPcrStackLimit;
    ushort OffsetPrcbPcrPage;
    ushort OffsetPrcbProcStateSpecialReg;
    ushort GdtR0Code;
    ushort GdtR0Data;
    ushort GdtR0Pcr;
    ushort GdtR3Code;
    ushort GdtR3Data;
    ushort GdtR3Teb;
    ushort GdtLdt;
    ushort GdtTss;
    ushort Gdt64R3CmCode;
    ushort Gdt64R3CmTeb;
    ulong IopNumTriageDumpDataBlocks;
    ulong IopTriageDumpDataBlocks;
    ulong VfCrashDataBlock;
    ulong MmBadPagesDetected;
    ulong MmZeroedPageSingleBitErrorsDetected;
    ulong EtwpDebuggerData;
    ushort OffsetPrcbContext;
    ushort OffsetPrcbMaxBreakpoints;
    ushort OffsetPrcbMaxWatchpoints;
    uint OffsetKThreadStackLimit;
    uint OffsetKThreadStackBase;
    uint OffsetKThreadQueueListEntry;
    uint OffsetEThreadIrpList;
    ushort OffsetPrcbIdleThread;
    ushort OffsetPrcbNormalDpcState;
    ushort OffsetPrcbDpcStack;
    ushort OffsetPrcbIsrStack;
    ushort SizeKDPC_STACK_FRAME;
    ushort OffsetKPriQueueThreadListHead;
    ushort OffsetKThreadWaitReason;
    ushort Padding1;
    ulong PteBase;
    ulong RetpolineStubFunctionTable;
    uint RetpolineStubFunctionTableSize;
    uint RetpolineStubOffset;
    uint RetpolineStubSize;
    ushort OffsetEProcessMmHotPatchContext;
    uint OffsetKThreadShadowStackLimit;
    uint OffsetKThreadShadowStackBase;
    ulong ShadowStackEnabled;
    ulong PointerAuthMask;
    ushort OffsetPrcbExceptionStack;
}

HSP用 定義

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

; HSP3.7/3.8 は構造体機能が無いため、4byte整数の配列変数で操作します。(x64 レイアウト)
; KDDEBUGGER_DATA64 サイズ: 928 バイト(x64)
dim st, 232    ; 4byte整数×232(構造体サイズ 928 / 4 切り上げ)
; Header : DBGKD_DEBUG_DATA_HEADER64 (+0, 24byte)  varptr(st)+0 を基点に操作(24byte:入れ子/配列)
; KernBase : ULONGLONG (+24, 8byte)  qpoke st,24,値 / qpeek(st,24)  ※IronHSPのみ。3.7/3.8は lpoke st,24,下位 : lpoke st,28,上位
; BreakpointWithStatus : ULONGLONG (+32, 8byte)  qpoke st,32,値 / qpeek(st,32)  ※IronHSPのみ。3.7/3.8は lpoke st,32,下位 : lpoke st,36,上位
; SavedContext : ULONGLONG (+40, 8byte)  qpoke st,40,値 / qpeek(st,40)  ※IronHSPのみ。3.7/3.8は lpoke st,40,下位 : lpoke st,44,上位
; ThCallbackStack : WORD (+48, 2byte)  wpoke st,48,値  /  値 = wpeek(st,48)
; NextCallback : WORD (+50, 2byte)  wpoke st,50,値  /  値 = wpeek(st,50)
; FramePointer : WORD (+52, 2byte)  wpoke st,52,値  /  値 = wpeek(st,52)
; _bitfield : WORD (+54, 2byte)  wpoke st,54,値  /  値 = wpeek(st,54)
; KiCallUserMode : ULONGLONG (+56, 8byte)  qpoke st,56,値 / qpeek(st,56)  ※IronHSPのみ。3.7/3.8は lpoke st,56,下位 : lpoke st,60,上位
; KeUserCallbackDispatcher : ULONGLONG (+64, 8byte)  qpoke st,64,値 / qpeek(st,64)  ※IronHSPのみ。3.7/3.8は lpoke st,64,下位 : lpoke st,68,上位
; PsLoadedModuleList : ULONGLONG (+72, 8byte)  qpoke st,72,値 / qpeek(st,72)  ※IronHSPのみ。3.7/3.8は lpoke st,72,下位 : lpoke st,76,上位
; PsActiveProcessHead : ULONGLONG (+80, 8byte)  qpoke st,80,値 / qpeek(st,80)  ※IronHSPのみ。3.7/3.8は lpoke st,80,下位 : lpoke st,84,上位
; PspCidTable : ULONGLONG (+88, 8byte)  qpoke st,88,値 / qpeek(st,88)  ※IronHSPのみ。3.7/3.8は lpoke st,88,下位 : lpoke st,92,上位
; ExpSystemResourcesList : ULONGLONG (+96, 8byte)  qpoke st,96,値 / qpeek(st,96)  ※IronHSPのみ。3.7/3.8は lpoke st,96,下位 : lpoke st,100,上位
; ExpPagedPoolDescriptor : ULONGLONG (+104, 8byte)  qpoke st,104,値 / qpeek(st,104)  ※IronHSPのみ。3.7/3.8は lpoke st,104,下位 : lpoke st,108,上位
; ExpNumberOfPagedPools : ULONGLONG (+112, 8byte)  qpoke st,112,値 / qpeek(st,112)  ※IronHSPのみ。3.7/3.8は lpoke st,112,下位 : lpoke st,116,上位
; KeTimeIncrement : ULONGLONG (+120, 8byte)  qpoke st,120,値 / qpeek(st,120)  ※IronHSPのみ。3.7/3.8は lpoke st,120,下位 : lpoke st,124,上位
; KeBugCheckCallbackListHead : ULONGLONG (+128, 8byte)  qpoke st,128,値 / qpeek(st,128)  ※IronHSPのみ。3.7/3.8は lpoke st,128,下位 : lpoke st,132,上位
; KiBugcheckData : ULONGLONG (+136, 8byte)  qpoke st,136,値 / qpeek(st,136)  ※IronHSPのみ。3.7/3.8は lpoke st,136,下位 : lpoke st,140,上位
; IopErrorLogListHead : ULONGLONG (+144, 8byte)  qpoke st,144,値 / qpeek(st,144)  ※IronHSPのみ。3.7/3.8は lpoke st,144,下位 : lpoke st,148,上位
; ObpRootDirectoryObject : ULONGLONG (+152, 8byte)  qpoke st,152,値 / qpeek(st,152)  ※IronHSPのみ。3.7/3.8は lpoke st,152,下位 : lpoke st,156,上位
; ObpTypeObjectType : ULONGLONG (+160, 8byte)  qpoke st,160,値 / qpeek(st,160)  ※IronHSPのみ。3.7/3.8は lpoke st,160,下位 : lpoke st,164,上位
; MmSystemCacheStart : ULONGLONG (+168, 8byte)  qpoke st,168,値 / qpeek(st,168)  ※IronHSPのみ。3.7/3.8は lpoke st,168,下位 : lpoke st,172,上位
; MmSystemCacheEnd : ULONGLONG (+176, 8byte)  qpoke st,176,値 / qpeek(st,176)  ※IronHSPのみ。3.7/3.8は lpoke st,176,下位 : lpoke st,180,上位
; MmSystemCacheWs : ULONGLONG (+184, 8byte)  qpoke st,184,値 / qpeek(st,184)  ※IronHSPのみ。3.7/3.8は lpoke st,184,下位 : lpoke st,188,上位
; MmPfnDatabase : ULONGLONG (+192, 8byte)  qpoke st,192,値 / qpeek(st,192)  ※IronHSPのみ。3.7/3.8は lpoke st,192,下位 : lpoke st,196,上位
; MmSystemPtesStart : ULONGLONG (+200, 8byte)  qpoke st,200,値 / qpeek(st,200)  ※IronHSPのみ。3.7/3.8は lpoke st,200,下位 : lpoke st,204,上位
; MmSystemPtesEnd : ULONGLONG (+208, 8byte)  qpoke st,208,値 / qpeek(st,208)  ※IronHSPのみ。3.7/3.8は lpoke st,208,下位 : lpoke st,212,上位
; MmSubsectionBase : ULONGLONG (+216, 8byte)  qpoke st,216,値 / qpeek(st,216)  ※IronHSPのみ。3.7/3.8は lpoke st,216,下位 : lpoke st,220,上位
; MmNumberOfPagingFiles : ULONGLONG (+224, 8byte)  qpoke st,224,値 / qpeek(st,224)  ※IronHSPのみ。3.7/3.8は lpoke st,224,下位 : lpoke st,228,上位
; MmLowestPhysicalPage : ULONGLONG (+232, 8byte)  qpoke st,232,値 / qpeek(st,232)  ※IronHSPのみ。3.7/3.8は lpoke st,232,下位 : lpoke st,236,上位
; MmHighestPhysicalPage : ULONGLONG (+240, 8byte)  qpoke st,240,値 / qpeek(st,240)  ※IronHSPのみ。3.7/3.8は lpoke st,240,下位 : lpoke st,244,上位
; MmNumberOfPhysicalPages : ULONGLONG (+248, 8byte)  qpoke st,248,値 / qpeek(st,248)  ※IronHSPのみ。3.7/3.8は lpoke st,248,下位 : lpoke st,252,上位
; MmMaximumNonPagedPoolInBytes : ULONGLONG (+256, 8byte)  qpoke st,256,値 / qpeek(st,256)  ※IronHSPのみ。3.7/3.8は lpoke st,256,下位 : lpoke st,260,上位
; MmNonPagedSystemStart : ULONGLONG (+264, 8byte)  qpoke st,264,値 / qpeek(st,264)  ※IronHSPのみ。3.7/3.8は lpoke st,264,下位 : lpoke st,268,上位
; MmNonPagedPoolStart : ULONGLONG (+272, 8byte)  qpoke st,272,値 / qpeek(st,272)  ※IronHSPのみ。3.7/3.8は lpoke st,272,下位 : lpoke st,276,上位
; MmNonPagedPoolEnd : ULONGLONG (+280, 8byte)  qpoke st,280,値 / qpeek(st,280)  ※IronHSPのみ。3.7/3.8は lpoke st,280,下位 : lpoke st,284,上位
; MmPagedPoolStart : ULONGLONG (+288, 8byte)  qpoke st,288,値 / qpeek(st,288)  ※IronHSPのみ。3.7/3.8は lpoke st,288,下位 : lpoke st,292,上位
; MmPagedPoolEnd : ULONGLONG (+296, 8byte)  qpoke st,296,値 / qpeek(st,296)  ※IronHSPのみ。3.7/3.8は lpoke st,296,下位 : lpoke st,300,上位
; MmPagedPoolInformation : ULONGLONG (+304, 8byte)  qpoke st,304,値 / qpeek(st,304)  ※IronHSPのみ。3.7/3.8は lpoke st,304,下位 : lpoke st,308,上位
; MmPageSize : ULONGLONG (+312, 8byte)  qpoke st,312,値 / qpeek(st,312)  ※IronHSPのみ。3.7/3.8は lpoke st,312,下位 : lpoke st,316,上位
; MmSizeOfPagedPoolInBytes : ULONGLONG (+320, 8byte)  qpoke st,320,値 / qpeek(st,320)  ※IronHSPのみ。3.7/3.8は lpoke st,320,下位 : lpoke st,324,上位
; MmTotalCommitLimit : ULONGLONG (+328, 8byte)  qpoke st,328,値 / qpeek(st,328)  ※IronHSPのみ。3.7/3.8は lpoke st,328,下位 : lpoke st,332,上位
; MmTotalCommittedPages : ULONGLONG (+336, 8byte)  qpoke st,336,値 / qpeek(st,336)  ※IronHSPのみ。3.7/3.8は lpoke st,336,下位 : lpoke st,340,上位
; MmSharedCommit : ULONGLONG (+344, 8byte)  qpoke st,344,値 / qpeek(st,344)  ※IronHSPのみ。3.7/3.8は lpoke st,344,下位 : lpoke st,348,上位
; MmDriverCommit : ULONGLONG (+352, 8byte)  qpoke st,352,値 / qpeek(st,352)  ※IronHSPのみ。3.7/3.8は lpoke st,352,下位 : lpoke st,356,上位
; MmProcessCommit : ULONGLONG (+360, 8byte)  qpoke st,360,値 / qpeek(st,360)  ※IronHSPのみ。3.7/3.8は lpoke st,360,下位 : lpoke st,364,上位
; MmPagedPoolCommit : ULONGLONG (+368, 8byte)  qpoke st,368,値 / qpeek(st,368)  ※IronHSPのみ。3.7/3.8は lpoke st,368,下位 : lpoke st,372,上位
; MmExtendedCommit : ULONGLONG (+376, 8byte)  qpoke st,376,値 / qpeek(st,376)  ※IronHSPのみ。3.7/3.8は lpoke st,376,下位 : lpoke st,380,上位
; MmZeroedPageListHead : ULONGLONG (+384, 8byte)  qpoke st,384,値 / qpeek(st,384)  ※IronHSPのみ。3.7/3.8は lpoke st,384,下位 : lpoke st,388,上位
; MmFreePageListHead : ULONGLONG (+392, 8byte)  qpoke st,392,値 / qpeek(st,392)  ※IronHSPのみ。3.7/3.8は lpoke st,392,下位 : lpoke st,396,上位
; MmStandbyPageListHead : ULONGLONG (+400, 8byte)  qpoke st,400,値 / qpeek(st,400)  ※IronHSPのみ。3.7/3.8は lpoke st,400,下位 : lpoke st,404,上位
; MmModifiedPageListHead : ULONGLONG (+408, 8byte)  qpoke st,408,値 / qpeek(st,408)  ※IronHSPのみ。3.7/3.8は lpoke st,408,下位 : lpoke st,412,上位
; MmModifiedNoWritePageListHead : ULONGLONG (+416, 8byte)  qpoke st,416,値 / qpeek(st,416)  ※IronHSPのみ。3.7/3.8は lpoke st,416,下位 : lpoke st,420,上位
; MmAvailablePages : ULONGLONG (+424, 8byte)  qpoke st,424,値 / qpeek(st,424)  ※IronHSPのみ。3.7/3.8は lpoke st,424,下位 : lpoke st,428,上位
; MmResidentAvailablePages : ULONGLONG (+432, 8byte)  qpoke st,432,値 / qpeek(st,432)  ※IronHSPのみ。3.7/3.8は lpoke st,432,下位 : lpoke st,436,上位
; PoolTrackTable : ULONGLONG (+440, 8byte)  qpoke st,440,値 / qpeek(st,440)  ※IronHSPのみ。3.7/3.8は lpoke st,440,下位 : lpoke st,444,上位
; NonPagedPoolDescriptor : ULONGLONG (+448, 8byte)  qpoke st,448,値 / qpeek(st,448)  ※IronHSPのみ。3.7/3.8は lpoke st,448,下位 : lpoke st,452,上位
; MmHighestUserAddress : ULONGLONG (+456, 8byte)  qpoke st,456,値 / qpeek(st,456)  ※IronHSPのみ。3.7/3.8は lpoke st,456,下位 : lpoke st,460,上位
; MmSystemRangeStart : ULONGLONG (+464, 8byte)  qpoke st,464,値 / qpeek(st,464)  ※IronHSPのみ。3.7/3.8は lpoke st,464,下位 : lpoke st,468,上位
; MmUserProbeAddress : ULONGLONG (+472, 8byte)  qpoke st,472,値 / qpeek(st,472)  ※IronHSPのみ。3.7/3.8は lpoke st,472,下位 : lpoke st,476,上位
; KdPrintCircularBuffer : ULONGLONG (+480, 8byte)  qpoke st,480,値 / qpeek(st,480)  ※IronHSPのみ。3.7/3.8は lpoke st,480,下位 : lpoke st,484,上位
; KdPrintCircularBufferEnd : ULONGLONG (+488, 8byte)  qpoke st,488,値 / qpeek(st,488)  ※IronHSPのみ。3.7/3.8は lpoke st,488,下位 : lpoke st,492,上位
; KdPrintWritePointer : ULONGLONG (+496, 8byte)  qpoke st,496,値 / qpeek(st,496)  ※IronHSPのみ。3.7/3.8は lpoke st,496,下位 : lpoke st,500,上位
; KdPrintRolloverCount : ULONGLONG (+504, 8byte)  qpoke st,504,値 / qpeek(st,504)  ※IronHSPのみ。3.7/3.8は lpoke st,504,下位 : lpoke st,508,上位
; MmLoadedUserImageList : ULONGLONG (+512, 8byte)  qpoke st,512,値 / qpeek(st,512)  ※IronHSPのみ。3.7/3.8は lpoke st,512,下位 : lpoke st,516,上位
; NtBuildLab : ULONGLONG (+520, 8byte)  qpoke st,520,値 / qpeek(st,520)  ※IronHSPのみ。3.7/3.8は lpoke st,520,下位 : lpoke st,524,上位
; KiNormalSystemCall : ULONGLONG (+528, 8byte)  qpoke st,528,値 / qpeek(st,528)  ※IronHSPのみ。3.7/3.8は lpoke st,528,下位 : lpoke st,532,上位
; KiProcessorBlock : ULONGLONG (+536, 8byte)  qpoke st,536,値 / qpeek(st,536)  ※IronHSPのみ。3.7/3.8は lpoke st,536,下位 : lpoke st,540,上位
; MmUnloadedDrivers : ULONGLONG (+544, 8byte)  qpoke st,544,値 / qpeek(st,544)  ※IronHSPのみ。3.7/3.8は lpoke st,544,下位 : lpoke st,548,上位
; MmLastUnloadedDriver : ULONGLONG (+552, 8byte)  qpoke st,552,値 / qpeek(st,552)  ※IronHSPのみ。3.7/3.8は lpoke st,552,下位 : lpoke st,556,上位
; MmTriageActionTaken : ULONGLONG (+560, 8byte)  qpoke st,560,値 / qpeek(st,560)  ※IronHSPのみ。3.7/3.8は lpoke st,560,下位 : lpoke st,564,上位
; MmSpecialPoolTag : ULONGLONG (+568, 8byte)  qpoke st,568,値 / qpeek(st,568)  ※IronHSPのみ。3.7/3.8は lpoke st,568,下位 : lpoke st,572,上位
; KernelVerifier : ULONGLONG (+576, 8byte)  qpoke st,576,値 / qpeek(st,576)  ※IronHSPのみ。3.7/3.8は lpoke st,576,下位 : lpoke st,580,上位
; MmVerifierData : ULONGLONG (+584, 8byte)  qpoke st,584,値 / qpeek(st,584)  ※IronHSPのみ。3.7/3.8は lpoke st,584,下位 : lpoke st,588,上位
; MmAllocatedNonPagedPool : ULONGLONG (+592, 8byte)  qpoke st,592,値 / qpeek(st,592)  ※IronHSPのみ。3.7/3.8は lpoke st,592,下位 : lpoke st,596,上位
; MmPeakCommitment : ULONGLONG (+600, 8byte)  qpoke st,600,値 / qpeek(st,600)  ※IronHSPのみ。3.7/3.8は lpoke st,600,下位 : lpoke st,604,上位
; MmTotalCommitLimitMaximum : ULONGLONG (+608, 8byte)  qpoke st,608,値 / qpeek(st,608)  ※IronHSPのみ。3.7/3.8は lpoke st,608,下位 : lpoke st,612,上位
; CmNtCSDVersion : ULONGLONG (+616, 8byte)  qpoke st,616,値 / qpeek(st,616)  ※IronHSPのみ。3.7/3.8は lpoke st,616,下位 : lpoke st,620,上位
; MmPhysicalMemoryBlock : ULONGLONG (+624, 8byte)  qpoke st,624,値 / qpeek(st,624)  ※IronHSPのみ。3.7/3.8は lpoke st,624,下位 : lpoke st,628,上位
; MmSessionBase : ULONGLONG (+632, 8byte)  qpoke st,632,値 / qpeek(st,632)  ※IronHSPのみ。3.7/3.8は lpoke st,632,下位 : lpoke st,636,上位
; MmSessionSize : ULONGLONG (+640, 8byte)  qpoke st,640,値 / qpeek(st,640)  ※IronHSPのみ。3.7/3.8は lpoke st,640,下位 : lpoke st,644,上位
; MmSystemParentTablePage : ULONGLONG (+648, 8byte)  qpoke st,648,値 / qpeek(st,648)  ※IronHSPのみ。3.7/3.8は lpoke st,648,下位 : lpoke st,652,上位
; MmVirtualTranslationBase : ULONGLONG (+656, 8byte)  qpoke st,656,値 / qpeek(st,656)  ※IronHSPのみ。3.7/3.8は lpoke st,656,下位 : lpoke st,660,上位
; OffsetKThreadNextProcessor : WORD (+664, 2byte)  wpoke st,664,値  /  値 = wpeek(st,664)
; OffsetKThreadTeb : WORD (+666, 2byte)  wpoke st,666,値  /  値 = wpeek(st,666)
; OffsetKThreadKernelStack : WORD (+668, 2byte)  wpoke st,668,値  /  値 = wpeek(st,668)
; OffsetKThreadInitialStack : WORD (+670, 2byte)  wpoke st,670,値  /  値 = wpeek(st,670)
; OffsetKThreadApcProcess : WORD (+672, 2byte)  wpoke st,672,値  /  値 = wpeek(st,672)
; OffsetKThreadState : WORD (+674, 2byte)  wpoke st,674,値  /  値 = wpeek(st,674)
; OffsetKThreadBStore : WORD (+676, 2byte)  wpoke st,676,値  /  値 = wpeek(st,676)
; OffsetKThreadBStoreLimit : WORD (+678, 2byte)  wpoke st,678,値  /  値 = wpeek(st,678)
; SizeEProcess : WORD (+680, 2byte)  wpoke st,680,値  /  値 = wpeek(st,680)
; OffsetEprocessPeb : WORD (+682, 2byte)  wpoke st,682,値  /  値 = wpeek(st,682)
; OffsetEprocessParentCID : WORD (+684, 2byte)  wpoke st,684,値  /  値 = wpeek(st,684)
; OffsetEprocessDirectoryTableBase : WORD (+686, 2byte)  wpoke st,686,値  /  値 = wpeek(st,686)
; SizePrcb : WORD (+688, 2byte)  wpoke st,688,値  /  値 = wpeek(st,688)
; OffsetPrcbDpcRoutine : WORD (+690, 2byte)  wpoke st,690,値  /  値 = wpeek(st,690)
; OffsetPrcbCurrentThread : WORD (+692, 2byte)  wpoke st,692,値  /  値 = wpeek(st,692)
; OffsetPrcbMhz : WORD (+694, 2byte)  wpoke st,694,値  /  値 = wpeek(st,694)
; OffsetPrcbCpuType : WORD (+696, 2byte)  wpoke st,696,値  /  値 = wpeek(st,696)
; OffsetPrcbVendorString : WORD (+698, 2byte)  wpoke st,698,値  /  値 = wpeek(st,698)
; OffsetPrcbProcStateContext : WORD (+700, 2byte)  wpoke st,700,値  /  値 = wpeek(st,700)
; OffsetPrcbNumber : WORD (+702, 2byte)  wpoke st,702,値  /  値 = wpeek(st,702)
; SizeEThread : WORD (+704, 2byte)  wpoke st,704,値  /  値 = wpeek(st,704)
; L1tfHighPhysicalBitIndex : BYTE (+706, 1byte)  poke st,706,値  /  値 = peek(st,706)
; L1tfSwizzleBitIndex : BYTE (+707, 1byte)  poke st,707,値  /  値 = peek(st,707)
; Padding0 : DWORD (+708, 4byte)  st.177 = 値  /  値 = st.177   (lpoke/lpeek も可)
; KdPrintCircularBufferPtr : ULONGLONG (+712, 8byte)  qpoke st,712,値 / qpeek(st,712)  ※IronHSPのみ。3.7/3.8は lpoke st,712,下位 : lpoke st,716,上位
; KdPrintBufferSize : ULONGLONG (+720, 8byte)  qpoke st,720,値 / qpeek(st,720)  ※IronHSPのみ。3.7/3.8は lpoke st,720,下位 : lpoke st,724,上位
; KeLoaderBlock : ULONGLONG (+728, 8byte)  qpoke st,728,値 / qpeek(st,728)  ※IronHSPのみ。3.7/3.8は lpoke st,728,下位 : lpoke st,732,上位
; SizePcr : WORD (+736, 2byte)  wpoke st,736,値  /  値 = wpeek(st,736)
; OffsetPcrSelfPcr : WORD (+738, 2byte)  wpoke st,738,値  /  値 = wpeek(st,738)
; OffsetPcrCurrentPrcb : WORD (+740, 2byte)  wpoke st,740,値  /  値 = wpeek(st,740)
; OffsetPcrContainedPrcb : WORD (+742, 2byte)  wpoke st,742,値  /  値 = wpeek(st,742)
; OffsetPcrInitialBStore : WORD (+744, 2byte)  wpoke st,744,値  /  値 = wpeek(st,744)
; OffsetPcrBStoreLimit : WORD (+746, 2byte)  wpoke st,746,値  /  値 = wpeek(st,746)
; OffsetPcrInitialStack : WORD (+748, 2byte)  wpoke st,748,値  /  値 = wpeek(st,748)
; OffsetPcrStackLimit : WORD (+750, 2byte)  wpoke st,750,値  /  値 = wpeek(st,750)
; OffsetPrcbPcrPage : WORD (+752, 2byte)  wpoke st,752,値  /  値 = wpeek(st,752)
; OffsetPrcbProcStateSpecialReg : WORD (+754, 2byte)  wpoke st,754,値  /  値 = wpeek(st,754)
; GdtR0Code : WORD (+756, 2byte)  wpoke st,756,値  /  値 = wpeek(st,756)
; GdtR0Data : WORD (+758, 2byte)  wpoke st,758,値  /  値 = wpeek(st,758)
; GdtR0Pcr : WORD (+760, 2byte)  wpoke st,760,値  /  値 = wpeek(st,760)
; GdtR3Code : WORD (+762, 2byte)  wpoke st,762,値  /  値 = wpeek(st,762)
; GdtR3Data : WORD (+764, 2byte)  wpoke st,764,値  /  値 = wpeek(st,764)
; GdtR3Teb : WORD (+766, 2byte)  wpoke st,766,値  /  値 = wpeek(st,766)
; GdtLdt : WORD (+768, 2byte)  wpoke st,768,値  /  値 = wpeek(st,768)
; GdtTss : WORD (+770, 2byte)  wpoke st,770,値  /  値 = wpeek(st,770)
; Gdt64R3CmCode : WORD (+772, 2byte)  wpoke st,772,値  /  値 = wpeek(st,772)
; Gdt64R3CmTeb : WORD (+774, 2byte)  wpoke st,774,値  /  値 = wpeek(st,774)
; IopNumTriageDumpDataBlocks : ULONGLONG (+776, 8byte)  qpoke st,776,値 / qpeek(st,776)  ※IronHSPのみ。3.7/3.8は lpoke st,776,下位 : lpoke st,780,上位
; IopTriageDumpDataBlocks : ULONGLONG (+784, 8byte)  qpoke st,784,値 / qpeek(st,784)  ※IronHSPのみ。3.7/3.8は lpoke st,784,下位 : lpoke st,788,上位
; VfCrashDataBlock : ULONGLONG (+792, 8byte)  qpoke st,792,値 / qpeek(st,792)  ※IronHSPのみ。3.7/3.8は lpoke st,792,下位 : lpoke st,796,上位
; MmBadPagesDetected : ULONGLONG (+800, 8byte)  qpoke st,800,値 / qpeek(st,800)  ※IronHSPのみ。3.7/3.8は lpoke st,800,下位 : lpoke st,804,上位
; MmZeroedPageSingleBitErrorsDetected : ULONGLONG (+808, 8byte)  qpoke st,808,値 / qpeek(st,808)  ※IronHSPのみ。3.7/3.8は lpoke st,808,下位 : lpoke st,812,上位
; EtwpDebuggerData : ULONGLONG (+816, 8byte)  qpoke st,816,値 / qpeek(st,816)  ※IronHSPのみ。3.7/3.8は lpoke st,816,下位 : lpoke st,820,上位
; OffsetPrcbContext : WORD (+824, 2byte)  wpoke st,824,値  /  値 = wpeek(st,824)
; OffsetPrcbMaxBreakpoints : WORD (+826, 2byte)  wpoke st,826,値  /  値 = wpeek(st,826)
; OffsetPrcbMaxWatchpoints : WORD (+828, 2byte)  wpoke st,828,値  /  値 = wpeek(st,828)
; OffsetKThreadStackLimit : DWORD (+832, 4byte)  st.208 = 値  /  値 = st.208   (lpoke/lpeek も可)
; OffsetKThreadStackBase : DWORD (+836, 4byte)  st.209 = 値  /  値 = st.209   (lpoke/lpeek も可)
; OffsetKThreadQueueListEntry : DWORD (+840, 4byte)  st.210 = 値  /  値 = st.210   (lpoke/lpeek も可)
; OffsetEThreadIrpList : DWORD (+844, 4byte)  st.211 = 値  /  値 = st.211   (lpoke/lpeek も可)
; OffsetPrcbIdleThread : WORD (+848, 2byte)  wpoke st,848,値  /  値 = wpeek(st,848)
; OffsetPrcbNormalDpcState : WORD (+850, 2byte)  wpoke st,850,値  /  値 = wpeek(st,850)
; OffsetPrcbDpcStack : WORD (+852, 2byte)  wpoke st,852,値  /  値 = wpeek(st,852)
; OffsetPrcbIsrStack : WORD (+854, 2byte)  wpoke st,854,値  /  値 = wpeek(st,854)
; SizeKDPC_STACK_FRAME : WORD (+856, 2byte)  wpoke st,856,値  /  値 = wpeek(st,856)
; OffsetKPriQueueThreadListHead : WORD (+858, 2byte)  wpoke st,858,値  /  値 = wpeek(st,858)
; OffsetKThreadWaitReason : WORD (+860, 2byte)  wpoke st,860,値  /  値 = wpeek(st,860)
; Padding1 : WORD (+862, 2byte)  wpoke st,862,値  /  値 = wpeek(st,862)
; PteBase : ULONGLONG (+864, 8byte)  qpoke st,864,値 / qpeek(st,864)  ※IronHSPのみ。3.7/3.8は lpoke st,864,下位 : lpoke st,868,上位
; RetpolineStubFunctionTable : ULONGLONG (+872, 8byte)  qpoke st,872,値 / qpeek(st,872)  ※IronHSPのみ。3.7/3.8は lpoke st,872,下位 : lpoke st,876,上位
; RetpolineStubFunctionTableSize : DWORD (+880, 4byte)  st.220 = 値  /  値 = st.220   (lpoke/lpeek も可)
; RetpolineStubOffset : DWORD (+884, 4byte)  st.221 = 値  /  値 = st.221   (lpoke/lpeek も可)
; RetpolineStubSize : DWORD (+888, 4byte)  st.222 = 値  /  値 = st.222   (lpoke/lpeek も可)
; OffsetEProcessMmHotPatchContext : WORD (+892, 2byte)  wpoke st,892,値  /  値 = wpeek(st,892)
; OffsetKThreadShadowStackLimit : DWORD (+896, 4byte)  st.224 = 値  /  値 = st.224   (lpoke/lpeek も可)
; OffsetKThreadShadowStackBase : DWORD (+900, 4byte)  st.225 = 値  /  値 = st.225   (lpoke/lpeek も可)
; ShadowStackEnabled : ULONGLONG (+904, 8byte)  qpoke st,904,値 / qpeek(st,904)  ※IronHSPのみ。3.7/3.8は lpoke st,904,下位 : lpoke st,908,上位
; PointerAuthMask : ULONGLONG (+912, 8byte)  qpoke st,912,値 / qpeek(st,912)  ※IronHSPのみ。3.7/3.8は lpoke st,912,下位 : lpoke st,916,上位
; OffsetPrcbExceptionStack : WORD (+920, 2byte)  wpoke st,920,値  /  値 = wpeek(st,920)
; ※4byte境界の整数は添字 st.N(N=オフセット/4)で読み書き可。それ以外は peek/poke 系を使用。
; IronHSP は NSTRUCT(構造体)をサポート。32bit/64bit どちらでも同じコードで動作します。
; ※GUID・入れ子構造体はデフォルト型でないため、依存する #defstruct を先に定義(下記に同梱)。
#defstruct global LIST_ENTRY64
    #field int64 Flink
    #field int64 Blink
#endstruct

#defstruct global DBGKD_DEBUG_DATA_HEADER64
    #field LIST_ENTRY64 List
    #field int OwnerTag
    #field int Size
#endstruct

#defstruct global KDDEBUGGER_DATA64
    #field DBGKD_DEBUG_DATA_HEADER64 Header
    #field int64 KernBase
    #field int64 BreakpointWithStatus
    #field int64 SavedContext
    #field short ThCallbackStack
    #field short NextCallback
    #field short FramePointer
    #field short _bitfield
    #field int64 KiCallUserMode
    #field int64 KeUserCallbackDispatcher
    #field int64 PsLoadedModuleList
    #field int64 PsActiveProcessHead
    #field int64 PspCidTable
    #field int64 ExpSystemResourcesList
    #field int64 ExpPagedPoolDescriptor
    #field int64 ExpNumberOfPagedPools
    #field int64 KeTimeIncrement
    #field int64 KeBugCheckCallbackListHead
    #field int64 KiBugcheckData
    #field int64 IopErrorLogListHead
    #field int64 ObpRootDirectoryObject
    #field int64 ObpTypeObjectType
    #field int64 MmSystemCacheStart
    #field int64 MmSystemCacheEnd
    #field int64 MmSystemCacheWs
    #field int64 MmPfnDatabase
    #field int64 MmSystemPtesStart
    #field int64 MmSystemPtesEnd
    #field int64 MmSubsectionBase
    #field int64 MmNumberOfPagingFiles
    #field int64 MmLowestPhysicalPage
    #field int64 MmHighestPhysicalPage
    #field int64 MmNumberOfPhysicalPages
    #field int64 MmMaximumNonPagedPoolInBytes
    #field int64 MmNonPagedSystemStart
    #field int64 MmNonPagedPoolStart
    #field int64 MmNonPagedPoolEnd
    #field int64 MmPagedPoolStart
    #field int64 MmPagedPoolEnd
    #field int64 MmPagedPoolInformation
    #field int64 MmPageSize
    #field int64 MmSizeOfPagedPoolInBytes
    #field int64 MmTotalCommitLimit
    #field int64 MmTotalCommittedPages
    #field int64 MmSharedCommit
    #field int64 MmDriverCommit
    #field int64 MmProcessCommit
    #field int64 MmPagedPoolCommit
    #field int64 MmExtendedCommit
    #field int64 MmZeroedPageListHead
    #field int64 MmFreePageListHead
    #field int64 MmStandbyPageListHead
    #field int64 MmModifiedPageListHead
    #field int64 MmModifiedNoWritePageListHead
    #field int64 MmAvailablePages
    #field int64 MmResidentAvailablePages
    #field int64 PoolTrackTable
    #field int64 NonPagedPoolDescriptor
    #field int64 MmHighestUserAddress
    #field int64 MmSystemRangeStart
    #field int64 MmUserProbeAddress
    #field int64 KdPrintCircularBuffer
    #field int64 KdPrintCircularBufferEnd
    #field int64 KdPrintWritePointer
    #field int64 KdPrintRolloverCount
    #field int64 MmLoadedUserImageList
    #field int64 NtBuildLab
    #field int64 KiNormalSystemCall
    #field int64 KiProcessorBlock
    #field int64 MmUnloadedDrivers
    #field int64 MmLastUnloadedDriver
    #field int64 MmTriageActionTaken
    #field int64 MmSpecialPoolTag
    #field int64 KernelVerifier
    #field int64 MmVerifierData
    #field int64 MmAllocatedNonPagedPool
    #field int64 MmPeakCommitment
    #field int64 MmTotalCommitLimitMaximum
    #field int64 CmNtCSDVersion
    #field int64 MmPhysicalMemoryBlock
    #field int64 MmSessionBase
    #field int64 MmSessionSize
    #field int64 MmSystemParentTablePage
    #field int64 MmVirtualTranslationBase
    #field short OffsetKThreadNextProcessor
    #field short OffsetKThreadTeb
    #field short OffsetKThreadKernelStack
    #field short OffsetKThreadInitialStack
    #field short OffsetKThreadApcProcess
    #field short OffsetKThreadState
    #field short OffsetKThreadBStore
    #field short OffsetKThreadBStoreLimit
    #field short SizeEProcess
    #field short OffsetEprocessPeb
    #field short OffsetEprocessParentCID
    #field short OffsetEprocessDirectoryTableBase
    #field short SizePrcb
    #field short OffsetPrcbDpcRoutine
    #field short OffsetPrcbCurrentThread
    #field short OffsetPrcbMhz
    #field short OffsetPrcbCpuType
    #field short OffsetPrcbVendorString
    #field short OffsetPrcbProcStateContext
    #field short OffsetPrcbNumber
    #field short SizeEThread
    #field byte L1tfHighPhysicalBitIndex
    #field byte L1tfSwizzleBitIndex
    #field int Padding0
    #field int64 KdPrintCircularBufferPtr
    #field int64 KdPrintBufferSize
    #field int64 KeLoaderBlock
    #field short SizePcr
    #field short OffsetPcrSelfPcr
    #field short OffsetPcrCurrentPrcb
    #field short OffsetPcrContainedPrcb
    #field short OffsetPcrInitialBStore
    #field short OffsetPcrBStoreLimit
    #field short OffsetPcrInitialStack
    #field short OffsetPcrStackLimit
    #field short OffsetPrcbPcrPage
    #field short OffsetPrcbProcStateSpecialReg
    #field short GdtR0Code
    #field short GdtR0Data
    #field short GdtR0Pcr
    #field short GdtR3Code
    #field short GdtR3Data
    #field short GdtR3Teb
    #field short GdtLdt
    #field short GdtTss
    #field short Gdt64R3CmCode
    #field short Gdt64R3CmTeb
    #field int64 IopNumTriageDumpDataBlocks
    #field int64 IopTriageDumpDataBlocks
    #field int64 VfCrashDataBlock
    #field int64 MmBadPagesDetected
    #field int64 MmZeroedPageSingleBitErrorsDetected
    #field int64 EtwpDebuggerData
    #field short OffsetPrcbContext
    #field short OffsetPrcbMaxBreakpoints
    #field short OffsetPrcbMaxWatchpoints
    #field int OffsetKThreadStackLimit
    #field int OffsetKThreadStackBase
    #field int OffsetKThreadQueueListEntry
    #field int OffsetEThreadIrpList
    #field short OffsetPrcbIdleThread
    #field short OffsetPrcbNormalDpcState
    #field short OffsetPrcbDpcStack
    #field short OffsetPrcbIsrStack
    #field short SizeKDPC_STACK_FRAME
    #field short OffsetKPriQueueThreadListHead
    #field short OffsetKThreadWaitReason
    #field short Padding1
    #field int64 PteBase
    #field int64 RetpolineStubFunctionTable
    #field int RetpolineStubFunctionTableSize
    #field int RetpolineStubOffset
    #field int RetpolineStubSize
    #field short OffsetEProcessMmHotPatchContext
    #field int OffsetKThreadShadowStackLimit
    #field int OffsetKThreadShadowStackBase
    #field int64 ShadowStackEnabled
    #field int64 PointerAuthMask
    #field short OffsetPrcbExceptionStack
#endstruct

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