Add SystemBasicProcessInformation (252) and SystemShadowStackInformation (221) (#22)

This commit is contained in:
0xczr
2026-02-10 10:46:03 +02:00
committed by GitHub
parent 0d306a5efc
commit 4b6e27c58a
4 changed files with 28 additions and 1 deletions
+16 -1
View File
@@ -940,7 +940,8 @@ ENUM!{enum SYSTEM_INFORMATION_CLASS {
SystemCodeIntegrityUnlockModeInformation = 205,
SystemLeapSecondInformation = 206,
SystemFlags2Information = 207,
MaxSystemInfoClass = 208,
SystemShadowStackInformation = 221,
SystemBasicProcessInformation = 252,
}}
STRUCT!{struct SYSTEM_BASIC_INFORMATION {
Reserved: ULONG,
@@ -1118,6 +1119,16 @@ STRUCT!{struct SYSTEM_PROCESS_INFORMATION {
Threads: [SYSTEM_THREAD_INFORMATION; 1],
}}
pub type PSYSTEM_PROCESS_INFORMATION = *mut SYSTEM_PROCESS_INFORMATION;
STRUCT!{struct SYSTEM_BASICPROCESS_INFORMATION {
NextEntryOffset: ULONG,
UniqueProcessId: HANDLE,
InheritedFromUniqueProcessId: HANDLE,
SequenceNumber: ULONG64,
ImageName: UNICODE_STRING,
}}
pub type PSYSTEM_BASICPROCESS_INFORMATION = *mut SYSTEM_BASICPROCESS_INFORMATION;
STRUCT!{struct SYSTEM_CALL_COUNT_INFORMATION {
Length: ULONG,
NumberOfTables: ULONG,
@@ -2462,6 +2473,10 @@ STRUCT!{struct SYSTEM_WORKLOAD_ALLOWED_CPU_SET_INFORMATION {
}}
pub type PSYSTEM_WORKLOAD_ALLOWED_CPU_SET_INFORMATION =
*mut SYSTEM_WORKLOAD_ALLOWED_CPU_SET_INFORMATION;
STRUCT!{struct SYSTEM_SHADOW_STACK_INFORMATION {
Flags: ULONG,
}}
pub type PSYSTEM_SHADOW_STACK_INFORMATION = *mut SYSTEM_SHADOW_STACK_INFORMATION;
EXTERN!{extern "system" {
fn NtQuerySystemInformation(
SystemInformationClass: SYSTEM_INFORMATION_CLASS,
+4
View File
@@ -87,6 +87,8 @@ fn ntexapi() {
assert_eq!(align_of::<SYSTEM_EXTENDED_THREAD_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_PROCESS_INFORMATION>(), 336);
assert_eq!(align_of::<SYSTEM_PROCESS_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_BASICPROCESS_INFORMATION>(), 48);
assert_eq!(align_of::<SYSTEM_BASICPROCESS_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_CALL_COUNT_INFORMATION>(), 8);
assert_eq!(align_of::<SYSTEM_CALL_COUNT_INFORMATION>(), 4);
assert_eq!(size_of::<SYSTEM_DEVICE_INFORMATION>(), 24);
@@ -97,6 +99,8 @@ fn ntexapi() {
assert_eq!(align_of::<SYSTEM_FLAGS_INFORMATION>(), 4);
assert_eq!(size_of::<SYSTEM_CALL_TIME_INFORMATION>(), 16);
assert_eq!(align_of::<SYSTEM_CALL_TIME_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_SHADOW_STACK_INFORMATION>(), 4);
assert_eq!(align_of::<SYSTEM_SHADOW_STACK_INFORMATION>(), 4);
assert_eq!(size_of::<RTL_PROCESS_LOCK_INFORMATION>(), 48);
assert_eq!(align_of::<RTL_PROCESS_LOCK_INFORMATION>(), 8);
assert_eq!(size_of::<RTL_PROCESS_LOCKS>(), 56);
+4
View File
@@ -87,6 +87,8 @@ fn ntexapi() {
assert_eq!(align_of::<SYSTEM_EXTENDED_THREAD_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_PROCESS_INFORMATION>(), 248);
assert_eq!(align_of::<SYSTEM_PROCESS_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_BASICPROCESS_INFORMATION>(), 32);
assert_eq!(align_of::<SYSTEM_BASICPROCESS_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_CALL_COUNT_INFORMATION>(), 8);
assert_eq!(align_of::<SYSTEM_CALL_COUNT_INFORMATION>(), 4);
assert_eq!(size_of::<SYSTEM_DEVICE_INFORMATION>(), 24);
@@ -97,6 +99,8 @@ fn ntexapi() {
assert_eq!(align_of::<SYSTEM_FLAGS_INFORMATION>(), 4);
assert_eq!(size_of::<SYSTEM_CALL_TIME_INFORMATION>(), 16);
assert_eq!(align_of::<SYSTEM_CALL_TIME_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_SHADOW_STACK_INFORMATION>(), 4);
assert_eq!(align_of::<SYSTEM_SHADOW_STACK_INFORMATION>(), 4);
assert_eq!(size_of::<RTL_PROCESS_LOCK_INFORMATION>(), 36);
assert_eq!(align_of::<RTL_PROCESS_LOCK_INFORMATION>(), 4);
assert_eq!(size_of::<RTL_PROCESS_LOCKS>(), 40);
+4
View File
@@ -87,6 +87,8 @@ fn ntexapi() {
assert_eq!(align_of::<SYSTEM_EXTENDED_THREAD_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_PROCESS_INFORMATION>(), 336);
assert_eq!(align_of::<SYSTEM_PROCESS_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_BASICPROCESS_INFORMATION>(), 48);
assert_eq!(align_of::<SYSTEM_BASICPROCESS_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_CALL_COUNT_INFORMATION>(), 8);
assert_eq!(align_of::<SYSTEM_CALL_COUNT_INFORMATION>(), 4);
assert_eq!(size_of::<SYSTEM_DEVICE_INFORMATION>(), 24);
@@ -97,6 +99,8 @@ fn ntexapi() {
assert_eq!(align_of::<SYSTEM_FLAGS_INFORMATION>(), 4);
assert_eq!(size_of::<SYSTEM_CALL_TIME_INFORMATION>(), 16);
assert_eq!(align_of::<SYSTEM_CALL_TIME_INFORMATION>(), 8);
assert_eq!(size_of::<SYSTEM_SHADOW_STACK_INFORMATION>(), 4);
assert_eq!(align_of::<SYSTEM_SHADOW_STACK_INFORMATION>(), 4);
assert_eq!(size_of::<RTL_PROCESS_LOCK_INFORMATION>(), 48);
assert_eq!(align_of::<RTL_PROCESS_LOCK_INFORMATION>(), 8);
assert_eq!(size_of::<RTL_PROCESS_LOCKS>(), 56);