replace the VHD/diskpart disk image pipeline with a directory-based vvfat root, we'll see when it breaks, fix /O2, add an all_tests, generalize the fat32 driver into a fat 16+32 driver, change policy on volume drivers, collapse KCPU's fields into a single atomic KE_CPU_STATE state machine, move scheduler ticking to per-CPU LAPIC timers, gate verbose SMP topology logging behind selftest diagnostics and add SMP pool-checkpoint validation around AP admission, add checked intrusive list helpers behind a new KE_DEBUG_LIST_CHECKS flag, add ObInitializeObjectHeader/ObTryReferenceObject, add waitable display clock objects and a SYS_OPEN_DISPLAY_CLOCK syscall for vsync-style waits, refactor kernel input into a per-queue KE_INPUT_CONTEXT with its own key/mouse ring buffers and DPC-driven key repeat, add KeInputQueuePeekEvent/ReadEvent/WaitKey and a SYS_QUERY_GLOBAL_INPUT_STATE syscall, split the kernel pool allocator out of mm_virt, new video files!

This commit is contained in:
maksw committed 2026-07-12 00:10:21 +02:00
1 parent 485a6bbfe7
commit 8b254f84f4
74 files changed
+4488 -2503

No files matched your search

+1 -1
View File
@@ -25,7 +25,7 @@
#include <ntlite/ddk/time.h>
#include <ntlite/ddk/timer.h>
#define NTL_DDK_VERSION 1u
#define NTL_DDK_VERSION 2u
// Root DDK table passed to kernel drivers by the driver loader.
typedef struct NTL_DDK {
+23 -3
View File
@@ -4,8 +4,9 @@
#include <stddef.h>
#include <stdint.h>
#include <stdbool.h>
// Kernel object type identifiers used by the legacy object header.
// Kernel object type identifiers used by the shared object header.
typedef enum OBJECT_TYPE {
ObjectTypeProcess = 1,
ObjectTypeThread = 2,
@@ -27,16 +28,35 @@ typedef enum OBJECT_TYPE {
ObjectTypeImageSection = 18,
ObjectTypeTimer = 19,
ObjectTypeModule = 20,
ObjectTypeDisplayClock = 21,
} OBJECT_TYPE;
// Legacy object header embedded by current driver/device objects.
typedef enum OBJECT_LIFETIME_STATE {
ObjectAlive = 1,
ObjectDying,
ObjectDead
} OBJECT_LIFETIME_STATE;
#define OBJECT_FLAG_INSERTED 0x00000001u
#define OBJECT_FLAG_UNLINKED 0x00000002u
// Object header embedded by kernel and driver-owned reference-counted objects.
typedef struct OBJECT {
OBJECT_TYPE Type;
volatile long RefCount;
volatile long LifetimeState;
volatile long Flags;
void (*Destroy)(struct OBJECT* self);
} OBJECT;
// Increments an object's reference count.
// Initializes an embedded object header with one live reference.
__declspec(dllexport) void ObInitializeObjectHeader(OBJECT* object, OBJECT_TYPE type);
// Acquires a reference only while the object is alive and inserted.
// The caller must stabilize the pointer through its owning lock or reference.
__declspec(dllexport) bool ObTryReferenceObject(OBJECT* object);
// Increments an object's reference count and stops on stale-object misuse.
__declspec(dllexport) void ObReferenceObject(OBJECT* object);
// Decrements an object's reference count and destroys it when it reaches zero.