1 #ifndef __INCLUDE_INTERNAL_NTOSKRNL_H
2 #define __INCLUDE_INTERNAL_NTOSKRNL_H
5 * Use these to place a function in a specific section of the executable
7 #define PLACE_IN_SECTION(s) __attribute__((section (s)))
8 #define INIT_FUNCTION PLACE_IN_SECTION("init")
9 #define PAGE_LOCKED_FUNCTION PLACE_IN_SECTION("pagelk")
10 #define PAGE_UNLOCKED_FUNCTION PLACE_IN_SECTION("pagepo")
35 #include "../kdbg/kdb.h"
44 * Defines a descriptor as it appears in the processor tables
46 typedef struct __DESCRIPTOR
50 } IDT_DESCRIPTOR
, GDT_DESCRIPTOR
;
54 extern IDT_DESCRIPTOR KiIdt
[256];
55 //extern GDT_DESCRIPTOR KiGdt[256];
58 * Initalization functions (called once by main())
60 VOID
MmInitSystem(ULONG Phase
, PLOADER_PARAMETER_BLOCK LoaderBlock
, ULONG LastKernelAddress
);
62 VOID
IoInit2(BOOLEAN BootLog
);
63 VOID STDCALL
IoInit3(VOID
);
66 VOID
CmInitializeRegistry(VOID
);
67 VOID STDCALL
CmInitHives(BOOLEAN SetupBoot
);
68 VOID
CmInit2(PCHAR CommandLine
);
69 VOID
CmShutdownRegistry(VOID
);
70 BOOLEAN
CmImportSystemHive(PCHAR ChunkBase
, ULONG ChunkSize
);
71 BOOLEAN
CmImportHardwareHive(PCHAR ChunkBase
, ULONG ChunkSize
);
72 VOID
KdInitSystem(ULONG Reserved
, PLOADER_PARAMETER_BLOCK LoaderBlock
);
76 RtlpCreateUnicodeString(
77 IN OUT PUNICODE_STRING UniDest
,
79 IN POOL_TYPE PoolType
);
82 RtlCaptureUnicodeString(
83 OUT PUNICODE_STRING Dest
,
84 IN KPROCESSOR_MODE CurrentMode
,
85 IN POOL_TYPE PoolType
,
86 IN BOOLEAN CaptureIfKernel
,
87 IN PUNICODE_STRING UnsafeSrc
91 RtlReleaseCapturedUnicodeString(
92 IN PUNICODE_STRING CapturedString
,
93 IN KPROCESSOR_MODE CurrentMode
,
94 IN BOOLEAN CaptureIfKernel
102 #define MM_STACK_SIZE (3*4096)
104 #endif /* INCLUDE_INTERNAL_NTOSKRNL_H */