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
@@ -219,12 +219,12 @@ KSTATUS NtlPrepareProcess(const NTL_PREPARE_PROCESS_REQUEST* request,
|
||||
memset(state->ChildCapabilities, 0, sizeof(state->ChildCapabilities));
|
||||
for (uint32_t i = 0; i < request->StartupCapabilityCount; ++i) {
|
||||
const NTL_PROCESS_STARTUP_CAPABILITY* source = &request->StartupCapabilities[i];
|
||||
if (!source->Tag || source->SourceHandle == SYS_HANDLE_INVALID) {
|
||||
if (!SysStartupCapabilityNameValid(source->Name) || source->SourceHandle == SYS_HANDLE_INVALID) {
|
||||
status = NTLSTATUS_INVALID_PARAMETER;
|
||||
goto fail;
|
||||
}
|
||||
for (uint32_t j = 0; j < i; ++j) {
|
||||
if (state->ChildCapabilities[j].Tag == source->Tag) {
|
||||
if (strcmp(state->ChildCapabilities[j].Name, source->Name) == 0) {
|
||||
status = NTLSTATUS_INVALID_PARAMETER;
|
||||
goto fail;
|
||||
}
|
||||
@@ -240,7 +240,7 @@ KSTATUS NtlPrepareProcess(const NTL_PREPARE_PROCESS_REQUEST* request,
|
||||
duplicate.TargetHandleOut = &childHandle;
|
||||
status = SysDuplicateHandle(&duplicate);
|
||||
if (!KSUCCESS(status)) goto fail;
|
||||
state->ChildCapabilities[i].Tag = source->Tag;
|
||||
memcpy(state->ChildCapabilities[i].Name, source->Name, sizeof(source->Name));
|
||||
state->ChildCapabilities[i].Handle = childHandle;
|
||||
}
|
||||
state->StartupCapabilityCount = request->StartupCapabilityCount;
|
||||
|
||||
Reference in new issue
Block a user