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:
1 parent
c0ad63c27f
commit
d36f19509c
160 files changed
+6563
-7366
No files matched your search
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user