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")
34 #include "../kdbg/kdb.h"
43 * Defines a descriptor as it appears in the processor tables
45 typedef struct __DESCRIPTOR
49 } IDT_DESCRIPTOR
, GDT_DESCRIPTOR
;
53 extern IDT_DESCRIPTOR KiIdt
[256];
54 //extern GDT_DESCRIPTOR KiGdt[256];
57 * Initalization functions (called once by main())
59 VOID
MmInitSystem(ULONG Phase
, PLOADER_PARAMETER_BLOCK LoaderBlock
, ULONG LastKernelAddress
);
61 VOID
IoInit2(BOOLEAN BootLog
);
62 VOID STDCALL
IoInit3(VOID
);
65 VOID
CmInitializeRegistry(VOID
);
66 VOID STDCALL
CmInitHives(BOOLEAN SetupBoot
);
67 VOID
CmInit2(PCHAR CommandLine
);
68 VOID
CmShutdownRegistry(VOID
);
69 BOOLEAN
CmImportSystemHive(PCHAR ChunkBase
, ULONG ChunkSize
);
70 BOOLEAN
CmImportHardwareHive(PCHAR ChunkBase
, ULONG ChunkSize
);
71 VOID
KdInitSystem(ULONG Reserved
, PLOADER_PARAMETER_BLOCK LoaderBlock
);
73 /* FIXME - RtlpCreateUnicodeString is obsolete and should be removed ASAP! */
75 RtlpCreateUnicodeString(
76 IN OUT PUNICODE_STRING UniDest
,
78 IN POOL_TYPE PoolType
);
81 RtlCaptureUnicodeString(
82 OUT PUNICODE_STRING Dest
,
83 IN KPROCESSOR_MODE CurrentMode
,
84 IN POOL_TYPE PoolType
,
85 IN BOOLEAN CaptureIfKernel
,
86 IN PUNICODE_STRING UnsafeSrc
90 RtlReleaseCapturedUnicodeString(
91 IN PUNICODE_STRING CapturedString
,
92 IN KPROCESSOR_MODE CurrentMode
,
93 IN BOOLEAN CaptureIfKernel
101 #define MM_STACK_SIZE (3*4096)
103 #endif /* INCLUDE_INTERNAL_NTOSKRNL_H */