97 lines
4 KiB
C
97 lines
4 KiB
C
|
/************************************************************************/
|
||
|
/* */
|
||
|
/* DXKRNL.H -- Private Kernel Definitions */
|
||
|
/* */
|
||
|
/************************************************************************/
|
||
|
/* Author: Gene Apperson */
|
||
|
/* Copyright: 1991 Microsoft */
|
||
|
/************************************************************************/
|
||
|
/* File Description: */
|
||
|
/* */
|
||
|
/* This header file contains private macro, data structure and */
|
||
|
/* procedure declarations for internal use by the kernel */
|
||
|
/* */
|
||
|
/************************************************************************/
|
||
|
/* Revision History: */
|
||
|
/* */
|
||
|
/* 04/02/91 (GeneA): created */
|
||
|
/* 2/12/93 (miketout): removed unnecessary EnterKrnlCritSect and */
|
||
|
/* LeaveKrnlCritSect macros */
|
||
|
/* */
|
||
|
/************************************************************************/
|
||
|
|
||
|
/* This is a special undocumented creation parameter bit that can
|
||
|
** be given to FNewProcess to create an asynchronous process. Normally
|
||
|
** the thread calling FNewProcess will block until the child process
|
||
|
** terminates.
|
||
|
*/
|
||
|
#define fExecAsync 0x80000000
|
||
|
|
||
|
|
||
|
/* The following define the return status codes for the various
|
||
|
** wait routines (e.g. IdWaitOnPsem, IdWaitOnPpdb, IdWaitOnPtdb,...)
|
||
|
*/
|
||
|
|
||
|
// This constant missing from NT's winbase.h
|
||
|
#define WAIT_ERROR 0xFFFFFFFFL
|
||
|
|
||
|
#define idWaitOK 0L
|
||
|
#define idWaitTimeout WAIT_TIMEOUT
|
||
|
#define idWaitIOCompletion WAIT_IO_COMPLETION
|
||
|
#define idWaitAbandoned WAIT_ABANDONED
|
||
|
#define idWaitError WAIT_ERROR
|
||
|
#define idWaitSuspended 0x40000001
|
||
|
#define idWaitExit 0x0f01
|
||
|
|
||
|
/* Priority class constants to convert Win32's flags to base priority
|
||
|
** values
|
||
|
*/
|
||
|
#define IDLE_PRI_CLASS_BASE 4
|
||
|
#define NORMAL_PRI_CLASS_BASE 8
|
||
|
#define HIGH_PRI_CLASS_BASE 13
|
||
|
#define REALTIME_PRI_CLASS_BASE 24
|
||
|
#define REALTIME_PRI_MAX 31
|
||
|
#define REALTIME_PRI_MIN 16
|
||
|
#define NORMAL_PRI_MAX 15
|
||
|
#define NORMAL_PRI_MIN 1
|
||
|
|
||
|
/* Initialization phases
|
||
|
*/
|
||
|
|
||
|
#define IC_BEGIN 0 // Initialization begun
|
||
|
#define IC_KERNELPROC (IC_BEGIN+1) // Krnl process/thread exists
|
||
|
#define IC_DONE (IC_KERNELPROC+1) // KernelInit() is complete
|
||
|
|
||
|
#ifndef WOW32_EXTENSIONS
|
||
|
|
||
|
extern GLOBAL BOOL InitCompletion;
|
||
|
|
||
|
extern GLOBAL BOOL fEmulate; // TRUE=>use Win32 emulator
|
||
|
extern GLOBAL DSCR dscrInvalid; // 0 filled
|
||
|
extern GLOBAL TEMPSTACKINFO *pWin16TerminationStackInfo;
|
||
|
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
|
||
|
GLOBAL BOOL KERNENTRY FInstallInterrupts(VOID);
|
||
|
GLOBAL BOOL KERNENTRY FUninstallInterrupts(VOID);
|
||
|
GLOBAL LPSTR KERNENTRY HexToAscii(DWORD, LPSTR);
|
||
|
GLOBAL VOID KERNENTRY Except7Handler(VOID);
|
||
|
GLOBAL VOID KERNENTRY KSTerminateProcess(PDB *, DWORD);
|
||
|
GLOBAL VOID KERNENTRY KSTerminateThread(TDB *, DWORD);
|
||
|
GLOBAL VOID KERNENTRY KSTerminateProcessAPCHandler(PDB *);
|
||
|
GLOBAL VOID KERNENTRY KSTerminateThreadAPCHandler(TDB *);
|
||
|
|
||
|
#endif // ndef WOW32_EXTENSIONS
|
||
|
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
/* ------------------------------------------------------------ */
|
||
|
|
||
|
/************************************************************************/
|