replace ad hoc driver loading with a proper driver manager, new DDK, new PnP manager with device matching, asynchronous startup, resource ownership and removal, add shared PCI capability helpers, replace typed, rigid services with a proper service manager, implement proper system shutdown and restart, shutting down unloads drivers and shuts down services, add simple power button, remove heavyweight boot self-tests and SMP stress runs, add monotonic timestamps to kernel debug output, fruitless USB and PS/2 fixes, make test builds opt in.

This commit is contained in:
maksw committed 2026-10-26 10:08:03 +01:00
1 parent c0ad63c27f
commit d36f19509c
160 files changed
+6563 -7366

No files matched your search

+8 -9
View File
@@ -5,18 +5,16 @@
#include <stdbool.h>
#include <stdint.h>
#include <ntlite/syscall.h>
#include <ntlite/service_control.h>
#define INIT_SERVICES_PATH "system/services.ini"
#define INIT_SERVICES_MAX_FILE_BYTES (64u * 1024u)
#define INIT_SERVICE_MAX_COUNT 32u
#define INIT_SERVICE_ID_MAX 31u
#define INIT_SERVICE_DEPENDENCY_MAX 8u
typedef enum INIT_SERVICE_TYPE {
InitServiceTypeResource = 0,
InitServiceTypeDwm,
InitServiceTypeGeneric,
} INIT_SERVICE_TYPE;
#define INIT_SERVICE_GRANT_MAX 8u
#define INIT_SERVICE_GRANT_NAME_MAX SYS_STARTUP_CAPABILITY_NAME_MAX
#define INIT_SERVICE_EXPORT_MAX 8u
typedef enum INIT_SERVICE_START_POLICY {
InitServiceStartAuto = 0,
@@ -31,7 +29,6 @@ typedef enum INIT_SERVICE_RESTART_POLICY {
typedef struct INIT_SERVICE_DESCRIPTOR {
char Id[INIT_SERVICE_ID_MAX + 1u];
char ImagePath[SYS_PATH_MAX];
INIT_SERVICE_TYPE Type;
INIT_SERVICE_START_POLICY StartPolicy;
bool Critical;
INIT_SERVICE_RESTART_POLICY RestartPolicy;
@@ -39,6 +36,10 @@ typedef struct INIT_SERVICE_DESCRIPTOR {
uint32_t StopTimeoutMilliseconds;
uint32_t DependencyCount;
uint16_t Dependencies[INIT_SERVICE_DEPENDENCY_MAX];
uint32_t GrantCount;
char Grants[INIT_SERVICE_GRANT_MAX][INIT_SERVICE_GRANT_NAME_MAX + 1u];
uint32_t ExportCount;
char Exports[INIT_SERVICE_EXPORT_MAX][NTL_SERVICE_EXPORT_NAME_MAX + 1u];
} INIT_SERVICE_DESCRIPTOR;
typedef struct INIT_SERVICE_CONFIG {
@@ -46,8 +47,6 @@ typedef struct INIT_SERVICE_CONFIG {
uint16_t StartupOrder[INIT_SERVICE_MAX_COUNT];
uint32_t ServiceCount;
uint32_t StartupCount;
uint16_t ResourceServiceIndex;
uint16_t DwmServiceIndex;
} INIT_SERVICE_CONFIG;
// Loads, strictly parses, and validates services.ini beneath the bootstrap system volume.