Author: hpoussin
Date: Wed Jan 14 20:48:06 2015
New Revision: 66037
URL: http://svn.reactos.org/svn/reactos?rev=66037&view=rev
Log:
[NTOS:EX] Implement NtSystemDebugControl
Modified:
trunk/reactos/ntoskrnl/ex/dbgctrl.c
Modified: trunk/reactos/ntoskrnl/ex/dbgctrl.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/ex/dbgctrl.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/ex/dbgctrl.c [iso-8859-1] (original)
+++ trunk/reactos/ntoskrnl/ex/dbgctrl.c [iso-8859-1] Wed Jan 14 20:48:06 2015
@@ -60,6 +60,47 @@
ULONG OutputBufferLength,
PULONG ReturnLength)
{
- /* FIXME: TODO */
- return STATUS_SUCCESS;
+ switch (ControlCode)
+ {
+ case SysDbgQueryModuleInformation:
+ case SysDbgQueryTraceInformation:
+ case SysDbgSetTracepoint:
+ case SysDbgSetSpecialCall:
+ case SysDbgClearSpecialCalls:
+ case SysDbgQuerySpecialCalls:
+ case SysDbgQueryVersion:
+ case SysDbgReadVirtual:
+ case SysDbgWriteVirtual:
+ case SysDbgReadPhysical:
+ case SysDbgWritePhysical:
+ case SysDbgReadControlSpace:
+ case SysDbgWriteControlSpace:
+ case SysDbgReadIoSpace:
+ case SysDbgWriteIoSpace:
+ case SysDbgReadMsr:
+ case SysDbgWriteMsr:
+ case SysDbgReadBusData:
+ case SysDbgWriteBusData:
+ case SysDbgCheckLowMemory:
+ case SysDbgGetTriageDump:
+ return STATUS_NOT_IMPLEMENTED;
+ case SysDbgBreakPoint:
+ case SysDbgEnableKernelDebugger:
+ case SysDbgDisableKernelDebugger:
+ case SysDbgGetAutoKdEnable:
+ case SysDbgSetAutoKdEnable:
+ case SysDbgGetPrintBufferSize:
+ case SysDbgSetPrintBufferSize:
+ case SysDbgGetKdUmExceptionEnable:
+ case SysDbgSetKdUmExceptionEnable:
+ case SysDbgGetKdBlockEnable:
+ case SysDbgSetKdBlockEnable:
+ return KdSystemDebugControl(
+ ControlCode,
+ InputBuffer, InputBufferLength,
+ OutputBuffer, OutputBufferLength,
+ ReturnLength, KeGetPreviousMode());
+ default:
+ return STATUS_INVALID_INFO_CLASS;
+ }
}
Author: hpoussin
Date: Tue Jan 13 20:08:14 2015
New Revision: 66033
URL: http://svn.reactos.org/svn/reactos?rev=66033&view=rev
Log:
[FREELDR] Support failing to load some boot drivers
In that case, simply skip it and try the next one.
Modified:
trunk/reactos/boot/freeldr/freeldr/windows/winldr.c
Modified: trunk/reactos/boot/freeldr/freeldr/windows/winldr.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/boot/freeldr/freeldr/windo…
==============================================================================
--- trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] (original)
+++ trunk/reactos/boot/freeldr/freeldr/windows/winldr.c [iso-8859-1] Tue Jan 13 20:08:14 2015
@@ -301,6 +301,7 @@
PLIST_ENTRY NextBd;
PBOOT_DRIVER_LIST_ENTRY BootDriver;
BOOLEAN Success;
+ BOOLEAN ret = TRUE;
// Walk through the boot drivers list
NextBd = LoaderBlock->BootDriverListHead.Flink;
@@ -321,24 +322,28 @@
0,
&BootDriver->LdrEntry);
- // If loading failed - cry loudly
- //FIXME: Maybe remove it from the list and try to continue?
- if (!Success)
+ if (Success)
{
- ERR("Can't load boot driver '%wZ'!", &BootDriver->FilePath);
+ // Convert the RegistryPath and DTE addresses to VA since we are not going to use it anymore
+ BootDriver->RegistryPath.Buffer = PaToVa(BootDriver->RegistryPath.Buffer);
+ BootDriver->FilePath.Buffer = PaToVa(BootDriver->FilePath.Buffer);
+ BootDriver->LdrEntry = PaToVa(BootDriver->LdrEntry);
+ }
+ else
+ {
+ // Loading failed - cry loudly
+ ERR("Can't load boot driver '%wZ'!\n", &BootDriver->FilePath);
UiMessageBox("Can't load boot driver '%wZ'!", &BootDriver->FilePath);
- return FALSE;
+ ret = FALSE;
+
+ // Remove it from the list and try to continue
+ RemoveEntryList(NextBd);
}
- // Convert the RegistryPath and DTE addresses to VA since we are not going to use it anymore
- BootDriver->RegistryPath.Buffer = PaToVa(BootDriver->RegistryPath.Buffer);
- BootDriver->FilePath.Buffer = PaToVa(BootDriver->FilePath.Buffer);
- BootDriver->LdrEntry = PaToVa(BootDriver->LdrEntry);
-
NextBd = BootDriver->Link.Flink;
}
- return TRUE;
+ return ret;
}
PVOID