From e5cf62cbfbf4ceb67e741888492729e8b9b61ade Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Tue, 7 Jul 2026 14:59:26 +0200 Subject: [PATCH] Add work queue structures --- sdk/xtdk/extypes.h | 22 ++++++++++++++++++++++ sdk/xtdk/xtstruct.h | 2 ++ 2 files changed, 24 insertions(+) diff --git a/sdk/xtdk/extypes.h b/sdk/xtdk/extypes.h index 447c543..351ab16 100644 --- a/sdk/xtdk/extypes.h +++ b/sdk/xtdk/extypes.h @@ -28,6 +28,20 @@ typedef XTSTATUS (XTAPI *PALLOCATE_FUNCTION)(IN MMPOOL_TYPE PoolType, IN SIZE_T typedef XTSTATUS (XTAPI *PALLOCATE_FUNCTION_EX)(IN MMPOOL_TYPE PoolType, IN SIZE_T Bytes, OUT PVOID *Memory, IN ULONG Tag, IN PLOOKASIDE_LIST_EX Lookaside); typedef XTSTATUS (XTAPI *PFREE_FUNCTION)(IN PVOID Buffer); typedef XTSTATUS (XTAPI *PFREE_FUNCTION_EX)(IN PVOID Buffer, IN OUT PLOOKASIDE_LIST_EX Lookaside); +typedef VOID (XTAPI *PWORKER_THREAD_ROUTINE)(IN PVOID Parameter); + +/* Work queue types */ +typedef enum _WORK_QUEUE_TYPE +{ + CriticalWorkQueue, + DelayedWorkQueue, + HyperCriticalWorkQueue, + NormalWorkQueue, + BackgroundWorkQueue, + RealTimeWorkQueue, + SuperCriticalWorkQueue, + MaximumWorkQueue, +} WORK_QUEUE_TYPE, *PWORK_QUEUE_TYPE; /* Owner entry structure definition */ typedef struct _OWNER_ENTRY @@ -150,5 +164,13 @@ typedef struct _PAGED_LOOKASIDE_LIST GENERAL_LOOKASIDE Global; } PAGED_LOOKASIDE_LIST, *PPAGED_LOOKASIDE_LIST; +/* Work queue item structure definition */ +typedef struct _WORK_QUEUE_ITEM +{ + LIST_ENTRY List; + PWORKER_THREAD_ROUTINE WorkerRoutine; + VOLATILE PVOID Parameter; +} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM; + #endif /* __XTOS_ASSEMBLER__ */ #endif /* __XTDK_EXTYPES_H */ diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index 6c5eefa..774c3f5 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -86,6 +86,7 @@ typedef enum _SYSTEM_FIRMWARE_TYPE SYSTEM_FIRMWARE_TYPE, *PSYSTEM_FIRMWARE_TYPE; typedef enum _SYSTEM_POWER_STATE SYSTEM_POWER_STATE, *PSYSTEM_POWER_STATE; typedef enum _SYSTEM_RESOURCE_TYPE SYSTEM_RESOURCE_TYPE, *PSYSTEM_RESOURCE_TYPE; typedef enum _WAIT_TYPE WAIT_TYPE, *PWAIT_TYPE; +typedef enum _WORK_QUEUE_TYPE WORK_QUEUE_TYPE, *PWORK_QUEUE_TYPE; /* Structures forward references */ typedef struct _ACCESS_STATE ACCESS_STATE, *PACCESS_STATE; @@ -458,6 +459,7 @@ typedef struct _UNICODE_STRING UNICODE_STRING, *PUNICODE_STRING; typedef struct _UNICODE_STRING32 UNICODE_STRING32, *PUNICODE_STRING32; typedef struct _UNICODE_STRING64 UNICODE_STRING64, *PUNICODE_STRING64; typedef struct _VPB VPB, *PVPB; +typedef struct _WORK_QUEUE_ITEM WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM; typedef struct _XTBL_BOOT_PARAMETERS XTBL_BOOT_PARAMETERS, *PXTBL_BOOT_PARAMETERS; typedef struct _XTBL_BOOT_PROTOCOL XTBL_BOOT_PROTOCOL, *PXTBL_BOOT_PROTOCOL; typedef struct _XTBL_BOOTMENU_ITEM XTBL_BOOTMENU_ITEM, *PXTBL_BOOTMENU_ITEM;