From 870a6680b03e5892566a89af74955ffe5c1a88df Mon Sep 17 00:00:00 2001 From: belliash Date: Wed, 1 Mar 2023 00:14:06 +0100 Subject: [PATCH] Add thread information block --- sdk/xtdk/amd64/ketypes.h | 14 +++++++++----- sdk/xtdk/i686/ketypes.h | 1 + sdk/xtdk/ketypes.h | 11 +++++++++++ sdk/xtdk/xtstruct.h | 1 + 4 files changed, 22 insertions(+), 5 deletions(-) diff --git a/sdk/xtdk/amd64/ketypes.h b/sdk/xtdk/amd64/ketypes.h index 35f5e70..7c9c33e 100644 --- a/sdk/xtdk/amd64/ketypes.h +++ b/sdk/xtdk/amd64/ketypes.h @@ -464,12 +464,16 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK /* Processor Block structure definition */ typedef struct _KPROCESSOR_BLOCK { - struct + union { - PKGDTENTRY GdtBase; - PKTSS TssBase; - PKPROCESSOR_BLOCK Self; - PKPROCESSOR_CONTROL_BLOCK CurrentPrcb; + THREAD_INFORMATION_BLOCK ThreadInformationBlock; + struct + { + PKGDTENTRY GdtBase; + PKTSS TssBase; + PKPROCESSOR_BLOCK Self; + PKPROCESSOR_CONTROL_BLOCK CurrentPrcb; + }; }; PKIDTENTRY IdtBase; KIRQL Irql; diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index 7b5bc92..3c93ed3 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -420,6 +420,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK /* Processor Block structure definition */ typedef struct _KPROCESSOR_BLOCK { + THREAD_INFORMATION_BLOCK ThreadInformationBlock; PKPROCESSOR_BLOCK Self; PKPROCESSOR_CONTROL_BLOCK CurrentPrcb; KIRQL Irql; diff --git a/sdk/xtdk/ketypes.h b/sdk/xtdk/ketypes.h index edd94d9..688ffb4 100644 --- a/sdk/xtdk/ketypes.h +++ b/sdk/xtdk/ketypes.h @@ -295,6 +295,17 @@ typedef struct _KWAIT_BLOCK LONG SpareLong; } KWAIT_BLOCK, *PKWAIT_BLOCK; +/* XT Thread Information Block (TIB) definition */ +typedef struct _THREAD_INFORMATION_BLOCK +{ + PEXCEPTION_REGISTRATION_RECORD ExceptionList; + PVOID StackBase; + PVOID StackLimit; + PVOID SubSystemTib; + PVOID ArbitraryUserPointer; + PTHREAD_INFORMATION_BLOCK Self; +} THREAD_INFORMATION_BLOCK, *PTHREAD_INFORMATION_BLOCK; + /* Process control block structure definition */ typedef struct _KPROCESS { diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index 4e929b7..127d912 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -247,6 +247,7 @@ typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY; typedef struct _STRING STRING, *PSTRING; typedef struct _STRING32 STRING32, *PSTRING32; typedef struct _STRING64 STRING64, *PSTRING64; +typedef struct _THREAD_INFORMATION_BLOCK THREAD_INFORMATION_BLOCK, *PTHREAD_INFORMATION_BLOCK; typedef struct _UEFI_FIRMWARE_INFORMATION UEFI_FIRMWARE_INFORMATION, *PUEFI_FIRMWARE_INFORMATION; typedef struct _UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING; typedef struct _UNICODE_STRING32 UNICODE_STRING32, *PUNICODE_STRING32;