ANSI_STRING ImageName;\r
PLDR_DATA_TABLE_ENTRY LdrEntry;\r
PLIST_ENTRY NextEntry;\r
- ULONG i, j;\r
+ ULONG i, j, Length;\r
CHAR NameBuffer[256];\r
+ PWCHAR Name;\r
\r
/* Check if this is Phase 1 */\r
if (BootPhase)\r
InLoadOrderLinks);\r
\r
/* Save the Kernel Base */\r
- PsNtosImageBase = (ULONG)LdrEntry->DllBase;\r
+ PsNtosImageBase = (ULONG_PTR)LdrEntry->DllBase;\r
KdVersionBlock.KernBase = (ULONGLONG)(LONG_PTR)LdrEntry->DllBase;\r
\r
/* Check if we have a command line */\r
KdDebuggerEnabled = TRUE;\r
\r
/* Let user-mode know that it's enabled as well */\r
-//#undef KdDebuggerEnabled\r
- //SharedUserData->KdDebuggerEnabled = TRUE;\r
-//#define KdDebuggerEnabled _KdDebuggerEnabled\r
+#undef KdDebuggerEnabled\r
+ SharedUserData->KdDebuggerEnabled = TRUE;\r
+#define KdDebuggerEnabled _KdDebuggerEnabled\r
\r
/* Check if we have a loader block */\r
if (LoaderBlock)\r
InLoadOrderLinks);\r
\r
/* Generate the image name */\r
- for (j = 0; j < LdrEntry->BaseDllName.Length / 2; j++)\r
+ Name = LdrEntry->FullDllName.Buffer;\r
+ Length = LdrEntry->FullDllName.Length / sizeof(WCHAR);\r
+ j = 0;\r
+ do\r
{\r
/* Do cheap Unicode to ANSI conversion */\r
- NameBuffer[j] = (CHAR)LdrEntry->BaseDllName.Buffer[j];\r
- }\r
+ NameBuffer[j++] = (CHAR)*Name++;\r
+ } while (j < Length);\r
+\r
+ /* Null-terminate */\r
+ NameBuffer[j] = ANSI_NULL;\r
\r
/* Load symbols for image */\r
RtlInitAnsiString(&ImageName, NameBuffer);\r