Add thread information block
All checks were successful
ci/woodpecker/push/build Pipeline was successful

This commit is contained in:
Rafal Kupiec 2023-03-01 00:14:06 +01:00
parent 3d42fcc0f5
commit 870a6680b0
Signed by: belliash
GPG Key ID: 4E829243E0CFE6B4
4 changed files with 22 additions and 5 deletions

View File

@ -464,12 +464,16 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
/* Processor Block structure definition */ /* Processor Block structure definition */
typedef struct _KPROCESSOR_BLOCK typedef struct _KPROCESSOR_BLOCK
{ {
struct union
{ {
PKGDTENTRY GdtBase; THREAD_INFORMATION_BLOCK ThreadInformationBlock;
PKTSS TssBase; struct
PKPROCESSOR_BLOCK Self; {
PKPROCESSOR_CONTROL_BLOCK CurrentPrcb; PKGDTENTRY GdtBase;
PKTSS TssBase;
PKPROCESSOR_BLOCK Self;
PKPROCESSOR_CONTROL_BLOCK CurrentPrcb;
};
}; };
PKIDTENTRY IdtBase; PKIDTENTRY IdtBase;
KIRQL Irql; KIRQL Irql;

View File

@ -420,6 +420,7 @@ typedef struct _KPROCESSOR_CONTROL_BLOCK
/* Processor Block structure definition */ /* Processor Block structure definition */
typedef struct _KPROCESSOR_BLOCK typedef struct _KPROCESSOR_BLOCK
{ {
THREAD_INFORMATION_BLOCK ThreadInformationBlock;
PKPROCESSOR_BLOCK Self; PKPROCESSOR_BLOCK Self;
PKPROCESSOR_CONTROL_BLOCK CurrentPrcb; PKPROCESSOR_CONTROL_BLOCK CurrentPrcb;
KIRQL Irql; KIRQL Irql;

View File

@ -295,6 +295,17 @@ typedef struct _KWAIT_BLOCK
LONG SpareLong; LONG SpareLong;
} KWAIT_BLOCK, *PKWAIT_BLOCK; } 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 */ /* Process control block structure definition */
typedef struct _KPROCESS typedef struct _KPROCESS
{ {

View File

@ -247,6 +247,7 @@ typedef struct _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
typedef struct _STRING STRING, *PSTRING; typedef struct _STRING STRING, *PSTRING;
typedef struct _STRING32 STRING32, *PSTRING32; typedef struct _STRING32 STRING32, *PSTRING32;
typedef struct _STRING64 STRING64, *PSTRING64; 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 _UEFI_FIRMWARE_INFORMATION UEFI_FIRMWARE_INFORMATION, *PUEFI_FIRMWARE_INFORMATION;
typedef struct _UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING; typedef struct _UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING;
typedef struct _UNICODE_STRING32 UNICODE_STRING32, *PUNICODE_STRING32; typedef struct _UNICODE_STRING32 UNICODE_STRING32, *PUNICODE_STRING32;