f694d206ebb628e5ca1b015e02b3320f71f3f643
2 * Various useful prototypes
5 #ifndef __INCLUDE_INTERNAL_KERNEL_H
6 #define __INCLUDE_INTERNAL_KERNEL_H
8 /* INCLUDES *****************************************************************/
10 #include <ddk/ntddk.h>
14 /* INTERNAL KERNEL FUNCTIONS ************************************************/
18 typedef struct _KTRAP_FRAME
64 } KTRAP_FRAME
, *PKTRAP_FRAME
;
66 VOID
KiUpdateSystemTime (VOID
);
68 VOID
KeAcquireDispatcherDatabaseLock(BOOLEAN Wait
);
69 VOID
KeReleaseDispatcherDatabaseLock(BOOLEAN Wait
);
70 BOOLEAN
KeDispatcherObjectWake(DISPATCHER_HEADER
* hdr
);
73 VOID
KiInterruptDispatch(ULONG irq
);
75 VOID
KeExpireTimers(VOID
);
76 NTSTATUS
KeAddThreadTimeout(struct _KTHREAD
* Thread
,
77 PLARGE_INTEGER Interval
);
78 VOID
KeInitializeDispatcherHeader(DISPATCHER_HEADER
* Header
, ULONG Type
,
79 ULONG Size
, ULONG SignalState
);
81 VOID
KeDumpStackFrames(PVOID Stack
, ULONG NrFrames
);
82 ULONG
KeAllocateGdtSelector(ULONG Desc
[2]);
83 VOID
KeFreeGdtSelector(ULONG Entry
);
84 BOOLEAN
KiTestAlert(VOID
);
85 VOID
KeRemoveAllWaitsThread(struct _ETHREAD
* Thread
, NTSTATUS WaitStatus
);
86 PULONG
KeGetStackTopThread(struct _ETHREAD
* Thread
);
87 VOID
KeContextToTrapFrame(PCONTEXT Context
,
88 PKTRAP_FRAME TrapFrame
);
90 /* INITIALIZATION FUNCTIONS *************************************************/
92 VOID
KeInitExceptions(VOID
);
93 VOID
KeInitInterrupts(VOID
);
94 VOID
KeInitTimer(VOID
);
96 VOID
KeInitDispatcher(VOID
);
97 VOID
KeInitializeDispatcher(VOID
);
98 VOID
KeInitializeTimerImpl(VOID
);
99 VOID
KeInitializeBugCheck(VOID
);
104 BOOLEAN
KiDeliverUserApc(PKTRAP_FRAME TrapFrame
);
106 NtEarlyInitVdm(VOID
);