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

+27
View File
@@ -160,6 +160,33 @@ KSTATUS NtlResourceConnectListener(SYS_HANDLE listenerHandle, SYS_HANDLE* sessio
return SysConnectPort(&request);
}
// Delegates the authority to bind or unbind exactly one resource path.
KSTATUS NtlResourceCreatePublisher(SYS_HANDLE adminSession, SYS_STRING_VIEW path,
SYS_HANDLE* listenerOut) {
if (!listenerOut) return NTLSTATUS_INVALID_PARAMETER;
*listenerOut = SYS_HANDLE_INVALID;
uint8_t payload[sizeof(NTL_RESOURCE_REQUEST) + NTL_RESOURCE_PATH_MAX];
uint32_t length = 0;
KSTATUS status = NtlBuildResourceRequest(payload, sizeof(payload),
NTL_RESOURCE_OP_CREATE_PUBLISHER, path,
SysSvFromParts((const char*)0, 0), 0, 0,
NTL_RESOURCE_KIND_INVALID, &length);
if (!KSUCCESS(status)) return status;
NTL_RESOURCE_REPLY reply;
SYS_HANDLE handle = SYS_HANDLE_INVALID;
status = NtlCallResource(adminSession, payload, length, (const SYS_PORT_HANDLE_TRANSFER*)0,
0, &reply, &handle);
if (!KSUCCESS(status)) return status;
if (reply.Operation != NTL_RESOURCE_OP_CREATE_PUBLISHER ||
!KSUCCESS(reply.Status) || handle == SYS_HANDLE_INVALID) {
if (handle != SYS_HANDLE_INVALID) (void)SysCloseHandle(handle);
return reply.Operation == NTL_RESOURCE_OP_CREATE_PUBLISHER && !KSUCCESS(reply.Status)
? reply.Status : NTLSTATUS_FAILURE;
}
*listenerOut = handle;
return NTLSTATUS_SUCCESS;
}
// Looks up one resource and requests an attenuated alias of its bound capability.
KSTATUS NtlResourceLookup(SYS_HANDLE session,
SYS_STRING_VIEW path,