////////////////////////////////////////////////////// Static Methods. // public static unsafe void Initialize() { Platform p = Platform.ThePlatform; IoMemory pages = IoMemory.MapPhysicalMemory((UIntPtr)p.KernelDllFirstPage, 4096, true, false); kernel = new PEImage(pages); pages = IoMemory.MapPhysicalMemory((UIntPtr)p.KernelDllBase, kernel.loadedSize, true, false); kernelExports = kernel.GetExportTable(pages); DebugStub.WriteLine("PEImage.Initialize: Notify KD of kernel load."); DebugStub.LoadedBinary(pages.VirtualAddress, kernel.sizeOfImage, #if ISA_ARM "kernel.arm", #elif ISA_IX64 "kernel.x64", #elif ISA_IX86 "kernel.x86", #endif kernel.checkSum, kernel.timeDateStamp, false); // This breakpoint is triggered by a "-d" to windbg. if (DebugStub.PollForBreak()) { DebugStub.Break(); } #if GENERATE_ABI_SHIM DebugStub.WriteLine(" InitializeMpAbi() *****"); InitializeMpAbi(); #endif }