From 2389bcbed159323ed321e0a83e6e5591a749a3e3 Mon Sep 17 00:00:00 2001 From: Aiken Harris Date: Fri, 3 Jul 2026 15:58:44 +0200 Subject: [PATCH] Introduce device queue structures --- sdk/xtdk/amd64/ketypes.h | 18 ++++++++++++++++++ sdk/xtdk/amd64/xtstruct.h | 1 + sdk/xtdk/i686/ketypes.h | 10 ++++++++++ sdk/xtdk/i686/xtstruct.h | 1 + sdk/xtdk/ketypes.h | 8 ++++++++ sdk/xtdk/xtstruct.h | 1 + 6 files changed, 39 insertions(+) diff --git a/sdk/xtdk/amd64/ketypes.h b/sdk/xtdk/amd64/ketypes.h index 104dfd9..5e8fd34 100644 --- a/sdk/xtdk/amd64/ketypes.h +++ b/sdk/xtdk/amd64/ketypes.h @@ -311,6 +311,24 @@ typedef struct _KDESCRIPTOR PVOID Base; } KDESCRIPTOR, *PKDESCRIPTOR; +/* Device Queue structure definition */ +typedef struct _KDEVICE_QUEUE +{ + CSHORT Type; + CSHORT Size; + LIST_ENTRY DeviceListHead; + KSPIN_LOCK Lock; + union + { + BOOLEAN Busy; + struct + { + LONGLONG Reserved:8; + LONGLONG Hint:56; + }; + }; +} KDEVICE_QUEUE, *PKDEVICE_QUEUE; + /* Global Descriptor Table (GDT) entry union definition */ typedef struct _KGDTENTRY { diff --git a/sdk/xtdk/amd64/xtstruct.h b/sdk/xtdk/amd64/xtstruct.h index a393a95..de212bc 100644 --- a/sdk/xtdk/amd64/xtstruct.h +++ b/sdk/xtdk/amd64/xtstruct.h @@ -50,6 +50,7 @@ typedef struct _HARDWARE_PTE HARDWARE_PTE, *PHARDWARE_PTE; typedef struct _HPET_REGISTERS HPET_REGISTERS, *PHPET_REGISTERS; typedef struct _IOAPIC_DATA IOAPIC_DATA, *PIOAPIC_DATA; typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR; +typedef struct _KDEVICE_QUEUE KDEVICE_QUEUE, *PKDEVICE_QUEUE; typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; typedef struct _KGDTENTRY KGDTENTRY, *PKGDTENTRY; typedef struct _KIDTENTRY KIDTENTRY, *PKIDTENTRY; diff --git a/sdk/xtdk/i686/ketypes.h b/sdk/xtdk/i686/ketypes.h index 6bce74f..3e5c174 100644 --- a/sdk/xtdk/i686/ketypes.h +++ b/sdk/xtdk/i686/ketypes.h @@ -319,6 +319,16 @@ typedef struct _KDESCRIPTOR PVOID Base; } KDESCRIPTOR, *PKDESCRIPTOR; +/* Device Queue structure definition */ +typedef struct _KDEVICE_QUEUE +{ + CSHORT Type; + CSHORT Size; + LIST_ENTRY DeviceListHead; + KSPIN_LOCK Lock; + BOOLEAN Busy; +} KDEVICE_QUEUE, *PKDEVICE_QUEUE; + /* Global Descriptor Table (GDT) entry structure definition */ typedef struct _KGDTENTRY { diff --git a/sdk/xtdk/i686/xtstruct.h b/sdk/xtdk/i686/xtstruct.h index 8fdadb8..4d26ce4 100644 --- a/sdk/xtdk/i686/xtstruct.h +++ b/sdk/xtdk/i686/xtstruct.h @@ -53,6 +53,7 @@ typedef struct _HARDWARE_MODERN_PTE HARDWARE_MODERN_PTE, *PHARDWARE_MODERN_PTE; typedef struct _HPET_REGISTERS HPET_REGISTERS, *PHPET_REGISTERS; typedef struct _IOAPIC_DATA IOAPIC_DATA, *PIOAPIC_DATA; typedef struct _KDESCRIPTOR KDESCRIPTOR, *PKDESCRIPTOR; +typedef struct _KDEVICE_QUEUE KDEVICE_QUEUE, *PKDEVICE_QUEUE; typedef struct _KEXCEPTION_FRAME KEXCEPTION_FRAME, *PKEXCEPTION_FRAME; typedef struct _KGDTENTRY KGDTENTRY, *PKGDTENTRY; typedef struct _KIDTENTRY KIDTENTRY, *PKIDTENTRY; diff --git a/sdk/xtdk/ketypes.h b/sdk/xtdk/ketypes.h index 53d67d7..80fea0f 100644 --- a/sdk/xtdk/ketypes.h +++ b/sdk/xtdk/ketypes.h @@ -458,6 +458,14 @@ typedef struct _KAPC_STATE BOOLEAN UserApcPending; } KAPC_STATE, *PKAPC_STATE; +/* Device queue entry structure definition */ +typedef struct _KDEVICE_QUEUE_ENTRY +{ + LIST_ENTRY DeviceListEntry; + ULONG SortKey; + BOOLEAN Inserted; +} KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY; + /* Mutex object structure definition */ typedef struct _KMUTEX { diff --git a/sdk/xtdk/xtstruct.h b/sdk/xtdk/xtstruct.h index 2acf11f..9570176 100644 --- a/sdk/xtdk/xtstruct.h +++ b/sdk/xtdk/xtstruct.h @@ -266,6 +266,7 @@ typedef struct _KD_DEBUG_MODE KD_DEBUG_MODE, *PKD_DEBUG_MODE; typedef struct _KD_DISPATCH_TABLE KD_DISPATCH_TABLE, *PKD_DISPATCH_TABLE; typedef struct _KDPC KDPC, *PKDPC; typedef struct _KDPC_DATA KDPC_DATA, *PKDPC_DATA; +typedef struct _KDEVICE_QUEUE_ENTRY KDEVICE_QUEUE_ENTRY, *PKDEVICE_QUEUE_ENTRY; typedef struct _KERNEL_INITIALIZATION_BLOCK KERNEL_INITIALIZATION_BLOCK, *PKERNEL_INITIALIZATION_BLOCK; typedef struct _KEVENT KEVENT, *PKEVENT; typedef struct _KLOCK_QUEUE_HANDLE KLOCK_QUEUE_HANDLE, *PKLOCK_QUEUE_HANDLE;