Kill NTOS headers. So long, and thanks for all the fish

svn path=/trunk/; revision=16279
This commit is contained in:
Alex Ionescu 2005-06-26 05:52:40 +00:00
parent 068dd36e8b
commit 80a245fca0
65 changed files with 25 additions and 17164 deletions

View file

@ -23,8 +23,8 @@
*/
#include <windows.h>
/* NOTE: W32API ddk/ntapi.h header has wrong definition of SYSTEM_PROCESSES. */
#include <ntos/types.h>
#define NTOS_MODE_USER
#include <ndk/ntndk.h>
typedef struct _SYSTEM_THREADS
{

View file

@ -12,9 +12,9 @@
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include <ntos/halfuncs.h>
#include <wincon.h>
#include <ddk/ntddblue.h>
#include <string.h>
#include <ndk/halfuncs.h>
#define NDEBUG
#include <debug.h>

View file

@ -25,8 +25,7 @@
#include <ddk/ntddk.h>
#include <ddk/ntbootvid.h>
#include <ntos/ldrtypes.h>
#include <ddk/ldrfuncs.h>
#include <ndk/ldrfuncs.h>
#include "bootvid.h"
#include "resource.h"

View file

@ -30,7 +30,6 @@
#include <ddk/ntddk.h>
#include <ntddcdrm.h>
#include <ntos/minmax.h>
#define NDEBUG
#include <debug.h>

View file

@ -29,7 +29,6 @@
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <ntos/minmax.h>
#define NDEBUG
#include <debug.h>

View file

@ -10,9 +10,7 @@
/* INCLUDES ******************************************************************/
#include <ntifs.h>
#include <ntos/fstypes.h> /* FIXME: NDK */
/* FIXME: The headers are broken! */
#undef CreateMailslot
#include <ndk/iotypes.h>
#include "msfs.h"
#define NDEBUG

View file

@ -10,7 +10,7 @@
/* INCLUDES ******************************************************************/
#include <ntifs.h>
#include <ntos/fstypes.h> /* FIXME: NDK */
#include <ndk/iotypes.h>
#include "npfs.h"
#define NDEBUG

View file

@ -29,7 +29,6 @@
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <ntos/minmax.h>
#define NDEBUG
#include <debug.h>

View file

@ -29,7 +29,6 @@
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <ntos/minmax.h>
#define NDEBUG
#include <debug.h>

View file

@ -39,7 +39,6 @@
#include <ddk/ntdddisk.h>
#include <ddk/ntddcdrm.h>
#include <ddk/class2.h>
#include <ntos/minmax.h>
#include <stdio.h>
#define NDEBUG

View file

@ -32,7 +32,6 @@
#include <ddk/srb.h>
#include <ddk/scsi.h>
#include <ddk/ntddscsi.h>
#include <ntos/minmax.h>
#include <stdio.h>
#define NDEBUG

View file

@ -1,7 +1,6 @@
#include <ddk/ntddk.h>
#include <ddk/ntddvdeo.h>
#include <ddk/winddi.h>
#include <ntos/minmax.h>
#include <stdlib.h>
#include "vgavideo.h"

View file

@ -3,9 +3,6 @@
#include <windows.h>
#include <ddk/ntddblue.h>
#ifndef _NTNDK_
#include <ntos.h>
#endif
#define CSR_NATIVE 0x0000
#define CSR_CONSOLE 0x0001

View file

@ -1,8 +1,6 @@
#ifndef _NTDDBLUE_H_INCLUDED_
#define _NTDDBLUE_H_INCLUDED_
#include <ntos/console.h>
#define IOCTL_CONSOLE_GET_SCREEN_BUFFER_INFO CTL_CODE(FILE_DEVICE_SCREEN, 0x801, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CONSOLE_SET_SCREEN_BUFFER_INFO CTL_CODE(FILE_DEVICE_SCREEN, 0x802, METHOD_BUFFERED, FILE_WRITE_ACCESS)
#define IOCTL_CONSOLE_GET_CURSOR_INFO CTL_CODE(FILE_DEVICE_SCREEN, 0x803, METHOD_BUFFERED, FILE_READ_ACCESS)

View file

@ -20,6 +20,8 @@
#ifndef __NTPNP_H
#define __NTPNP_H
#include <ddk/cfg.h>
/*
* TODO:
* - Describe the undocumented GUIDs.

View file

@ -22,6 +22,10 @@ HalAcquireDisplayOwnership(
IN PHAL_RESET_DISPLAY_PARAMETERS ResetDisplayParameters
);
BOOLEAN
STDCALL
HalQueryDisplayOwnership(VOID);
BOOLEAN
STDCALL
HalAllProcessorsStarted(VOID);

View file

@ -90,11 +90,7 @@ VOID
STDCALL
VidCleanUp(VOID);
BOOLEAN
STDCALL
VidInitialize(VOID);
BOOLEAN
BOOL
STDCALL
VidResetDisplay(VOID);

View file

@ -1,104 +0,0 @@
#ifndef _NTOS_H
#define _NTOS_H
/* $Id$ */
#if defined(NTOS_MODE_USER)
/*
* Include windows.h before ntddk.h to get user mode prototype
* for InterlockedXxx functions.
*/
#include <windows.h>
#include <ddk/ntddk.h>
#include <ddk/ntifs.h>
#include <ddk/ntnls.h>
#include <ddk/cfg.h>
#include <evntrace.h>
#include "ntos/types.h"
#include "ntos/cdrom.h"
#include "ntos/console.h"
#include "ntos/disk.h"
#include "ntos/tape.h"
#include "ntos/except.h"
#include "ntos/file.h"
#include "ntos/gditypes.h"
#include "ntos/fstypes.h" /* AG */
#include "ntos/heap.h"
#include "ntos/keyboard.h"
#include "ntos/minmax.h"
#include "ntos/mm.h"
#include "ntos/ntdef.h"
#include "ntos/port.h"
#include "ntos/ps.h"
#include "ntos/registry.h"
#include "ntos/security.h"
#include "ntos/synch.h"
#include "ntos/time.h"
#include "napi/i386/segment.h"
#include "napi/types.h"
#include "napi/dbg.h"
#include "napi/npipe.h"
#include "napi/shared_data.h"
#include "napi/win32.h"
#include "ntos/rtltypes.h"
#include "ntos/rtl.h"
#include "ntos/zwtypes.h"
#include "ntos/zw.h"
#include "ntos/dbgfuncs.h"
#include "ntos/service.h"
//#include "ntdll/csr.h"
#include "ntdll/dbg.h"
#include "ntdll/ldr.h"
#include "ntdll/rtl.h"
#include "ntdll/trace.h"
#include "rosrtl/thread.h"
#else /* Assume kernel mode */
#include <ddk/ntddk.h>
#include <ddk/ntifs.h>
#include <ddk/ntnls.h>
#include <ddk/cfg.h>
#include <evntrace.h>
#include "ntos/types.h"
#include "ntos/cdrom.h"
#include "ntos/console.h"
#include "ntos/disk.h"
#include "ntos/tape.h"
#include "ntos/except.h"
#include "ntos/file.h"
#include "ntos/gditypes.h"
#include "ntos/heap.h"
#include "ntos/keyboard.h"
#include "ntos/minmax.h"
#include "ntos/mm.h"
#include "ntos/ntdef.h"
#include "ntos/port.h"
#include "ntos/ps.h"
#include "ntos/registry.h"
#include "ntos/security.h"
#include "ntos/synch.h"
#include "ntos/time.h"
#include "napi/i386/segment.h"
#include "napi/types.h"
#include "napi/dbg.h"
#include "napi/npipe.h"
#include "napi/shared_data.h"
#include "napi/win32.h"
#include "ntos/rtltypes.h"
#include "ntos/rtl.h"
#include "ntos/zwtypes.h"
#include "ntos/zw.h"
#include "ntos/dbgfuncs.h"
#include "ntos/service.h"
#include "ntos/haltypes.h"
#include "ntos/halfuncs.h"
#include "ntos/kdfuncs.h"
#include "ntos/kefuncs.h" /* AG */
#include "ntos/fstypes.h" /* AG */
#include "ntos/obtypes.h"
#include "ntos/setypes.h"
#include "ntos/sefuncs.h"
#include "ntos/krnltypes.h"
#include "ntos/tss.h"
#include "rosrtl/thread.h"
#endif
#endif /* ndef _NTOS_H */

View file

@ -1,75 +0,0 @@
#ifndef __INCLUDE_NTOS_BOOTVID_H
#define __INCLUDE_NTOS_BOOTVID_H
VOID
STDCALL
InbvAcquireDisplayOwnership(VOID);
BOOLEAN
STDCALL
InbvCheckDisplayOwnership(VOID);
BOOLEAN
STDCALL
InbvDisplayString(IN PCHAR String);
VOID
STDCALL
InbvEnableBootDriver(IN BOOLEAN Enable);
BOOLEAN
STDCALL
InbvEnableDisplayString(IN BOOLEAN Enable);
VOID
STDCALL
InbvInstallDisplayStringFilter(IN PVOID Unknown);
BOOLEAN
STDCALL
InbvIsBootDriverInstalled(VOID);
VOID
STDCALL
InbvNotifyDisplayOwnershipLost(IN PVOID Callback);
BOOLEAN
STDCALL
InbvResetDisplay(VOID);
VOID
STDCALL
InbvSetScrollRegion(IN ULONG Left,
IN ULONG Top,
IN ULONG Width,
IN ULONG Height);
VOID
STDCALL
InbvSetTextColor(IN ULONG Color);
VOID
STDCALL
InbvSolidColorFill(IN ULONG Left,
IN ULONG Top,
IN ULONG Width,
IN ULONG Height,
IN ULONG Color);
VOID
STDCALL
VidCleanUp(VOID);
BOOLEAN
STDCALL
VidInitialize(VOID);
BOOLEAN
STDCALL
VidResetDisplay(VOID);
BOOLEAN
STDCALL
VidIsBootDriverInstalled(VOID);
#endif /* __INCLUDE_NTOS_BOOTVID_H */

View file

@ -1,56 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/cdrom.h
* PURPOSE: CD-ROM related definitions used by all the parts of the system
* PROGRAMMER: Eric Kohl
* UPDATE HISTORY:
* 10/04/2002: Created
*/
#ifndef __INCLUDE_NTOS_CDROM_H
#define __INCLUDE_NTOS_CDROM_H
#define IOCTL_CDROM_BASE FILE_DEVICE_CD_ROM
#define IOCTL_CDROM_READ_TOC CTL_CODE(IOCTL_CDROM_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_GET_LAST_SESSION CTL_CODE(IOCTL_CDROM_BASE, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_CDROM_BASE, 0x0013, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_CHECK_VERIFY CTL_CODE(IOCTL_CDROM_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_MEDIA_REMOVAL CTL_CODE(IOCTL_CDROM_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_EJECT_MEDIA CTL_CODE(IOCTL_CDROM_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_LOAD_MEDIA CTL_CODE(IOCTL_CDROM_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_RESERVE CTL_CODE(IOCTL_CDROM_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_RELEASE CTL_CODE(IOCTL_CDROM_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_FIND_NEW_DEVICES CTL_CODE(IOCTL_CDROM_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
#define MAXIMUM_NUMBER_TRACKS 100
#define MAXIMUM_CDROM_SIZE 804
typedef struct _TRACK_DATA
{
UCHAR Reserved;
UCHAR Control : 4;
UCHAR Adr : 4;
UCHAR TrackNumber;
UCHAR Reserved1;
UCHAR Address[4];
} TRACK_DATA, *PTRACK_DATA;
typedef struct _CDROM_TOC
{
UCHAR Length[2];
UCHAR FirstTrack;
UCHAR LastTrack;
TRACK_DATA TrackData[MAXIMUM_NUMBER_TRACKS];
} CDROM_TOC, *PCDROM_TOC;
#define CDROM_TOC_SIZE sizeof(CDROM_TOC)
#endif /* __INCLUDE_NTOS_CDROM_H */
/* EOF */

View file

@ -1,57 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/console.h
* PURPOSE: Console declarations used by all the parts of the
* system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_CONSOLE_H
#define __INCLUDE_CONSOLE_H
/* GetConsoleMode */
#define CONSOLE_INPUT_MODE_VALID (0x0f)
#define CONSOLE_OUTPUT_MODE_VALID (0x03)
typedef struct _CONSOLE_SELECTION_INFO {
DWORD dwFlags;
COORD dwSelectionAnchor;
SMALL_RECT srSelection;
} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
#ifndef __USE_W32API
typedef struct _CONSOLE_FONT_INFO {
DWORD nFont;
COORD dwFontSize;
} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
/* GetConsoleMode */
#define ENABLE_LINE_INPUT (0x02)
#define ENABLE_ECHO_INPUT (0x04)
#define ENABLE_PROCESSED_INPUT (0x01)
#define ENABLE_WINDOW_INPUT (0x08)
#define ENABLE_MOUSE_INPUT (0x0f)
#define ENABLE_PROCESSED_OUTPUT (0x01)
#define ENABLE_WRAP_AT_EOL_OUTPUT (0x02)
typedef struct _CONSOLE_SCREEN_BUFFER_INFO {
COORD dwSize;
COORD dwCursorPosition;
WORD wAttributes;
SMALL_RECT srWindow;
COORD dwMaximumWindowSize;
} CONSOLE_SCREEN_BUFFER_INFO, *PCONSOLE_SCREEN_BUFFER_INFO ;
typedef struct _CONSOLE_CURSOR_INFO {
DWORD dwSize;
BOOL bVisible;
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
#endif /* !__USE_W32API */
#endif /* __INCLUDE_CONSOLE_H */

View file

@ -1,19 +0,0 @@
#ifndef __INCLUDE_NTOS_DBGFUNCS_H
#define __INCLUDE_NTOS_DBGFUNCS_H
/* $Id$ */
#define DBG_STATUS_CONTROL_C 1
#define DBG_STATUS_SYSRQ 2
#define DBG_STATUS_BUGCHECK_FIRST 3
#define DBG_STATUS_BUGCHECK_SECOND 4
#define DBG_STATUS_FATAL 5
#define DBG_GET_SHOW_FACILITY 0x0001
#define DBG_GET_SHOW_SEVERITY 0x0002
#define DBG_GET_SHOW_ERRCODE 0x0004
#define DBG_GET_SHOW_ERRTEXT 0x0008
VOID DbgGetErrorText(NTSTATUS ErrorCode, PUNICODE_STRING ErrorText, ULONG Flags);
VOID DbgPrintErrorMessage(NTSTATUS ErrorCode);
#endif /* __INCLUDE_NTOS_DBGFUNCS_H */

View file

@ -1,185 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/disk.h
* PURPOSE: Disk related definitions used by all the parts of the system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_DISK_H
#define __INCLUDE_DISK_H
#ifndef __USE_W32API
#define IOCTL_DISK_BASE FILE_DEVICE_DISK
#define IOCTL_DISK_GET_DRIVE_GEOMETRY CTL_CODE(IOCTL_DISK_BASE, 0x0000, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_GET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_SET_PARTITION_INFO CTL_CODE(IOCTL_DISK_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_GET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_SET_DRIVE_LAYOUT CTL_CODE(IOCTL_DISK_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0005, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_FORMAT_TRACKS CTL_CODE(IOCTL_DISK_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_REASSIGN_BLOCKS CTL_CODE(IOCTL_DISK_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_PERFORMANCE CTL_CODE(IOCTL_DISK_BASE, 0x0008, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_IS_WRITABLE CTL_CODE(IOCTL_DISK_BASE, 0x0009, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_LOGGING CTL_CODE(IOCTL_DISK_BASE, 0x000A, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_FORMAT_TRACKS_EX CTL_CODE(IOCTL_DISK_BASE, 0x000B, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_HISTOGRAM_STRUCTURE CTL_CODE(IOCTL_DISK_BASE, 0x000C, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_HISTOGRAM_DATA CTL_CODE(IOCTL_DISK_BASE, 0x000D, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_HISTOGRAM_RESET CTL_CODE(IOCTL_DISK_BASE, 0x000E, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_REQUEST_STRUCTURE CTL_CODE(IOCTL_DISK_BASE, 0x000F, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_REQUEST_DATA CTL_CODE(IOCTL_DISK_BASE, 0x0010, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_DISK_CONTRIOLLER_NUMBER CTL_CODE(IOCTL_DISK_BASE, 0x0011, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define SMART_GET_VERSION CTL_CODE(IOCTL_DISK_BASE, 0x0020, METHOD_BUFFERED, FILE_READ_ACCESS)
#define SMART_SEND_DRIVE_COMMAND CTL_CODE(IOCTL_DISK_BASE, 0x0021, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define SMART_RCV_DRIVE_DATA CTL_CODE(IOCTL_DISK_BASE, 0x0022, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_DISK_INTERNAL_SET_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0100, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_DISK_INTERNAL_CLEAR_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0101, METHOD_NEITHER, FILE_ANY_ACCESS)
#define IOCTL_DISK_CHECK_VERIFY CTL_CODE(IOCTL_DISK_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_MEDIA_REMOVAL CTL_CODE(IOCTL_DISK_BASE, 0x0201, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_EJECT_MEDIA CTL_CODE(IOCTL_DISK_BASE, 0x0202, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_LOAD_MEDIA CTL_CODE(IOCTL_DISK_BASE, 0x0203, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_RESERVE CTL_CODE(IOCTL_DISK_BASE, 0x0204, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_RELEASE CTL_CODE(IOCTL_DISK_BASE, 0x0205, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_FIND_NEW_DEVICES CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_DISK_GET_MEDIA_TYPES CTL_CODE(IOCTL_DISK_BASE, 0x0300, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PARTITION_ENTRY_UNUSED 0x00
#define PARTITION_FAT_12 0x01
#define PARTITION_XENIX_1 0x02
#define PARTITION_XENIX_2 0x03
#define PARTITION_FAT_16 0x04
#define PARTITION_EXTENDED 0x05
#define PARTITION_HUGE 0x06
#define PARTITION_IFS 0x07
#define PARTITION_FAT32 0x0B
#define PARTITION_FAT32_XINT13 0x0C
#define PARTITION_XINT13 0x0E
#define PARTITION_XINT13_EXTENDED 0x0F
#define PARTITION_PREP 0x41
#define PARTITION_LDM 0x42
#define PARTITION_UNIX 0x63
#define PARTITION_EXT2 0x83
#define PARTITION_NTFT 0x80
#define VALID_NTFT 0xC0
#if 0
#define PTEmpty 0x00
#define PTDOS3xPrimary 0x01
#define PTXENIXRoot 0x02
#define PTXENIXUsr 0x03
#define PTOLDDOS16Bit 0x04
#define PTDosExtended 0x05
#define PTDos5xPrimary 0x06
#define PTIfs 0x07 /* e.g.: HPFS, NTFS, etc */
#define PTAIX 0x08
#define PTAIXBootable 0x09
#define PTOS2BootMgr 0x0A
#define PTWin95FAT32 0x0B
#define PTWin95FAT32LBA 0x0C
#define PTWin95FAT16LBA 0x0E
#define PTWin95ExtendedLBA 0x0F
#define PTVenix286 0x40
#define PTNovell 0x51
#define PTMicroport 0x52
#define PTGnuHurd 0x63
#define PTNetware286 0x64
#define PTNetware386 0x65
#define PTPCIX 0x75
#define PTOldMinix 0x80
#define PTMinix 0x81
#define PTLinuxSwap 0x82
#define PTLinuxExt2 0x83
#define PTAmoeba 0x93
#define PTAmoebaBBT 0x94
#define PTBSD 0xA5
#define PTBSDIFS 0xB7
#define PTBSDISwap 0xB8
#define PTSyrinx 0xC7
#define PTCPM 0xDB
#define PTDOSAccess 0xE1
#define PTDOSRO 0xE3
#define PTDOSSecondary 0xF2
#define PTBBT 0xFF
#endif
#define IsRecognizedPartition(P) \
((P) == PARTITION_FAT_12 || \
(P) == PARTITION_FAT_16 || \
(P) == PARTITION_HUGE || \
(P) == PARTITION_IFS || \
(P) == PARTITION_FAT32 || \
(P) == PARTITION_FAT32_XINT13 || \
(P) == PARTITION_XINT13 || \
(P) == PARTITION_EXT2)
#define IsContainerPartition(P) \
((P) == PARTITION_EXTENDED || \
(P) == PARTITION_XINT13_EXTENDED)
typedef enum _MEDIA_TYPE
{
Unknown,
F5_1Pt2_512,
F3_1Pt44_512,
F3_2Pt88_512,
F3_20Pt8_512,
F3_720_512,
F5_360_512,
F5_320_512,
F5_320_1024,
F5_180_512,
F5_160_512,
RemovableMedia,
FixedMedia
} MEDIA_TYPE;
typedef struct _PARTITION_INFORMATION
{
LARGE_INTEGER StartingOffset;
LARGE_INTEGER PartitionLength;
DWORD HiddenSectors;
DWORD PartitionNumber;
BYTE PartitionType;
BOOLEAN BootIndicator;
BOOLEAN RecognizedPartition;
BOOLEAN RewritePartition;
} PARTITION_INFORMATION, *PPARTITION_INFORMATION;
typedef struct _SET_PARTITION_INFORMATION
{
ULONG PartitionType;
} SET_PARTITION_INFORMATION, *PSET_PARTITION_INFORMATION;
typedef struct _DISK_GEOMETRY
{
LARGE_INTEGER Cylinders;
MEDIA_TYPE MediaType;
DWORD TracksPerCylinder;
DWORD SectorsPerTrack;
DWORD BytesPerSector;
} DISK_GEOMETRY, *PDISK_GEOMETRY;
typedef struct _DRIVE_LAYOUT_INFORMATION
{
DWORD PartitionCount;
DWORD Signature;
PARTITION_INFORMATION PartitionEntry[1];
} DRIVE_LAYOUT_INFORMATION;
typedef DRIVE_LAYOUT_INFORMATION *PDRIVE_LAYOUT_INFORMATION;
#endif
#endif /* __INCLUDE_DISK_H */
/* EOF */

View file

@ -1,168 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/except.h
* PURPOSE: Exception handling structures
* PROGRAMMER: Casper S. Hornstrup <chorns@users.sourceforge.net>
*/
#ifndef __INCLUDE_EXCEPT_H
#define __INCLUDE_EXCEPT_H
typedef enum {
ExceptionContinueExecution = 0,
ExceptionContinueSearch,
ExceptionNestedException,
ExceptionCollidedUnwind,
ExceptionDismiss = 0 /* assuming this is the same thing as DISPOSITION_DISMISS */
} EXCEPTION_DISPOSITION;
struct _EXCEPTION_RECORD;
struct _EXCEPTION_REGISTRATION;
/*
* The type of function that is expected as an exception handler to be
* installed with _try1.
*/
#ifdef __GNUC__
typedef EXCEPTION_DISPOSITION (CDECL *PEXCEPTION_HANDLER)(
struct _EXCEPTION_RECORD* ExceptionRecord,
struct _EXCEPTION_REGISTRATION* ExceptionRegistration,
PCONTEXT Context,
PVOID DispatcherContext);
#else
typedef EXCEPTION_DISPOSITION (CDECL *PEXCEPTION_HANDLER)(
struct _EXCEPTION_RECORD* ExceptionRecord,
struct _EXCEPTION_REGISTRATION* ExceptionRegistration,
PCONTEXT Context,
PVOID DispatcherContext);
#endif /*__GNUC__*/
#ifndef __USE_W32API
#define EXCEPTION_MAXIMUM_PARAMETERS (15)
typedef struct _EXCEPTION_RECORD {
DWORD ExceptionCode;
DWORD ExceptionFlags;
struct _EXCEPTION_RECORD *ExceptionRecord;
PVOID ExceptionAddress;
DWORD NumberParameters;
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD, *PEXCEPTION_RECORD, *LPEXCEPTION_RECORD;
#endif /* !__USE_W32API */
/* ExceptionFlags */
#ifndef _GNU_H_WINDOWS32_DEFINES
#ifdef __NTOSKRNL__
#ifndef EXCEPTION_NONCONTINUABLE
#define EXCEPTION_NONCONTINUABLE 0x01
#endif
#endif /* __NTOSKRNL__ */
#endif /* _GNU_H_WINDOWS32_DEFINES */
#define EXCEPTION_UNWINDING 0x02
#define EXCEPTION_EXIT_UNWIND 0x04
#define EXCEPTION_STACK_INVALID 0x08
#define EXCEPTION_NESTED_CALL 0x10
typedef struct _EXCEPTION_REGISTRATION
{
struct _EXCEPTION_REGISTRATION* prev;
PEXCEPTION_HANDLER handler;
} EXCEPTION_REGISTRATION, *PEXCEPTION_REGISTRATION;
typedef EXCEPTION_REGISTRATION EXCEPTION_REGISTRATION_RECORD;
typedef PEXCEPTION_REGISTRATION PEXCEPTION_REGISTRATION_RECORD;
/*
* A macro which installs the supplied exception handler.
* Push the pointer to the new handler onto the stack,
* then push the pointer to the old registration structure (at fs:0)
* onto the stack, then put a pointer to the new registration
* structure (i.e. the current stack pointer) at fs:0.
*/
#define __try1(pHandler) \
__asm__ ("pushl %0;pushl %%fs:0;movl %%esp,%%fs:0;" : : "g" (pHandler));
/*
* A macro which (dispite its name) *removes* an installed
* exception handler. Should be used only in conjunction with the above
* install routine __try1.
* Move the pointer to the old reg. struct (at the current stack
* position) to fs:0, replacing the pointer we installed above,
* then add 8 to the stack pointer to get rid of the space we
* used when we pushed on our new reg. struct above. Notice that
* the stack must be in the exact state at this point that it was
* after we did _try1 or this will smash things.
*/
#define __except1 \
__asm__ ("movl (%%esp),%%eax;movl %%eax,%%fs:0;addl $8,%%esp;" \
: : : "%eax");
#if 1
/* Runtime DLL structures */
#ifndef _GNU_H_WINDOWS32_DEFINES
#ifdef __NTOSKRNL__
#define EXCEPTION_EXECUTE_HANDLER 1
#define EXCEPTION_CONTINUE_SEARCH 0
/* #define EXCEPTION_CONTINUE_EXECUTION -1 */
#endif /* __NTOSKRNL__ */
#endif /* _GNU_H_WINDOWS32_DEFINES */
/* Functions of the following prototype return one of the above constants */
#ifdef __GNUC__
typedef DWORD CDECL (*PSCOPE_EXCEPTION_FILTER)(VOID);
typedef VOID CDECL (*PSCOPE_EXCEPTION_HANDLER)(VOID);
#else
typedef DWORD (CDECL *PSCOPE_EXCEPTION_FILTER)(VOID);
typedef VOID (CDECL *PSCOPE_EXCEPTION_HANDLER)(VOID);
#endif /*__GNUC__*/
typedef struct _SCOPETABLE_ENTRY
{
DWORD PreviousTryLevel;
PSCOPE_EXCEPTION_FILTER FilterRoutine;
PSCOPE_EXCEPTION_HANDLER HandlerRoutine;
} SCOPETABLE_ENTRY, *PSCOPETABLE_ENTRY;
/*
Other structures preceeding this structure:
ULONG_PTR StandardESPInFrame;
LPEXCEPTION_POINTERS ExceptionPointers;
*/
typedef struct _RTL_EXCEPTION_REGISTRATION_I386
{
EXCEPTION_REGISTRATION OS;
PSCOPETABLE_ENTRY ScopeTable;
DWORD TryLevel;
/* Value of EBP before the EXCEPTION_REGISTRATION was created */
ULONG_PTR Ebp;
} RTL_EXCEPTION_REGISTRATION_I386, *PRTL_EXCEPTION_REGISTRATION_I386;
#define TRYLEVEL_NONE -1
typedef RTL_EXCEPTION_REGISTRATION_I386 RTL_EXCEPTION_REGISTRATION;
typedef PRTL_EXCEPTION_REGISTRATION_I386 PRTL_EXCEPTION_REGISTRATION;
#endif
#ifndef __USE_W32API
#define EXCEPTION_MAXIMUM_PARAMETERS (15)
typedef struct _EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord;
} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS, *LPEXCEPTION_POINTERS;
#endif /* !__USE_W32API */
#endif /* __INCLUDE_EXCEPT_H */

View file

@ -1,117 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ps.h
* PURPOSE: Filesystem declarations used by all the parts of the
* system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_FILE_H
#define __INCLUDE_FILE_H
#ifndef __USE_W32API
#define FILE_READ_DATA ( 0x0001 ) /* file & pipe */
#define FILE_LIST_DIRECTORY ( 0x0001 ) /* directory */
#define FILE_WRITE_DATA ( 0x0002 ) /* file & pipe */
#define FILE_ADD_FILE ( 0x0002 ) /* directory */
#define FILE_APPEND_DATA ( 0x0004 ) /* file */
#define FILE_ADD_SUBDIRECTORY ( 0x0004 ) /* directory */
#define FILE_CREATE_PIPE_INSTANCE ( 0x0004 ) /* named pipe */
#define FILE_READ_EA ( 0x0008 ) /* file & directory */
#define FILE_READ_PROPERTIES FILE_READ_EA
#define FILE_WRITE_EA ( 0x0010 ) /* file & directory */
#define FILE_WRITE_PROPERTIES FILE_WRITE_EA
#define FILE_EXECUTE ( 0x0020 ) /* file */
#define FILE_TRAVERSE ( 0x0020 ) /* directory */
#define FILE_DELETE_CHILD ( 0x0040 ) /* directory */
#define FILE_READ_ATTRIBUTES ( 0x0080 ) /* all */
#define FILE_WRITE_ATTRIBUTES ( 0x0100 ) /* all */
#define FILE_SHARE_DELETE (4)
#define FILE_SHARE_READ (1)
#define FILE_SHARE_WRITE (2)
#define CONSOLE_TEXTMODE_BUFFER (1)
#define CREATE_NEW (1)
#define CREATE_ALWAYS (2)
#define OPEN_EXISTING (3)
#define OPEN_ALWAYS (4)
#define TRUNCATE_EXISTING (5)
#define FILE_ATTRIBUTE_ARCHIVE (32)
#define FILE_ATTRIBUTE_COMPRESSED (2048)
#define FILE_ATTRIBUTE_DEVICE (64)
#define FILE_ATTRIBUTE_NORMAL (128)
#define FILE_ATTRIBUTE_DIRECTORY (16)
#define FILE_ATTRIBUTE_ENCRYPTED (16384)
#define FILE_ATTRIBUTE_HIDDEN (2)
#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED (8192)
#define FILE_ATTRIBUTE_OFFLINE (4096)
#define FILE_ATTRIBUTE_READONLY (1)
#define FILE_ATTRIBUTE_REPARSE_POINT (1024)
#define FILE_ATTRIBUTE_SPARSE_FILE (512)
#define FILE_ATTRIBUTE_SYSTEM (4)
#define FILE_ATTRIBUTE_TEMPORARY (256)
#define FILE_ATTRIBUTE_VALID_FLAGS (0x00007fb7)
#define FILE_ATTRIBUTE_VALID_SET_FLAGS (0x000031a7)
#define FILE_FLAG_WRITE_THROUGH (0x80000000)
#define FILE_FLAG_OVERLAPPED (0x40000000)
#define FILE_FLAG_NO_BUFFERING (0x20000000)
#define FILE_FLAG_RANDOM_ACCESS (0x10000000)
#define FILE_FLAG_SEQUENTIAL_SCAN (0x08000000)
#define FILE_FLAG_DELETE_ON_CLOSE (0x04000000)
#define FILE_FLAG_BACKUP_SEMANTICS (0x02000000)
#define FILE_FLAG_POSIX_SEMANTICS (0x01000000)
/* GetVolumeInformation */
#define FS_CASE_IS_PRESERVED (2)
#define FS_CASE_SENSITIVE (1)
#define FS_UNICODE_STORED_ON_DISK (4)
#define FS_PERSISTENT_ACLS (8)
#define FS_FILE_COMPRESSION (16)
#define FS_VOL_IS_COMPRESSED (32768)
/* NtQueryVolumeInformationFile */
#define FILE_CASE_SENSITIVE_SEARCH (0x00000001)
#define FILE_CASE_PRESERVED_NAMES (0x00000002)
#define FILE_UNICODE_ON_DISK (0x00000004)
#define FILE_PERSISTENT_ACLS (0x00000008)
#define FILE_FILE_COMPRESSION (0x00000010)
#define FILE_VOLUME_IS_COMPRESSED (0x00008000)
#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
#define FILE_GENERIC_READ (STANDARD_RIGHTS_READ |\
FILE_READ_DATA |\
FILE_READ_ATTRIBUTES |\
FILE_READ_EA |\
SYNCHRONIZE)
#define FILE_GENERIC_WRITE (STANDARD_RIGHTS_WRITE |\
FILE_WRITE_DATA |\
FILE_WRITE_ATTRIBUTES |\
FILE_WRITE_EA |\
FILE_APPEND_DATA |\
SYNCHRONIZE)
#define FILE_GENERIC_EXECUTE (STANDARD_RIGHTS_EXECUTE |\
FILE_READ_ATTRIBUTES |\
FILE_EXECUTE |\
SYNCHRONIZE)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_FILE_H */

View file

@ -1,48 +0,0 @@
#ifndef __INCLUDE_NTOS_FSTYPES_H
#define __INCLUDE_NTOS_FSTYPES_H
#define FSRTL_TAG TAG('F','S','r','t')
typedef ULONG LBN;
typedef LBN *PLBN;
typedef ULONG VBN;
typedef VBN *PVBN;
#ifndef __USE_W32API
typedef struct _LARGE_MCB
{
PFAST_MUTEX FastMutex;
ULONG MaximumPairCount;
ULONG PairCount;
POOL_TYPE PoolType;
PVOID Mapping;
} LARGE_MCB, *PLARGE_MCB;
typedef struct _MCB {
LARGE_MCB LargeMcb;
} MCB, *PMCB;
#endif
typedef struct _MAILSLOT_CREATE_PARAMETERS
{
ULONG MailslotQuota;
ULONG MaximumMessageSize;
LARGE_INTEGER ReadTimeout;
BOOLEAN TimeoutSpecified;
} MAILSLOT_CREATE_PARAMETERS, *PMAILSLOT_CREATE_PARAMETERS;
typedef struct _NAMED_PIPE_CREATE_PARAMETERS
{
ULONG NamedPipeType;
ULONG ReadMode;
ULONG CompletionMode;
ULONG MaximumInstances;
ULONG InboundQuota;
ULONG OutboundQuota;
LARGE_INTEGER DefaultTimeout;
BOOLEAN TimeoutSpecified;
} NAMED_PIPE_CREATE_PARAMETERS, *PNAMED_PIPE_CREATE_PARAMETERS;
#endif /* __INCLUDE_DDK_FSTYPES_H */

View file

@ -1,145 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/gditypes.h
* PURPOSE: Common GDI definitions
* PROGRAMMER: Eric Kohl <ekohl@rz-online.de>
* UPDATE HISTORY:
* 25/06/2001: Created
*/
#ifndef __INCLUDE_NTOS_GDITYPES_H
#define __INCLUDE_NTOS_GDITYPES_H
#ifndef __USE_W32API
#define CCHDEVICENAME (32)
#define CCHFORMNAME (32)
typedef struct _devicemodeA
{
BYTE dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
union
{
struct
{
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
};
struct
{
LONG x;
LONG y;
} dmPosition;
};
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
BYTE dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union
{
DWORD dmDisplayFlags;
DWORD dmNup;
};
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
union
{
DWORD dmICCManufacturer;
DWORD dmReserved1;
};
union
{
DWORD dmICCModel;
DWORD dmReserved2;
};
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} DEVMODEA,*LPDEVMODEA,*PDEVMODEA;
typedef struct _devicemodeW
{
WCHAR dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion;
WORD dmDriverVersion;
WORD dmSize;
WORD dmDriverExtra;
DWORD dmFields;
union
{
struct
{
short dmOrientation;
short dmPaperSize;
short dmPaperLength;
short dmPaperWidth;
};
struct
{
LONG x;
LONG y;
} dmPosition;
};
short dmScale;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
short dmColor;
short dmDuplex;
short dmYResolution;
short dmTTOption;
short dmCollate;
WCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
union
{
DWORD dmDisplayFlags;
DWORD dmNup;
};
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmMediaType;
DWORD dmDitherType;
union
{
DWORD dmICCManufacturer;
DWORD dmReserved1;
};
union
{
DWORD dmICCModel;
DWORD dmReserved2;
};
DWORD dmPanningWidth;
DWORD dmPanningHeight;
} DEVMODEW,*LPDEVMODEW,*PDEVMODEW;
#endif /* !__USE_W32API */
#endif /* __INCLUDE_NTOS_GDITYPES_H */
/* EOF */

View file

@ -1,141 +0,0 @@
#ifndef __INCLUDE_NTOS_HALFUNCS_H
#define __INCLUDE_NTOS_HALFUNCS_H
#include <ntos/haltypes.h>
NTSTATUS STDCALL
HalAdjustResourceList(PCM_RESOURCE_LIST Resources);
BOOLEAN STDCALL
HalAllProcessorsStarted(VOID);
VOID
STDCALL
HalDisplayString (
IN PCHAR String
);
BOOLEAN STDCALL
HalBeginSystemInterrupt(ULONG Vector,
KIRQL Irql,
PKIRQL OldIrql);
VOID STDCALL
HalCalibratePerformanceCounter(ULONG Count);
BOOLEAN STDCALL
HalDisableSystemInterrupt(ULONG Vector,
KIRQL Irql);
VOID STDCALL
HalDisplayString(IN PCH String);
BOOLEAN STDCALL
HalEnableSystemInterrupt(ULONG Vector,
KIRQL Irql,
KINTERRUPT_MODE InterruptMode);
VOID STDCALL
HalEndSystemInterrupt(KIRQL Irql,
ULONG Unknown2);
BOOLEAN STDCALL
HalFlushCommonBuffer(ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4,
ULONG Unknown5,
ULONG Unknown6,
ULONG Unknown7,
ULONG Unknown8);
BOOLEAN STDCALL
HalGetEnvironmentVariable(IN PCH Name,
OUT PCH Value,
IN USHORT ValueLength);
VOID STDCALL
HalInitializeProcessor(ULONG ProcessorNumber,
PVOID ProcessorStack);
BOOLEAN STDCALL
HalInitSystem(ULONG BootPhase,
PLOADER_PARAMETER_BLOCK LoaderBlock);
VOID STDCALL
HalQueryDisplayParameters(PULONG DispSizeX,
PULONG DispSizeY,
PULONG CursorPosX,
PULONG CursorPosY);
VOID STDCALL
HalQueryRealTimeClock(PTIME_FIELDS Time);
VOID STDCALL
HalReportResourceUsage(VOID);
VOID STDCALL
HalRequestIpi(ULONG Unknown);
VOID STDCALL
HalSetDisplayParameters(ULONG CursorPosX,
ULONG CursorPosY);
BOOLEAN STDCALL
HalSetEnvironmentVariable(IN PCH Name,
IN PCH Value);
ULONG FASTCALL
HalSystemVectorDispatchEntry(ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3);
BOOLEAN STDCALL
HalStartNextProcessor(ULONG Unknown1,
ULONG Unknown2);
VOID
STDCALL
IoAssignDriveLetters(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
IN PSTRING NtDeviceName,
OUT PUCHAR NtSystemPath,
OUT PSTRING NtSystemPathString);
KIRQL
STDCALL
KeRaiseIrqlToSynchLevel(VOID);
VOID STDCALL
HalReturnToFirmware(ULONG Action);
VOID FASTCALL
HalRequestSoftwareInterrupt(KIRQL SoftwareInterruptRequested);
/*
* Kernel debugger support functions
*/
BOOLEAN STDCALL
KdPortInitialize(PKD_PORT_INFORMATION PortInformation,
DWORD Unknown1,
DWORD Unknown2);
BOOLEAN STDCALL
KdPortGetByte(PUCHAR ByteRecieved);
BOOLEAN STDCALL
KdPortPollByte(PUCHAR ByteRecieved);
VOID STDCALL
KdPortPutByte(UCHAR ByteToSend);
/* Non-standard functions */
VOID STDCALL
HalReleaseDisplayOwnership();
BOOLEAN STDCALL
HalQueryDisplayOwnership();
#endif /* __INCLUDE_NTOS_HALDDK_H */
/* EOF */

View file

@ -1,685 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ddk/haltypes.h
* PURPOSE: HAL provided defintions for device drivers
* PROGRAMMER: David Welch (welch@mcmail.com)
* REVISION HISTORY:
* 23/06/98: Taken from linux system.h
*/
#ifndef __INCLUDE_NTOS_HALTYPES_H
#define __INCLUDE_NTOS_HALTYPES_H
#ifndef STDCALL_FUNC
#define STDCALL_FUNC(a) (STDCALL a)
#endif
#ifndef FASTCALL_FUNC
#define FASTCALL_FUNC(a) (FASTCALL a)
#endif
#include "types.h"
/* HalReturnToFirmware */
typedef enum _FIRMWARE_ENTRY
{
HalHaltRoutine,
HalPowerDownRoutine,
HalRestartRoutine,
HalRebootRoutine,
HalInteractiveModeRoutine,
HalMaximumRoutine
} FIRMWARE_REENTRY, *PFIRMWARE_REENTRY;
#ifndef __USE_W32API
enum
{
DEVICE_DESCRIPTION_VERSION,
DEVICE_DESCRIPTION_VERSION1,
};
/*
* DMA speed specifiers
*/
typedef enum _DMA_SPEED
{
Compatible,
TypeA,
TypeB,
TypeC,
TypeF,
MaximumDmaSpeed
} DMA_SPEED, *PDMA_SPEED;
/*
* DMA width specifiers
*/
typedef enum _DMA_WIDTH
{
Width8Bits,
Width16Bits,
Width32Bits,
MaximumDmaWidth
} DMA_WIDTH, *PDMA_WIDTH;
/*
* PURPOSE: Types for HalGetBusData
*/
typedef enum _BUS_DATA_TYPE
{
ConfigurationSpaceUndefined = -1,
Cmos,
EisaConfiguration,
Pos,
CbusConfiguration,
PCIConfiguration,
VMEConfiguration,
NuBusConfiguration,
PCMCIAConfiguration,
MPIConfiguration,
MPSAConfiguration,
PNPISAConfiguration,
MaximumBusDataType,
} BUS_DATA_TYPE, *PBUS_DATA_TYPE;
typedef struct _DEVICE_DESCRIPTION
{
ULONG Version;
BOOLEAN Master;
BOOLEAN ScatterGather;
BOOLEAN DemandMode;
BOOLEAN AutoInitialize;
BOOLEAN Dma32BitAddresses;
BOOLEAN IgnoreCount;
BOOLEAN Reserved1; /* Must be false */
BOOLEAN Dma64BitAddresses;
ULONG BusNumber;
ULONG DmaChannel;
INTERFACE_TYPE InterfaceType;
DMA_WIDTH DmaWidth;
DMA_SPEED DmaSpeed;
ULONG MaximumLength;
ULONG DmaPort;
} DEVICE_DESCRIPTION, *PDEVICE_DESCRIPTION;
/* PCI bus definitions */
#define PCI_TYPE0_ADDRESSES 6
#define PCI_TYPE1_ADDRESSES 2
#define PCI_TYPE2_ADDRESSES 5
typedef struct _PCI_COMMON_CONFIG
{
USHORT VendorID; /* read-only */
USHORT DeviceID; /* read-only */
USHORT Command;
USHORT Status;
UCHAR RevisionID; /* read-only */
UCHAR ProgIf; /* read-only */
UCHAR SubClass; /* read-only */
UCHAR BaseClass; /* read-only */
UCHAR CacheLineSize; /* read-only */
UCHAR LatencyTimer; /* read-only */
UCHAR HeaderType; /* read-only */
UCHAR BIST;
union
{
struct _PCI_HEADER_TYPE_0
{
ULONG BaseAddresses[PCI_TYPE0_ADDRESSES];
ULONG CIS;
USHORT SubVendorID;
USHORT SubSystemID;
ULONG ROMBaseAddress;
ULONG Reserved2[2];
UCHAR InterruptLine;
UCHAR InterruptPin; /* read-only */
UCHAR MinimumGrant; /* read-only */
UCHAR MaximumLatency; /* read-only */
} type0;
/* PCI to PCI Bridge */
struct _PCI_HEADER_TYPE_1
{
ULONG BaseAddresses[PCI_TYPE1_ADDRESSES];
UCHAR PrimaryBus;
UCHAR SecondaryBus;
UCHAR SubordinateBus;
UCHAR SecondaryLatency;
UCHAR IOBase;
UCHAR IOLimit;
USHORT SecondaryStatus;
USHORT MemoryBase;
USHORT MemoryLimit;
USHORT PrefetchBase;
USHORT PrefetchLimit;
ULONG PrefetchBaseUpper32;
ULONG PrefetchLimitUpper32;
USHORT IOBaseUpper16;
USHORT IOLimitUpper16;
UCHAR CapabilitiesPtr;
UCHAR Reserved1[3];
ULONG ROMBaseAddress;
UCHAR InterruptLine;
UCHAR InterruptPin;
USHORT BridgeControl;
} type1;
/* PCI to CARDBUS Bridge */
struct _PCI_HEADER_TYPE_2
{
ULONG SocketRegistersBaseAddress;
UCHAR CapabilitiesPtr;
UCHAR Reserved;
USHORT SecondaryStatus;
UCHAR PrimaryBus;
UCHAR SecondaryBus;
UCHAR SubordinateBus;
UCHAR SecondaryLatency;
struct
{
ULONG Base;
ULONG Limit;
} Range[PCI_TYPE2_ADDRESSES-1];
UCHAR InterruptLine;
UCHAR InterruptPin;
USHORT BridgeControl;
} type2;
} u;
UCHAR DeviceSpecific[192];
} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET (PCI_COMMON_CONFIG, DeviceSpecific))
#define PCI_MAX_DEVICES 32
#define PCI_MAX_FUNCTION 8
#define PCI_MAX_BRIDGE_NUMBER 0xFF
#define PCI_INVALID_VENDORID 0xFFFF
/* Bit encodings for PCI_COMMON_CONFIG.HeaderType */
#define PCI_MULTIFUNCTION 0x80
#define PCI_DEVICE_TYPE 0x00
#define PCI_BRIDGE_TYPE 0x01
#define PCI_CARDBUS_BRIDGE_TYPE 0x02
#define PCI_CONFIGURATION_TYPE(PciData) \
(((PPCI_COMMON_CONFIG)(PciData))->HeaderType & ~PCI_MULTIFUNCTION)
#define PCI_MULTIFUNCTION_DEVICE(PciData) \
((((PPCI_COMMON_CONFIG)(PciData))->HeaderType & PCI_MULTIFUNCTION) != 0)
/* Bit encodings for PCI_COMMON_CONFIG.Command */
#define PCI_ENABLE_IO_SPACE 0x0001
#define PCI_ENABLE_MEMORY_SPACE 0x0002
#define PCI_ENABLE_BUS_MASTER 0x0004
#define PCI_ENABLE_SPECIAL_CYCLES 0x0008
#define PCI_ENABLE_WRITE_AND_INVALIDATE 0x0010
#define PCI_ENABLE_VGA_COMPATIBLE_PALETTE 0x0020
#define PCI_ENABLE_PARITY 0x0040
#define PCI_ENABLE_WAIT_CYCLE 0x0080
#define PCI_ENABLE_SERR 0x0100
#define PCI_ENABLE_FAST_BACK_TO_BACK 0x0200
/* Bit encodings for PCI_COMMON_CONFIG.Status */
#define PCI_STATUS_FAST_BACK_TO_BACK 0x0080
#define PCI_STATUS_DATA_PARITY_DETECTED 0x0100
#define PCI_STATUS_DEVSEL 0x0600 /* 2 bits wide */
#define PCI_STATUS_SIGNALED_TARGET_ABORT 0x0800
#define PCI_STATUS_RECEIVED_TARGET_ABORT 0x1000
#define PCI_STATUS_RECEIVED_MASTER_ABORT 0x2000
#define PCI_STATUS_SIGNALED_SYSTEM_ERROR 0x4000
#define PCI_STATUS_DETECTED_PARITY_ERROR 0x8000
/* PCI device classes */
#define PCI_CLASS_PRE_20 0x00
#define PCI_CLASS_MASS_STORAGE_CTLR 0x01
#define PCI_CLASS_NETWORK_CTLR 0x02
#define PCI_CLASS_DISPLAY_CTLR 0x03
#define PCI_CLASS_MULTIMEDIA_DEV 0x04
#define PCI_CLASS_MEMORY_CTLR 0x05
#define PCI_CLASS_BRIDGE_DEV 0x06
#define PCI_CLASS_SIMPLE_COMMS_CTLR 0x07
#define PCI_CLASS_BASE_SYSTEM_DEV 0x08
#define PCI_CLASS_INPUT_DEV 0x09
#define PCI_CLASS_DOCKING_STATION 0x0a
#define PCI_CLASS_PROCESSOR 0x0b
#define PCI_CLASS_SERIAL_BUS_CTLR 0x0c
/* PCI device subclasses for class 0 */
#define PCI_SUBCLASS_PRE_20_NON_VGA 0x00
#define PCI_SUBCLASS_PRE_20_VGA 0x01
/* PCI device subclasses for class 1 (mass storage controllers)*/
#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR 0x00
#define PCI_SUBCLASS_MSC_IDE_CTLR 0x01
#define PCI_SUBCLASS_MSC_FLOPPY_CTLR 0x02
#define PCI_SUBCLASS_MSC_IPI_CTLR 0x03
#define PCI_SUBCLASS_MSC_RAID_CTLR 0x04
#define PCI_SUBCLASS_MSC_OTHER 0x80
/* PCI device subclasses for class 2 (network controllers)*/
#define PCI_SUBCLASS_NET_ETHERNET_CTLR 0x00
#define PCI_SUBCLASS_NET_TOKEN_RING_CTLR 0x01
#define PCI_SUBCLASS_NET_FDDI_CTLR 0x02
#define PCI_SUBCLASS_NET_ATM_CTLR 0x03
#define PCI_SUBCLASS_NET_OTHER 0x80
/* PCI device subclasses for class 3 (display controllers)*/
#define PCI_SUBCLASS_VID_VGA_CTLR 0x00
#define PCI_SUBCLASS_VID_XGA_CTLR 0x01
#define PCI_SUBLCASS_VID_3D_CTLR 0x02
#define PCI_SUBCLASS_VID_OTHER 0x80
/* PCI device subclasses for class 4 (multimedia device)*/
#define PCI_SUBCLASS_MM_VIDEO_DEV 0x00
#define PCI_SUBCLASS_MM_AUDIO_DEV 0x01
#define PCI_SUBCLASS_MM_TELEPHONY_DEV 0x02
#define PCI_SUBCLASS_MM_OTHER 0x80
/* PCI device subclasses for class 5 (memory controller)*/
#define PCI_SUBCLASS_MEM_RAM 0x00
#define PCI_SUBCLASS_MEM_FLASH 0x01
#define PCI_SUBCLASS_MEM_OTHER 0x80
/* PCI device subclasses for class 6 (bridge device)*/
#define PCI_SUBCLASS_BR_HOST 0x00
#define PCI_SUBCLASS_BR_ISA 0x01
#define PCI_SUBCLASS_BR_EISA 0x02
#define PCI_SUBCLASS_BR_MCA 0x03
#define PCI_SUBCLASS_BR_PCI_TO_PCI 0x04
#define PCI_SUBCLASS_BR_PCMCIA 0x05
#define PCI_SUBCLASS_BR_NUBUS 0x06
#define PCI_SUBCLASS_BR_CARDBUS 0x07
#define PCI_SUBCLASS_BR_OTHER 0x80
/* PCI device subclasses for class C (serial bus controller)*/
#define PCI_SUBCLASS_SB_IEEE1394 0x00
#define PCI_SUBCLASS_SB_ACCESS 0x01
#define PCI_SUBCLASS_SB_SSA 0x02
#define PCI_SUBCLASS_SB_USB 0x03
#define PCI_SUBCLASS_SB_FIBRE_CHANNEL 0x04
/* Bit encodes for PCI_COMMON_CONFIG.u.type0.BaseAddresses */
#define PCI_ADDRESS_IO_SPACE 0x00000001
#define PCI_ADDRESS_MEMORY_TYPE_MASK 0x00000006
#define PCI_ADDRESS_MEMORY_PREFETCHABLE 0x00000008
#define PCI_ADDRESS_IO_ADDRESS_MASK 0xfffffffc
#define PCI_ADDRESS_MEMORY_ADDRESS_MASK 0xfffffff0
#define PCI_ADDRESS_ROM_ADDRESS_MASK 0xfffff800
#define PCI_TYPE_32BIT 0
#define PCI_TYPE_20BIT 2
#define PCI_TYPE_64BIT 4
/* Bit encodes for PCI_COMMON_CONFIG.u.type0.ROMBaseAddresses */
#define PCI_ROMADDRESS_ENABLED 0x00000001
typedef struct _PCI_SLOT_NUMBER
{
union
{
struct
{
ULONG DeviceNumber:5;
ULONG FunctionNumber:3;
ULONG Reserved:24;
} bits;
ULONG AsULONG;
} u;
} PCI_SLOT_NUMBER, *PPCI_SLOT_NUMBER;
typedef enum _RESOURCE_TRANSLATION_DIRECTION {
TranslateChildToParent,
TranslateParentToChild
} RESOURCE_TRANSLATION_DIRECTION;
typedef NTSTATUS STDCALL_FUNC
(*PTRANSLATE_RESOURCE_HANDLER)(IN PVOID Context,
IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Source,
IN RESOURCE_TRANSLATION_DIRECTION Direction,
IN ULONG AlternativesCount, OPTIONAL
IN IO_RESOURCE_DESCRIPTOR Alternatives[], OPTIONAL
IN PDEVICE_OBJECT PhysicalDeviceObject,
OUT PCM_PARTIAL_RESOURCE_DESCRIPTOR Target
);
typedef NTSTATUS STDCALL_FUNC
(*PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER)(IN PVOID Context,
IN PIO_RESOURCE_DESCRIPTOR Source,
IN PDEVICE_OBJECT PhysicalDeviceObject,
OUT PULONG TargetCount,
OUT PIO_RESOURCE_DESCRIPTOR *Target);
typedef struct _TRANSLATOR_INTERFACE {
USHORT Size;
USHORT Version;
PVOID Context;
PINTERFACE_REFERENCE InterfaceReference;
PINTERFACE_DEREFERENCE InterfaceDereference;
PTRANSLATE_RESOURCE_HANDLER TranslateResources;
PTRANSLATE_RESOURCE_REQUIREMENTS_HANDLER TranslateResourceRequirements;
} TRANSLATOR_INTERFACE, *PTRANSLATOR_INTERFACE;
/* Hal dispatch table */
typedef enum _HAL_QUERY_INFORMATION_CLASS
{
HalInstalledBusInformation,
HalProfileSourceInformation,
HalSystemDockInformation,
HalPowerInformation,
HalProcessorSpeedInformation,
HalCallbackInformation,
HalMapRegisterInformation,
HalMcaLogInformation,
HalFrameBufferCachingInformation,
HalDisplayBiosInformation
/* information levels >= 0x8000000 reserved for OEM use */
} HAL_QUERY_INFORMATION_CLASS, *PHAL_QUERY_INFORMATION_CLASS;
typedef enum _HAL_SET_INFORMATION_CLASS
{
HalProfileSourceInterval,
HalProfileSourceInterruptHandler,
HalMcaRegisterDriver
} HAL_SET_INFORMATION_CLASS, *PHAL_SET_INFORMATION_CLASS;
typedef struct _BUS_HANDLER *PBUS_HANDLER;
typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
typedef BOOLEAN STDCALL_FUNC
(*PHAL_RESET_DISPLAY_PARAMETERS)(ULONG Columns, ULONG Rows);
#endif /* __USE_W32API */
/* Control codes of HalDeviceControl function */
#define BCTL_EJECT 0x0001
#define BCTL_QUERY_DEVICE_ID 0x0002
#define BCTL_QUERY_DEVICE_UNIQUE_ID 0x0003
#define BCTL_QUERY_DEVICE_CAPABILITIES 0x0004
#define BCTL_QUERY_DEVICE_RESOURCES 0x0005
#define BCTL_QUERY_DEVICE_RESOURCE_REQUIREMENTS 0x0006
#define BCTL_QUERY_EJECT 0x0007
#define BCTL_SET_LOCK 0x0008
#define BCTL_SET_POWER 0x0009
#define BCTL_SET_RESUME 0x000A
#define BCTL_SET_DEVICE_RESOURCES 0x000B
/* Defines for BCTL structures */
typedef struct
{
BOOLEAN PowerSupported;
BOOLEAN ResumeSupported;
BOOLEAN LockSupported;
BOOLEAN EjectSupported;
BOOLEAN Removable;
} BCTL_DEVICE_CAPABILITIES, *PBCTL_DEVICE_CAPABILITIES;
#ifndef __USE_W32API
typedef struct _DEVICE_CONTROL_CONTEXT
{
NTSTATUS Status;
PDEVICE_HANDLER_OBJECT DeviceHandler;
PDEVICE_OBJECT DeviceObject;
ULONG ControlCode;
PVOID Buffer;
PULONG BufferLength;
PVOID Context;
} DEVICE_CONTROL_CONTEXT, *PDEVICE_CONTROL_CONTEXT;
typedef struct _PM_DISPATCH_TABLE {
ULONG Signature;
ULONG Version;
PVOID Function[1];
} PM_DISPATCH_TABLE, *PPM_DISPATCH_TABLE;
typedef VOID STDCALL_FUNC
(*PDEVICE_CONTROL_COMPLETION)(IN PDEVICE_CONTROL_CONTEXT ControlContext);
typedef NTSTATUS STDCALL_FUNC
(*pHalDeviceControl)(IN PDEVICE_HANDLER_OBJECT DeviceHandler,
IN PDEVICE_OBJECT DeviceObject,
IN ULONG ControlCode,
IN OUT PVOID Buffer OPTIONAL,
IN OUT PULONG BufferLength OPTIONAL,
IN PVOID Context,
IN PDEVICE_CONTROL_COMPLETION CompletionRoutine);
typedef VOID FASTCALL_FUNC
(*pHalExamineMBR)(IN PDEVICE_OBJECT DeviceObject,
IN ULONG SectorSize,
IN ULONG MBRTypeIdentifier,
OUT PVOID *Buffer);
typedef VOID FASTCALL_FUNC
(*pHalIoAssignDriveLetters)(IN struct _LOADER_PARAMETER_BLOCK *LoaderBlock,
IN PSTRING NtDeviceName,
OUT PUCHAR NtSystemPath,
OUT PSTRING NtSystemPathString);
typedef NTSTATUS FASTCALL_FUNC
(*pHalIoReadPartitionTable)(IN PDEVICE_OBJECT DeviceObject,
IN ULONG SectorSize,
IN BOOLEAN ReturnRecognizedPartitions,
OUT PDRIVE_LAYOUT_INFORMATION *PartitionBuffer);
typedef NTSTATUS FASTCALL_FUNC
(*pHalIoSetPartitionInformation)(IN PDEVICE_OBJECT DeviceObject,
IN ULONG SectorSize,
IN ULONG PartitionNumber,
IN ULONG PartitionType);
typedef NTSTATUS FASTCALL_FUNC
(*pHalIoWritePartitionTable)(IN PDEVICE_OBJECT DeviceObject,
IN ULONG SectorSize,
IN ULONG SectorsPerTrack,
IN ULONG NumberOfHeads,
IN PDRIVE_LAYOUT_INFORMATION PartitionBuffer);
typedef PBUS_HANDLER FASTCALL_FUNC
(*pHalHandlerForBus)(IN INTERFACE_TYPE InterfaceType,
IN ULONG BusNumber);
typedef VOID FASTCALL_FUNC
(*pHalReferenceBusHandler)(IN PBUS_HANDLER BusHandler);
typedef NTSTATUS STDCALL_FUNC
(*pHalQuerySystemInformation)(IN HAL_QUERY_INFORMATION_CLASS InformationClass,
IN ULONG BufferSize,
IN OUT PVOID Buffer,
OUT PULONG ReturnedLength);
typedef NTSTATUS STDCALL_FUNC
(*pHalSetSystemInformation)(IN HAL_SET_INFORMATION_CLASS InformationClass,
IN ULONG BufferSize,
IN PVOID Buffer);
typedef NTSTATUS STDCALL_FUNC
(*pHalQueryBusSlots)(IN PBUS_HANDLER BusHandler,
IN ULONG BufferSize,
OUT PULONG SlotNumbers,
OUT PULONG ReturnedLength);
typedef NTSTATUS STDCALL_FUNC
(*pHalInitPnpDriver)(VOID);
typedef NTSTATUS STDCALL_FUNC
(*pHalInitPowerManagement)(IN PPM_DISPATCH_TABLE PmDriverDispatchTable,
OUT PPM_DISPATCH_TABLE *PmHalDispatchTable);
typedef struct _DMA_ADAPTER * STDCALL_FUNC
(*pHalGetDmaAdapter)(IN PVOID Context,
IN struct _DEVICE_DESCRIPTION *DeviceDescriptor,
OUT PULONG NumberOfMapRegisters);
typedef NTSTATUS STDCALL_FUNC
(*pHalGetInterruptTranslator)(IN INTERFACE_TYPE ParentInterfaceType,
IN ULONG ParentBusNumber,
IN INTERFACE_TYPE BridgeInterfaceType,
IN USHORT Size,
IN USHORT Version,
OUT PTRANSLATOR_INTERFACE Translator,
OUT PULONG BridgeBusNumber);
typedef NTSTATUS STDCALL_FUNC
(*pHalStartMirroring)(VOID);
typedef NTSTATUS STDCALL_FUNC
(*pHalEndMirroring)(IN ULONG PassNumber);
typedef NTSTATUS STDCALL_FUNC
(*pHalMirrorPhysicalMemory)(IN PHYSICAL_ADDRESS PhysicalAddress,
IN LARGE_INTEGER NumberOfBytes);
typedef NTSTATUS STDCALL_FUNC
(*pHalMirrorVerify)(IN PHYSICAL_ADDRESS PhysicalAddress,
IN LARGE_INTEGER NumberOfBytes);
typedef VOID STDCALL_FUNC
(*pHalEndOfBoot)(VOID);
typedef struct {
ULONG Version;
pHalQuerySystemInformation HalQuerySystemInformation;
pHalSetSystemInformation HalSetSystemInformation;
pHalQueryBusSlots HalQueryBusSlots;
ULONG Spare1;
pHalExamineMBR HalExamineMBR;
pHalIoAssignDriveLetters HalIoAssignDriveLetters;
pHalIoReadPartitionTable HalIoReadPartitionTable;
pHalIoSetPartitionInformation HalIoSetPartitionInformation;
pHalIoWritePartitionTable HalIoWritePartitionTable;
pHalHandlerForBus HalReferenceHandlerForBus;
pHalReferenceBusHandler HalReferenceBusHandler;
pHalReferenceBusHandler HalDereferenceBusHandler;
pHalInitPnpDriver HalInitPnpDriver;
pHalInitPowerManagement HalInitPowerManagement;
pHalGetDmaAdapter HalGetDmaAdapter;
pHalGetInterruptTranslator HalGetInterruptTranslator;
pHalStartMirroring HalStartMirroring;
pHalEndMirroring HalEndMirroring;
pHalMirrorPhysicalMemory HalMirrorPhysicalMemory;
pHalEndOfBoot HalEndOfBoot;
pHalMirrorVerify HalMirrorVerify;
} HAL_DISPATCH, *PHAL_DISPATCH;
#ifdef __NTOSKRNL__
extern HAL_DISPATCH EXPORTED HalDispatchTable;
#else
extern PHAL_DISPATCH IMPORTED HalDispatchTable;
#endif
#endif /* !__USE_W32API */
#ifndef __USE_W32API
#ifdef __NTOSKRNL__
#define HALDISPATCH (&HalDispatchTable)
#else
#define HALDISPATCH ((PHAL_DISPATCH)&HalDispatchTable)
#endif
#define HAL_DISPATCH_VERSION 3
#define HalDispatchTableVersion HALDISPATCH->Version
#define HalQuerySystemInformation HALDISPATCH->HalQuerySystemInformation
#define HalSetSystemInformation HALDISPATCH->HalSetSystemInformation
#define HalQueryBusSlots HALDISPATCH->HalQueryBusSlots
#define HalDeviceControl HALDISPATCH->HalDeviceControl
#define HalExamineMBR HALDISPATCH->HalExamineMBR
#define HalIoAssignDriveLetters HALDISPATCH->HalIoAssignDriveLetters
#define HalIoReadPartitionTable HALDISPATCH->HalIoReadPartitionTable
#define HalIoSetPartitionInformation HALDISPATCH->HalIoSetPartitionInformation
#define HalIoWritePartitionTable HALDISPATCH->HalIoWritePartitionTable
#define HalReferenceHandlerForBus HALDISPATCH->HalReferenceHandlerForBus
#define HalReferenceBusHandler HALDISPATCH->HalReferenceBusHandler
#define HalDereferenceBusHandler HALDISPATCH->HalDereferenceBusHandler
#endif /* !__USE_W32API */
/* Hal private dispatch table */
typedef struct _HAL_PRIVATE_DISPATCH
{
ULONG Version;
} HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
#ifdef __NTOSKRNL__
extern HAL_PRIVATE_DISPATCH EXPORTED HalPrivateDispatchTable;
#else
extern PHAL_PRIVATE_DISPATCH IMPORTED HalPrivateDispatchTable;
#endif
#define HAL_PRIVATE_DISPATCH_VERSION 1
/*
* Kernel debugger section
*/
typedef struct _KD_PORT_INFORMATION
{
ULONG ComPort;
ULONG BaudRate;
ULONG BaseAddress;
} KD_PORT_INFORMATION, *PKD_PORT_INFORMATION;
#ifdef __NTHAL__
extern ULONG EXPORTED KdComPortInUse;
#else
extern ULONG IMPORTED KdComPortInUse;
#endif
#endif /* __INCLUDE_DDK_HALTYPES_H */
/* EOF */

View file

@ -1,25 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/heap.h
* PURPOSE: Heap declarations used by all the parts of the
* system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_HEAP_H
#define __INCLUDE_HEAP_H
#ifndef __USE_W32API
#define HEAP_NO_SERIALIZE (1)
#define HEAP_GROWABLE (2)
#define HEAP_GENERATE_EXCEPTIONS (4)
#define HEAP_ZERO_MEMORY (8)
#define HEAP_REALLOC_IN_PLACE_ONLY (16)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_HEAP_H */

View file

@ -1,117 +0,0 @@
#ifndef __INCLUDE_DDK_KDFUNCS_H
#define __INCLUDE_DDK_KDFUNCS_H
/* $Id$ */
#ifndef __USE_W32API
#ifdef __GNUC__
#if defined(__NTOSKRNL__)
extern BOOLEAN KdDebuggerEnabled __declspec(dllexport);
extern BOOLEAN KdDebuggerNotPresent __declspec(dllexport);
#else
extern BOOLEAN KdDebuggerEnabled __declspec(dllimport);
extern BOOLEAN KdDebuggerNotPresent __declspec(dllimport);
#endif
#else /* __GNUC__ */
/* Microsft-style */
#if defined(__NTOSKRNL__)
extern __declspec(dllexport) BOOLEAN KdDebuggerEnabled;
extern __declspec(dllexport) BOOLEAN KdDebuggerNotPresent;
#else
extern __declspec(dllimport) BOOLEAN KdDebuggerEnabled;
extern __declspec(dllimport) BOOLEAN KdDebuggerNotPresent;
#endif
#endif /* __GNUC__ */
#endif /* __USE_W32API */
BYTE
STDCALL
KdPollBreakIn (
VOID
);
BOOLEAN
STDCALL
KdPortInitialize (
PKD_PORT_INFORMATION PortInformation,
DWORD Unknown1,
DWORD Unknown2
);
BOOLEAN
STDCALL
KdPortInitializeEx (
PKD_PORT_INFORMATION PortInformation,
DWORD Unknown1,
DWORD Unknown2
);
BOOLEAN
STDCALL
KdPortGetByte (
PUCHAR ByteRecieved
);
BOOLEAN
STDCALL
KdPortGetByteEx (
PKD_PORT_INFORMATION PortInformation,
PUCHAR ByteRecieved
);
BOOLEAN
STDCALL
KdPortPollByte (
PUCHAR ByteRecieved
);
BOOLEAN
STDCALL
KdPortPollByteEx (
PKD_PORT_INFORMATION PortInformation,
PUCHAR ByteRecieved
);
VOID
STDCALL
KdPortPutByte (
UCHAR ByteToSend
);
VOID
STDCALL
KdPortPutByteEx (
PKD_PORT_INFORMATION PortInformation,
UCHAR ByteToSend
);
VOID
STDCALL
KdPortRestore (
VOID
);
VOID
STDCALL
KdPortSave (
VOID
);
BOOLEAN
STDCALL
KdPortDisableInterrupts(
VOID
);
BOOLEAN
STDCALL
KdPortEnableInterrupts(
VOID
);
#endif /* __INCLUDE_DDK_KDFUNCS_H */

View file

@ -1,285 +0,0 @@
/*
This file was added by Andrew Greenwood. So, if it messes anything up,
you know who to call...
*/
#ifndef __INCLUDE_NTOS_KEFUNCS_H
#define __INCLUDE_NTOS_KEFUNCS_H
#define KEBUGCHECK(a) DbgPrint("KeBugCheck (0x%X) at %s:%i\n", a, __FILE__,__LINE__), KeBugCheck(a)
#define KEBUGCHECKEX(a,b,c,d,e) DbgPrint("KeBugCheckEx (0x%X, 0x%X, 0x%X, 0x%X, 0x%X) at %s:%i\n", a, b, c, d, e, __FILE__,__LINE__), KeBugCheckEx(a,b,c,d,e)
#include <arc/arc.h>
#ifdef __NTOSKRNL__
extern CHAR EXPORTED KeNumberProcessors;
extern LOADER_PARAMETER_BLOCK EXPORTED KeLoaderBlock;
extern ULONG EXPORTED KeDcacheFlushCount;
extern ULONG EXPORTED KeIcacheFlushCount;
extern KAFFINITY EXPORTED KeActiveProcessors;
extern ULONG EXPORTED KiDmaIoCoherency; /* RISC Architectures only */
extern ULONG EXPORTED KeMaximumIncrement;
extern ULONG EXPORTED KeMinimumIncrement;
#else
extern CHAR IMPORTED KeNumberProcessors;
extern KAFFINITY IMPORTED KeActiveProcessors;
extern LOADER_PARAMETER_BLOCK IMPORTED KeLoaderBlock;
extern ULONG EXPORTED KeDcacheFlushCount;
extern ULONG EXPORTED KeIcacheFlushCount;
extern ULONG IMPORTED KiDmaIoCoherency; /* RISC Architectures only */
extern ULONG IMPORTED KeMaximumIncrement;
extern ULONG IMPORTED KeMinimumIncrement;
#endif
/* io permission map has a 8k size
* Each bit in the IOPM corresponds to an io port byte address. The bitmap
* is initialized to allow IO at any port. [ all bits set ].
*/
typedef struct _IOPM
{
UCHAR Bitmap[8192];
} IOPM, *PIOPM;
typedef struct _CONFIGURATION_COMPONENT_DATA
{
struct _CONFIGURATION_COMPONENT_DATA *Parent;
struct _CONFIGURATION_COMPONENT_DATA *Child;
struct _CONFIGURATION_COMPONENT_DATA *Sibling;
CONFIGURATION_COMPONENT Component;
} CONFIGURATION_COMPONENT_DATA, *PCONFIGURATION_COMPONENT_DATA;
VOID STDCALL
KeCapturePersistentThreadState(
IN PVOID CurrentThread,
IN ULONG Setting1,
IN ULONG Setting2,
IN ULONG Setting3,
IN ULONG Setting4,
IN ULONG Setting5,
IN PVOID ThreadState);
BOOLEAN STDCALL
KeConnectInterrupt(
PKINTERRUPT InterruptObject);
BOOLEAN STDCALL
KeDisconnectInterrupt(
PKINTERRUPT InterruptObject);
VOID STDCALL
KeDrainApcQueue(
VOID);
VOID STDCALL
KeEnterKernelDebugger(
VOID);
PCONFIGURATION_COMPONENT_DATA STDCALL
KeFindConfigurationNextEntry(
IN PCONFIGURATION_COMPONENT_DATA Child,
IN CONFIGURATION_CLASS Class,
IN CONFIGURATION_TYPE Type,
IN PULONG ComponentKey OPTIONAL,
IN PCONFIGURATION_COMPONENT_DATA *NextLink);
PCONFIGURATION_COMPONENT_DATA STDCALL
KeFindConfigurationEntry(
IN PCONFIGURATION_COMPONENT_DATA Child,
IN CONFIGURATION_CLASS Class,
IN CONFIGURATION_TYPE Type,
IN PULONG ComponentKey OPTIONAL);
VOID STDCALL
KeFlushEntireTb(
IN BOOLEAN Unknown,
IN BOOLEAN CurrentCpuOnly);
struct _KPROCESS*
STDCALL
KeGetCurrentProcess(
VOID
);
VOID STDCALL
KeFlushWriteBuffer(
VOID);
VOID STDCALL
KeInitializeApc(
IN PKAPC Apc,
IN PKTHREAD Thread,
IN KAPC_ENVIRONMENT TargetEnvironment,
IN PKKERNEL_ROUTINE KernelRoutine,
IN PKRUNDOWN_ROUTINE RundownRoutine,
IN PKNORMAL_ROUTINE NormalRoutine,
IN KPROCESSOR_MODE Mode,
IN PVOID Context);
VOID STDCALL
KeInitializeInterrupt(
PKINTERRUPT InterruptObject,
PKSERVICE_ROUTINE ServiceRoutine,
PVOID ServiceContext,
PKSPIN_LOCK SpinLock,
ULONG Vector,
KIRQL Irql,
KIRQL SynchronizeIrql,
KINTERRUPT_MODE InterruptMode,
BOOLEAN ShareVector,
CHAR ProcessorNumber,
BOOLEAN FloatingSave);
BOOLEAN STDCALL
KeInsertQueueApc(
PKAPC Apc,
PVOID SystemArgument1,
PVOID SystemArgument2,
KPRIORITY PriorityBoost);
BOOLEAN STDCALL
KeIsAttachedProcess(
VOID);
BOOLEAN STDCALL
KeIsExecutingDpc(
VOID);
VOID STDCALL
KeRevertToUserAffinityThread(
VOID);
BOOLEAN STDCALL
KeRemoveSystemServiceTable(
IN ULONG TableIndex);
NTSTATUS STDCALL
KeSetAffinityThread(
PKTHREAD Thread,
KAFFINITY Affinity);
VOID STDCALL
KeSetDmaIoCoherency(
IN ULONG Coherency);
VOID STDCALL
KeSetEventBoostPriority(
IN PKEVENT Event,
IN PKTHREAD *Thread OPTIONAL);
VOID STDCALL
KeSetProfileIrql(
IN KIRQL ProfileIrql);
VOID STDCALL
KeSetSystemAffinityThread(
IN KAFFINITY Affinity);
VOID STDCALL
KeTerminateThread(
IN KPRIORITY Increment);
NTSTATUS STDCALL
KeUserModeCallback(
IN ULONG FunctionID,
IN PVOID InputBuffer,
IN ULONG InputLength,
OUT PVOID *OutputBuffer,
OUT PULONG OutputLength);
NTSTATUS STDCALL
KeRaiseUserException(
IN NTSTATUS ExceptionCode);
/*
* FUNCTION: Provides the kernel with a new access map for a driver
* ARGUMENTS:
* NewMap: = If FALSE the kernel's map is set to all disabled. If TRUE
* the kernel disables access to a particular port.
* IoPortMap = Caller supplies storage for the io permission map.
* REMARKS
* Each bit in the IOPM corresponds to an io port byte address. The bitmap
* is initialized to allow IO at any port. [ all bits set ]. The IOPL determines
* the minium privilege level required to perform IO prior to checking the permission map.
*/
BOOL STDCALL
Ke386SetIoAccessMap(
ULONG NewMap,
PULONG IoPermissionMap);
/*
* FUNCTION: Queries the io permission map.
* ARGUMENTS:
* NewMap: = If FALSE the kernel's map is set to all disabled. If TRUE
* the kernel disables access to a particular port.
* IoPortMap = Caller supplies storage for the io permission map.
* REMARKS
* Each bit in the IOPM corresponds to an io port byte address. The bitmap
* is initialized to allow IO at any port. [ all bits set ]. The IOPL determines
* the minium privilege level required to perform IO prior to checking the permission map.
*/
BOOL STDCALL
Ke386QueryIoAccessMap(
ULONG NewMap,
PULONG IoPermissionMap);
/* Set the process IOPL. */
BOOL STDCALL
Ke386IoSetAccessProcess(
struct _EPROCESS *Process,
BOOL EnableIo);
NTSTATUS STDCALL
KeI386FlatToGdtSelector(
IN ULONG Base,
IN USHORT Length,
IN USHORT Selector);
/* Releases a set of Global Descriptor Table Selectors. */
NTSTATUS STDCALL
KeI386ReleaseGdtSelectors(
OUT PULONG SelArray,
IN ULONG NumOfSelectors);
/* Allocates a set of Global Descriptor Table Selectors. */
NTSTATUS STDCALL
KeI386AllocateGdtSelectors(
OUT PULONG SelArray,
IN ULONG NumOfSelectors);
VOID FASTCALL
KiAcquireSpinLock(
PKSPIN_LOCK SpinLock);
VOID STDCALL
KiCoprocessorError(
VOID);
VOID STDCALL
KiDispatchInterrupt(
VOID);
NTSTATUS STDCALL
KeRaiseUserException(
IN NTSTATUS ExceptionCode);
VOID FASTCALL
KiReleaseSpinLock(
PKSPIN_LOCK SpinLock);
VOID STDCALL
KiUnexpectedInterrupt(
VOID);
/* REACTOS SPECIFIC */
VOID STDCALL
KeRosDumpStackFrames(
PULONG Frame,
ULONG FrameCount);
ULONG STDCALL
KeRosGetStackFrames(
PULONG Frames,
ULONG FrameCount);
#endif /* __INCLUDE_NTOS_KEFUNCS_H */

View file

@ -1,309 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/keyboard.h
* PURPOSE: Keyboard declarations used by all the parts of the
* system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_KEYBOARD_H
#define __INCLUDE_KEYBOARD_H
#include <ntos/types.h>
/* Virtual Key codes */
#define VK_0 (48)
#define VK_1 (49)
#define VK_2 (50)
#define VK_3 (51)
#define VK_4 (52)
#define VK_5 (53)
#define VK_6 (54)
#define VK_7 (55)
#define VK_8 (56)
#define VK_9 (57)
#define VK_A (65)
#define VK_B (66)
#define VK_C (67)
#define VK_D (68)
#define VK_E (69)
#define VK_F (70)
#define VK_G (71)
#define VK_H (72)
#define VK_I (73)
#define VK_J (74)
#define VK_K (75)
#define VK_L (76)
#define VK_M (77)
#define VK_N (78)
#define VK_O (79)
#define VK_P (80)
#define VK_Q (81)
#define VK_R (82)
#define VK_S (83)
#define VK_T (84)
#define VK_U (85)
#define VK_V (86)
#define VK_W (87)
#define VK_X (88)
#define VK_Y (89)
#define VK_Z (90)
#ifndef __USE_W32API
/* KEY_EVENT_RECORD structure */
#define CAPSLOCK_ON (128)
#define ENHANCED_KEY (256)
#define LEFT_ALT_PRESSED (2)
#define LEFT_CTRL_PRESSED (8)
#define NUMLOCK_ON (32)
#define RIGHT_ALT_PRESSED (1)
#define RIGHT_CTRL_PRESSED (4)
#define SCROLLLOCK_ON (64)
#define SHIFT_PRESSED (16)
/* MOUSE_EVENT_RECORD structure */
#define FROM_LEFT_1ST_BUTTON_PRESSED (1)
#define RIGHTMOST_BUTTON_PRESSED (2)
#define FROM_LEFT_2ND_BUTTON_PRESSED (4)
#define FROM_LEFT_3RD_BUTTON_PRESSED (8)
#define FROM_LEFT_4TH_BUTTON_PRESSED (16)
#define DOUBLE_CLICK (2)
#define MOUSE_MOVED (1)
/* INPUT_RECORD structure */
#define KEY_EVENT (1)
#define MOUSE_EVENT (2)
#define WINDOW_BUFFER_SIZE_EVENT (4)
#define MENU_EVENT (8)
#define FOCUS_EVENT (16)
#include <pshpack1.h>
typedef struct _KEY_EVENT_RECORD
{
BOOL bKeyDown;
WORD wRepeatCount;
WORD wVirtualKeyCode;
WORD wVirtualScanCode;
union
{
WCHAR UnicodeChar;
CHAR AsciiChar;
} uChar;
DWORD dwControlKeyState;
} KEY_EVENT_RECORD;
#include <poppack.h>
typedef struct _MOUSE_EVENT_RECORD
{
COORD dwMousePosition;
DWORD dwButtonState;
DWORD dwControlKeyState;
DWORD dwEventFlags;
} MOUSE_EVENT_RECORD;
typedef struct _WINDOW_BUFFER_SIZE_RECORD
{
COORD dwSize;
} WINDOW_BUFFER_SIZE_RECORD;
typedef struct _MENU_EVENT_RECORD
{
UINT dwCommandId;
} MENU_EVENT_RECORD, *PMENU_EVENT_RECORD;
typedef struct _FOCUS_EVENT_RECORD
{
BOOL bSetFocus;
} FOCUS_EVENT_RECORD;
typedef struct _INPUT_RECORD
{
WORD EventType;
union
{
#ifndef __cplus_plus
/* this will be the wrong size in c++ */
KEY_EVENT_RECORD KeyEvent;
#endif
MOUSE_EVENT_RECORD MouseEvent;
WINDOW_BUFFER_SIZE_RECORD WindowBufferSizeEvent;
MENU_EVENT_RECORD MenuEvent;
FOCUS_EVENT_RECORD FocusEvent;
} Event;
} INPUT_RECORD, *PINPUT_RECORD;
/* Virtual Key codes */
#define VK_LBUTTON (1)
#define VK_RBUTTON (2)
#define VK_CANCEL (3)
#define VK_MBUTTON (4)
#define VK_BACK (8)
#define VK_TAB (9)
#define VK_CLEAR (12)
#define VK_RETURN (13)
#define VK_SHIFT (16)
#define VK_CONTROL (17)
#define VK_MENU (18)
#define VK_PAUSE (19)
#define VK_CAPITAL (20)
#define VK_ESCAPE (27)
#define VK_SPACE (32)
#define VK_PRIOR (33)
#define VK_NEXT (34)
#define VK_END (35)
#define VK_HOME (36)
#define VK_LEFT (37)
#define VK_UP (38)
#define VK_RIGHT (39)
#define VK_DOWN (40)
#define VK_SELECT (41)
#define VK_PRINT (42)
#define VK_EXECUTE (43)
#define VK_SNAPSHOT (44)
#define VK_INSERT (45)
#define VK_DELETE (46)
#define VK_HELP (47)
#define VK_LWIN (91)
#define VK_RWIN (92)
#define VK_APPS (93)
#define VK_SLEEP (95)
#define VK_NUMPAD0 (96)
#define VK_NUMPAD1 (97)
#define VK_NUMPAD2 (98)
#define VK_NUMPAD3 (99)
#define VK_NUMPAD4 (100)
#define VK_NUMPAD5 (101)
#define VK_NUMPAD6 (102)
#define VK_NUMPAD7 (103)
#define VK_NUMPAD8 (104)
#define VK_NUMPAD9 (105)
#define VK_MULTIPLY (106)
#define VK_ADD (107)
#define VK_SEPARATOR (108)
#define VK_SUBTRACT (109)
#define VK_DECIMAL (110)
#define VK_DIVIDE (111)
#define VK_F1 (112)
#define VK_F2 (113)
#define VK_F3 (114)
#define VK_F4 (115)
#define VK_F5 (116)
#define VK_F6 (117)
#define VK_F7 (118)
#define VK_F8 (119)
#define VK_F9 (120)
#define VK_F10 (121)
#define VK_F11 (122)
#define VK_F12 (123)
#define VK_F13 (124)
#define VK_F14 (125)
#define VK_F15 (126)
#define VK_F16 (127)
#define VK_F17 (128)
#define VK_F18 (129)
#define VK_F19 (130)
#define VK_F20 (131)
#define VK_F21 (132)
#define VK_F22 (133)
#define VK_F23 (134)
#define VK_F24 (135)
/* GetAsyncKeyState */
#define VK_NUMLOCK (144)
#define VK_SCROLL (145)
#define VK_LSHIFT (160)
#define VK_LCONTROL (162)
#define VK_LMENU (164)
#define VK_RSHIFT (161)
#define VK_RCONTROL (163)
#define VK_RMENU (165)
#define VK_BROWSER_BACK (166)
#define VK_BROWSER_FORWARD (167)
#define VK_BROWSER_REFRESH (168)
#define VK_BROWSER_STOP (169)
#define VK_BROWSER_SEARCH (170)
#define VK_BROWSER_FAVORITES (171)
#define VK_BROWSER_HOME (172)
#define VK_VOLUME_MUTE (173)
#define VK_VOLUME_DOWN (174)
#define VK_VOLUME_UP (175)
#define VK_MEDIA_NEXT_TRACK (176)
#define VK_MEDIA_PREV_TRACK (177)
#define VK_MEDIA_STOP (178)
#define VK_MEDIA_PLAY_PAUSE (179)
#define VK_LAUNCH_MAIL (180)
#define VK_LAUNCH_MEDIA_SELECT (181)
#define VK_LAUNCH_APP1 (182)
#define VK_LAUNCH_APP2 (183)
#define VK_PROCESSKEY (229)
#define VK_ICO_CLEAR (230)
/* Fujitsu/OASYS keys */
#define VK_OEM_FJ_JISHO (146) /* 'Dictionary' key */
#define VK_OEM_FJ_MASSHOU (147) /* 'Unregister word' key */
#define VK_OEM_FJ_TOUROKU (148) /* 'Register word' key */
#define VK_OEM_FJ_LOYA (149) /* 'Left OYAYUBI' key */
#define VK_OEM_FJ_ROYA (150) /* 'Right OYAYUBI' key */
/* Nokia/Ericsson keys */
#define VK_OEM_RESET (223)
#define VK_OEM_JUMP (234)
#define VK_OEM_PA1 (235)
#define VK_OEM_PA2 (236)
#define VK_OEM_PA3 (237)
#define VK_OEM_WSCTRL (238)
#define VK_OEM_CUSEL (239)
#define VK_OEM_ATTN (240)
#define VK_OEM_FINISH (241)
#define VK_OEM_COPY (242)
#define VK_OEM_AUTO (243)
#define VK_OEM_ENLW (244)
#define VK_OEM_BACKTAB (245)
#define VK_ATTN (246)
#define VK_CRSEL (247)
#define VK_EXSEL (248)
#define VK_EREOF (249)
#define VK_PLAY (250)
#define VK_ZOOM (251)
#define VK_NONAME (252)
#define VK_PA1 (253)
#define VK_OEM_CLEAR (254)
#define VK_OEM_NEC_EQUAL (146) /* = key on numpad */
#define VK_OEM_1 (186) /* ';:' for US */
#define VK_OEM_PLUS (187) /* '+' any country */
#define VK_OEM_COMMA (188) /* ',' any country */
#define VK_OEM_MINUS (189) /* '-' any country */
#define VK_OEM_PERIOD (190) /* '.' any country */
#define VK_OEM_2 (191) /* '/?' for US */
#define VK_OEM_3 (192) /* '`~' for US */
#define VK_OEM_4 (219) /* '[{' for US */
#define VK_OEM_5 (220) /* '\|' for US */
#define VK_OEM_6 (221) /* ']}' for US */
#define VK_OEM_7 (222) /* ''"' for US */
#define VK_OEM_8 (223)
#define VK_OEM_AX (225) /* AX key on Japanese AX keyboard */
#define VK_OEM_102 (226) /* <> or | on RT 102-key keyboard */
#define VK_ICO_HELP (227) /* Help key on ICO */
#define VK_ICO_00 (228) /* 00 key on ICO */
#endif /* !__USE_W32API */
#endif /* __INCLUDE_KEYBOARD_H */

View file

@ -1,201 +0,0 @@
/*
* FIXME: *** NDK ***
*/
#ifndef __INCLUDE_NTOS_KRNLTYPES_H
#define __INCLUDE_NTOS_KRNLTYPES_H
#define DOE_UNLOAD_PENDING 0x1
#define DOE_DELETE_PENDING 0x2
#define DOE_REMOVE_PENDING 0x4
#define DOE_REMOVE_PROCESSED 0x8
#define DOE_START_PENDING 0x10
extern POBJECT_TYPE EXPORTED ExMutantObjectType;
extern POBJECT_TYPE EXPORTED ExTimerType;
/*
* PURPOSE: Special timer associated with each device
*/
typedef struct _IO_TIMER {
USHORT Type; /* Every IO Object has a Type */
USHORT TimerEnabled; /* Tells us if the Timer is enabled or not */
LIST_ENTRY IoTimerList; /* List of other Timers on the system */
PIO_TIMER_ROUTINE TimerRoutine; /* The associated timer routine */
PVOID Context; /* Context */
PDEVICE_OBJECT DeviceObject; /* Driver that owns this IO Timer */
} IO_TIMER, *PIO_TIMER;
typedef struct _EX_QUEUE_WORKER_INFO {
UCHAR QueueDisabled:1;
UCHAR MakeThreadsAsNecessary:1;
UCHAR WaitMode:1;
ULONG WorkerCount:29;
} EX_QUEUE_WORKER_INFO, *PEX_QUEUE_WORKER_INFO;
typedef struct _EX_WORK_QUEUE {
KQUEUE WorkerQueue;
ULONG DynamicThreadCount;
ULONG WorkItemsProcessed;
ULONG WorkItemsProcessedLastPass;
ULONG QueueDepthLastPass;
EX_QUEUE_WORKER_INFO Info;
} EX_WORK_QUEUE, *PEX_WORK_QUEUE;
typedef struct _KDPC_DATA
{
LIST_ENTRY DpcListHead;
ULONG DpcLock;
ULONG DpcQueueDepth;
ULONG DpcCount;
} KDPC_DATA, *PKDPC_DATA;
typedef struct _KTRAP_FRAME
{
PVOID DebugEbp;
PVOID DebugEip;
PVOID DebugArgMark;
PVOID DebugPointer;
PVOID TempCs;
PVOID TempEip;
ULONG Dr0;
ULONG Dr1;
ULONG Dr2;
ULONG Dr3;
ULONG Dr6;
ULONG Dr7;
USHORT Gs;
USHORT Reserved1;
USHORT Es;
USHORT Reserved2;
USHORT Ds;
USHORT Reserved3;
ULONG Edx;
ULONG Ecx;
ULONG Eax;
ULONG PreviousMode;
PVOID ExceptionList;
USHORT Fs;
USHORT Reserved4;
ULONG Edi;
ULONG Esi;
ULONG Ebx;
ULONG Ebp;
ULONG ErrorCode;
ULONG Eip;
ULONG Cs;
ULONG Eflags;
ULONG Esp;
USHORT Ss;
USHORT Reserved5;
USHORT V86_Es;
USHORT Reserved6;
USHORT V86_Ds;
USHORT Reserved7;
USHORT V86_Fs;
USHORT Reserved8;
USHORT V86_Gs;
USHORT Reserved9;
} KTRAP_FRAME, *PKTRAP_FRAME;
typedef struct _PP_LOOKASIDE_LIST
{
struct _GENERAL_LOOKASIDE *P;
struct _GENERAL_LOOKASIDE *L;
} PP_LOOKASIDE_LIST, *PPP_LOOKASIDE_LIST;
typedef enum _PP_NPAGED_LOOKASIDE_NUMBER
{
LookasideSmallIrpList = 0,
LookasideLargeIrpList = 1,
LookasideMdlList = 2,
LookasideCreateInfoList = 3,
LookasideNameBufferList = 4,
LookasideTwilightList = 5,
LookasideCompletionList = 6,
LookasideMaximumList = 7
} PP_NPAGED_LOOKASIDE_NUMBER;
typedef enum _KOBJECTS {
EventNotificationObject = 0,
EventSynchronizationObject = 1,
MutantObject = 2,
ProcessObject = 3,
QueueObject = 4,
SemaphoreObject = 5,
ThreadObject = 6,
GateObject = 7,
TimerNotificationObject = 8,
TimerSynchronizationObject = 9,
Spare2Object = 10,
Spare3Object = 11,
Spare4Object = 12,
Spare5Object = 13,
Spare6Object = 14,
Spare7Object = 15,
Spare8Object = 16,
Spare9Object = 17,
ApcObject = 18,
DpcObject = 19,
DeviceQueueObject = 20,
EventPairObject = 21,
InterruptObject = 22,
ProfileObject = 23,
ThreadedDpcObject = 24,
MaximumKernelObject = 25
} KOBJECTS;
typedef struct _M128 {
ULONGLONG Low;
LONGLONG High;
} M128, *PM128;
typedef struct _KEXCEPTION_FRAME {
ULONG64 P1Home;
ULONG64 P2Home;
ULONG64 P3Home;
ULONG64 P4Home;
ULONG64 P5;
ULONG64 InitialStack;
M128 Xmm6;
M128 Xmm7;
M128 Xmm8;
M128 Xmm9;
M128 Xmm10;
M128 Xmm11;
M128 Xmm12;
M128 Xmm13;
M128 Xmm14;
M128 Xmm15;
ULONG64 TrapFrame;
ULONG64 CallbackStack;
ULONG64 OutputBuffer;
ULONG64 OutputLength;
UCHAR ExceptionRecord[64];
ULONG64 Fill1;
ULONG64 Rbp;
ULONG64 Rbx;
ULONG64 Rdi;
ULONG64 Rsi;
ULONG64 R12;
ULONG64 R13;
ULONG64 R14;
ULONG64 R15;
ULONG64 Return;
} KEXCEPTION_FRAME, *PKEXCEPTION_FRAME;
typedef struct _KEVENT_PAIR
{
CSHORT Type;
CSHORT Size;
KEVENT LowEvent;
KEVENT HighEvent;
} KEVENT_PAIR, *PKEVENT_PAIR;
typedef struct _RUNDOWN_DESCRIPTOR {
ULONG_PTR References;
KEVENT RundownEvent;
} RUNDOWN_DESCRIPTOR, *PRUNDOWN_DESCRIPTOR;
#endif /* __INCLUDE_NTOS_KRNLTYPES_H */

View file

@ -1,18 +0,0 @@
/* $Id$ */
#ifndef __INCLUDE_DDK_LDRTYPES_H
#define __INCLUDE_DDK_LDRTYPES_H
typedef struct _LDR_RESOURCE_INFO
{
ULONG Type;
ULONG Name;
ULONG Language;
} LDR_RESOURCE_INFO, *PLDR_RESOURCE_INFO;
#define RESOURCE_TYPE_LEVEL 0
#define RESOURCE_NAME_LEVEL 1
#define RESOURCE_LANGUAGE_LEVEL 2
#define RESOURCE_DATA_LEVEL 3
#endif /* __INCLUDE_DDK_LDRTYPES_H */

View file

@ -1,7 +0,0 @@
#ifndef max
#define max(a, b) (((a) > (b)) ? (a) : (b))
#endif
#ifndef min
#define min(a, b) (((a) < (b)) ? (a) : (b))
#endif

View file

@ -1,68 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/mm.h
* PURPOSE: Memory managment declarations used by all the parts of the
* system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_MM_H
#define __INCLUDE_MM_H
#ifndef __USE_W32API
#define SEC_BASED (0x00200000)
#define SEC_NO_CHANGE (0x00400000)
#define SEC_FILE (0x00800000)
#define SEC_IMAGE (0x01000000)
#define SEC_VLM (0x02000000)
#define SEC_RESERVE (0x04000000)
#define SEC_COMMIT (0x08000000)
#define SEC_NOCACHE (0x10000000)
#define PAGE_NOACCESS (1)
#define PAGE_READONLY (2)
#define PAGE_READWRITE (4)
#define PAGE_WRITECOPY (8)
#define PAGE_EXECUTE (16)
#define PAGE_EXECUTE_READ (32)
#define PAGE_EXECUTE_READWRITE (64)
#define PAGE_EXECUTE_WRITECOPY (128)
#define PAGE_GUARD (256)
#define PAGE_NOCACHE (512)
#define PAGE_WRITECOMBINE (1024)
#define MEM_COMMIT (4096)
#define MEM_FREE (65536)
#define MEM_RESERVE (8192)
#define MEM_IMAGE (16777216)
#define MEM_MAPPED (262144)
#define MEM_PRIVATE (131072)
#define MEM_DECOMMIT (16384)
#define MEM_RELEASE (32768)
#define MEM_TOP_DOWN (1048576)
#define EXCEPTION_GUARD_PAGE (0x80000001L)
#define SECTION_EXTEND_SIZE (0x10)
#define SECTION_MAP_EXECUTE (0x8)
#define SECTION_MAP_READ (0x4)
#define SECTION_MAP_WRITE (0x2)
#define SECTION_QUERY (0x1)
#define SECTION_ALL_ACCESS (0xf001fL)
#define FILE_MAP_ALL_ACCESS (0xf001fL)
#define FILE_MAP_READ (4)
#define FILE_MAP_WRITE (2)
#define FILE_MAP_COPY (1)
#else /* __USE_W32API */
#include <ddk/ntifs.h>
#endif /* __USE_W32API */
#define PAGE_ROUND_UP(x) ( (((ULONG_PTR)x)%PAGE_SIZE) ? ((((ULONG_PTR)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG_PTR)x) )
#define PAGE_ROUND_DOWN(x) (((ULONG_PTR)x)&(~(PAGE_SIZE-1)))
#endif /* __INCLUDE_MM_H */

View file

@ -1,102 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntdef.h
* PURPOSE: Defines used by all the parts of the system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_NTDEF_H
#define __INCLUDE_NTDEF_H
#ifndef __USE_W32API
#define MAXIMUM_WAIT_OBJECTS (64)
#endif
#if defined(_MSC_VER) && (_MSC_VER >= 1300) && defined(__cplusplus)
# define TYPE_ALIGNMENT(t) __alignof(t)
#elif defined(__GNUC__)
# define TYPE_ALIGNMENT(t) __alignof__(t)
#else
# define TYPE_ALIGNMENT(t) FIELD_OFFSET(struct { char x; t test; }, test)
#endif
#ifdef _WIN64
# define PROBE_ALIGNMENT(_s) \
(TYPE_ALIGNMENT(_s) > TYPE_ALIGNMENT(DWORD) ? \
TYPE_ALIGNMENT(_s) : TYPE_ALIGNMENT(DWORD))
# define PROBE_ALIGNMENT32(_s) TYPE_ALIGNMENT(DWORD)
#else
# define PROBE_ALIGNMENT(_s) TYPE_ALIGNMENT(DWORD)
#endif
#if defined(_MSC_VER)
#define Const64(a) (a##i64)
static __inline LARGE_INTEGER MK_LARGE_INTEGER(__int64 i)
{
LARGE_INTEGER li;
li.QuadPart = i;
return li;
}
#define INIT_LARGE_INTEGER(a) {{(ULONG)a, (LONG)(a>>32)}}
#elif defined (__GNUC__)
#define Const64(a) (a##LL)
#define MK_LARGE_INTEGER(a) ((LARGE_INTEGER)(LONGLONG)(a))
#define INIT_LARGE_INTEGER(a) MK_LARGE_INTEGER(Const64(a))
#endif
#define LargeInteger0 MK_LARGE_INTEGER(0)
/* Compile time asserts */
#define C_ASSERT(e) do{extern char __C_ASSERT__[(e)?1:-1]; (void)__C_ASSERT__;}while(0)
/* Helpers for easy conversion to system time units (100ns) */
#define ABSOLUTE_TIME(wait) (wait)
#define RELATIVE_TIME(wait) (-(wait))
#define NANOS_TO_100NS(nanos) (((LONGLONG)(nanos)) / 100)
#define MICROS_TO_100NS(micros) (((LONGLONG)(micros)) * NANOS_TO_100NS(1000))
#define MILLIS_TO_100NS(milli) (((LONGLONG)(milli)) * MICROS_TO_100NS(1000))
#define SECONDS_TO_100NS(seconds) (((LONGLONG)(seconds)) * MILLIS_TO_100NS(1000))
#define MINUTES_TO_100NS(minutes) (((LONGLONG)(minutes)) * SECONDS_TO_100NS(60))
#define HOURS_TO_100NS(hours) (((LONGLONG)(hours)) * MINUTES_TO_100NS(60))
/* Helpers for enumarating lists */
#define LIST_FOR_EACH(entry, head) \
for((entry) = (head)->Flink; (entry) != (head); (entry) = (entry)->Flink)
/*
Safe version which saves pointer to the next entry so the current ptr->field entry
can be unlinked without corrupting the list. NOTE: Never unlink tmp_entry!!!!!!!!!
*/
#define LIST_FOR_EACH_SAFE(tmp_entry, head, ptr, type, field) \
for ((tmp_entry)=(head)->Flink; (tmp_entry)!=(head) && \
((ptr) = CONTAINING_RECORD(tmp_entry,type,field)) && \
((tmp_entry) = (tmp_entry)->Flink); )
#ifndef __USE_W32API
#define ANYSIZE_ARRAY (1)
#define DELETE (0x00010000L)
#define READ_CONTROL (0x00020000L)
#define WRITE_DAC (0x00040000L)
#define WRITE_OWNER (0x00080000L)
#define SYNCHRONIZE (0x00100000L)
#define DUPLICATE_CLOSE_SOURCE (1)
#define DUPLICATE_SAME_ACCESS (2)
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_NTDEF_H */

View file

@ -1,160 +0,0 @@
#ifndef _INCLUDE_DDK_OBTYPES_H
#define _INCLUDE_DDK_OBTYPES_H
/* $Id$ */
struct _DIRECTORY_OBJECT;
struct _OBJECT_ATTRIBUTES;
#ifndef __USE_W32API
typedef struct _OBJECT_HANDLE_INFORMATION
{
ULONG HandleAttributes;
ACCESS_MASK GrantedAccess;
} OBJECT_HANDLE_INFORMATION, *POBJECT_HANDLE_INFORMATION;
typedef struct _OBJECT_BASIC_INFORMATION
{
ULONG Attributes;
ACCESS_MASK GrantedAccess;
ULONG HandleCount;
ULONG PointerCount;
ULONG PagedPoolUsage;
ULONG NonPagedPoolUsage;
ULONG Reserved[3];
ULONG NameInformationLength;
ULONG TypeInformationLength;
ULONG SecurityDescriptorLength;
LARGE_INTEGER CreateTime;
} OBJECT_BASIC_INFORMATION, *POBJECT_BASIC_INFORMATION;
typedef struct _OBJECT_NAME_INFORMATION
{
UNICODE_STRING Name;
} OBJECT_NAME_INFORMATION, *POBJECT_NAME_INFORMATION;
typedef struct _OBJECT_TYPE_INFORMATION {
UNICODE_STRING TypeName;
ULONG TotalNumberOfObjects;
ULONG TotalNumberOfHandles;
ULONG TotalPagedPoolUsage;
ULONG TotalNonPagedPoolUsage;
ULONG TotalNamePoolUsage;
ULONG TotalHandleTableUsage;
ULONG PeakNumberOfObjects;
ULONG PeakNumberOfHandles;
ULONG PeakPagedPoolUsage;
ULONG PeakNonPagedPoolUsage;
ULONG PeakNamePoolUsage;
ULONG PeakHandleTableUsage;
ULONG InvalidAttributes;
GENERIC_MAPPING GenericMapping;
ULONG ValidAccessMask;
BOOLEAN SecurityRequired;
BOOLEAN MaintainHandleCount;
ULONG PoolType;
ULONG DefaultPagedPoolCharge;
ULONG DefaultNonPagedPoolCharge;
} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION;
typedef struct _OBJECT_ALL_TYPES_INFORMATION
{
ULONG NumberOfTypes;
OBJECT_TYPE_INFORMATION TypeInformation[1];
} OBJECT_ALL_TYPES_INFORMATION, *POBJECT_ALL_TYPES_INFORMATION;
typedef struct _OBJECT_HANDLE_ATTRIBUTE_INFORMATION
{
BOOLEAN Inherit;
BOOLEAN ProtectFromClose;
} OBJECT_HANDLE_ATTRIBUTE_INFORMATION, *POBJECT_HANDLE_ATTRIBUTE_INFORMATION;
typedef struct _OBJECT_TYPE *POBJECT_TYPE;
typedef struct _OBJECT_ATTRIBUTES
{
ULONG Length;
HANDLE RootDirectory;
PUNICODE_STRING ObjectName;
ULONG Attributes;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
} OBJECT_ATTRIBUTES, *POBJECT_ATTRIBUTES;
#endif
typedef struct _HANDLE_TABLE_ENTRY_INFO {
ULONG AuditMask;
} HANDLE_TABLE_ENTRY_INFO, *PHANDLE_TABLE_ENTRY_INFO;
typedef struct _HANDLE_TABLE_ENTRY {
union {
PVOID Object;
ULONG_PTR ObAttributes;
PHANDLE_TABLE_ENTRY_INFO InfoTable;
ULONG_PTR Value;
} u1;
union {
ULONG GrantedAccess;
USHORT GrantedAccessIndex;
LONG NextFreeTableEntry;
} u2;
} HANDLE_TABLE_ENTRY, *PHANDLE_TABLE_ENTRY;
typedef struct _HANDLE_TABLE
{
ULONG Flags;
LONG HandleCount;
PHANDLE_TABLE_ENTRY **Table;
PEPROCESS QuotaProcess;
HANDLE UniqueProcessId;
LONG FirstFreeTableEntry;
LONG NextIndexNeedingPool;
ERESOURCE HandleTableLock;
LIST_ENTRY HandleTableList;
KEVENT HandleContentionEvent;
} HANDLE_TABLE;
#ifndef __USE_W32API
typedef struct _HANDLE_TABLE *PHANDLE_TABLE;
/*
* FIXME: These will eventually become centerfold in the compliant Ob Manager
* For now, they are only here so Device Map is properly defined before the header
* changes
*/
typedef struct _OBJECT_DIRECTORY_ENTRY {
struct _OBJECT_DIRECTORY_ENTRY *ChainLink;
PVOID Object;
ULONG HashValue;
} OBJECT_DIRECTORY_ENTRY, *POBJECT_DIRECTORY_ENTRY;
#define NUMBER_HASH_BUCKETS 37
typedef struct _OBJECT_DIRECTORY {
struct _OBJECT_DIRECTORY_ENTRY *HashBuckets[NUMBER_HASH_BUCKETS];
struct _EX_PUSH_LOCK *Lock;
struct _DEVICE_MAP *DeviceMap;
ULONG SessionId;
} OBJECT_DIRECTORY, *POBJECT_DIRECTORY;
#endif /* __USE_W32API */
typedef struct _DEVICE_MAP {
POBJECT_DIRECTORY DosDevicesDirectory;
POBJECT_DIRECTORY GlobalDosDevicesDirectory;
ULONG ReferenceCount;
ULONG DriveMap;
UCHAR DriveType[32];
} DEVICE_MAP, *PDEVICE_MAP;
extern POBJECT_TYPE ObDirectoryType;
extern PDEVICE_MAP ObSystemDeviceMap;
#endif /* ndef _INCLUDE_DDK_OBTYPES_H */

View file

@ -1,24 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/port.h
* PURPOSE: Port declarations used by all the parts of the
* system
* PROGRAMMER: Eric Kohl <ekokl@rz-online.de>
* UPDATE HISTORY:
* 02/02/2001: Created
*/
#ifndef __INCLUDE_PORT_H
#define __INCLUDE_PORT_H
/* Port Object Access */
#define PORT_ALL_ACCESS (0x1)
#include <ddk/ntifs.h>
#endif /* __INCLUDE_PORT_H */
/* EOF */

View file

@ -1,461 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/ps.h
* PURPOSE: Process/thread declarations used by all the parts of the
* system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_PS_H
#define __INCLUDE_PS_H
#include <napi/teb.h>
#define THREAD_READ (0x020048L)
#define THREAD_WRITE (0x020037L)
#define THREAD_EXECUTE (0x120000L)
#define PROCESS_READ (0x020410L)
#define PROCESS_WRITE (0x020bebL)
#define PROCESS_EXECUTE (0x120000L)
/* Thread priorities */
#define THREAD_PRIORITY_BELOW_NORMAL (-1)
#define THREAD_PRIORITY_IDLE (-15)
#define THREAD_PRIORITY_LOWEST (-2)
/* Process priority classes */
#define PROCESS_PRIORITY_CLASS_HIGH (4) /* FIXME */
#define PROCESS_PRIORITY_CLASS_IDLE (0) /* FIXME */
#define PROCESS_PRIORITY_CLASS_NORMAL (2) /* FIXME */
#define PROCESS_PRIORITY_CLASS_REALTIME (5) /* FIXME */
#define PROCESS_PRIORITY_CLASS_BELOW_NORMAL (1) /* FIXME */
#define PROCESS_PRIORITY_CLASS_ABOVE_NORMAL (3) /* FIXME */
/* Job access rights */
#define JOB_OBJECT_ASSIGN_PROCESS (1)
#define JOB_OBJECT_SET_ATTRIBUTES (2)
#define JOB_OBJECT_QUERY (4)
#define JOB_OBJECT_TERMINATE (8)
#define JOB_OBJECT_SET_SECURITY_ATTRIBUTES (16)
#define JOB_OBJECT_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|31)
/* Thread access rights */
#define THREAD_ALERT (0x0004L)
#ifndef __USE_W32API
/* Thread access rights */
#define THREAD_TERMINATE (0x0001L)
#define THREAD_SUSPEND_RESUME (0x0002L)
#define THREAD_GET_CONTEXT (0x0008L)
#define THREAD_SET_CONTEXT (0x0010L)
#define THREAD_SET_INFORMATION (0x0020L)
#define THREAD_QUERY_INFORMATION (0x0040L)
#define THREAD_SET_THREAD_TOKEN (0x0080L)
#define THREAD_IMPERSONATE (0x0100L)
#define THREAD_DIRECT_IMPERSONATION (0x0200L)
#define THREAD_ALL_ACCESS (0x1f03ffL)
/* Process access rights */
#define PROCESS_TERMINATE (0x0001L)
#define PROCESS_CREATE_THREAD (0x0002L)
#define PROCESS_SET_SESSIONID (0x0004L)
#define PROCESS_VM_OPERATION (0x0008L)
#define PROCESS_VM_READ (0x0010L)
#define PROCESS_VM_WRITE (0x0020L)
#define PROCESS_DUP_HANDLE (0x0040L)
#define PROCESS_CREATE_PROCESS (0x0080L)
#define PROCESS_SET_QUOTA (0x0100L)
#define PROCESS_SET_INFORMATION (0x0200L)
#define PROCESS_QUERY_INFORMATION (0x0400L)
#define PROCESS_SUSPEND_RESUME (0x0800L)
#define PROCESS_ALL_ACCESS (0x1f0fffL)
/* Thread priorities */
#define THREAD_PRIORITY_ABOVE_NORMAL (1)
#define THREAD_PRIORITY_HIGHEST (2)
#define THREAD_PRIORITY_NORMAL (0)
#define THREAD_PRIORITY_TIME_CRITICAL (15)
#define THREAD_PRIORITY_ERROR_RETURN (2147483647)
/* CreateProcess */
#define CREATE_DEFAULT_ERROR_MODE (67108864)
#define CREATE_NEW_CONSOLE (16)
#define CREATE_NEW_PROCESS_GROUP (512)
#define CREATE_SEPARATE_WOW_VDM (2048)
#define CREATE_SUSPENDED (4)
#define CREATE_UNICODE_ENVIRONMENT (1024)
#define DEBUG_PROCESS (1)
#define DEBUG_ONLY_THIS_PROCESS (2)
#define DETACHED_PROCESS (8)
#define HIGH_PRIORITY_CLASS (128)
#define IDLE_PRIORITY_CLASS (64)
#define NORMAL_PRIORITY_CLASS (32)
#define REALTIME_PRIORITY_CLASS (256)
#define BELOW_NORMAL_PRIORITY_CLASS (16384)
#define ABOVE_NORMAL_PRIORITY_CLASS (32768)
/* ResumeThread / SuspendThread */
#define MAXIMUM_SUSPEND_COUNT (0x7f)
#endif /* !__USE_W32API */
#ifdef NTOS_MODE_KERNEL
#ifdef __NTOSKRNL__
#ifdef __GNUC__
extern struct _EPROCESS* EXPORTED PsInitialSystemProcess;
extern POBJECT_TYPE EXPORTED PsProcessType;
extern POBJECT_TYPE EXPORTED PsThreadType;
#else /* __GNUC__ */
/* Microsft-style */
extern EXPORTED struct _EPROCESS* PsInitialSystemProcess;
extern EXPORTED POBJECT_TYPE PsProcessType;
extern EXPORTED POBJECT_TYPE PsThreadType;
#endif /* __GNUC__ */
#else /* __NTOSKRNL__ */
#ifdef __GNUC__ // robd
extern struct _EPROCESS* IMPORTED PsInitialSystemProcess;
extern POBJECT_TYPE IMPORTED PsProcessType;
extern POBJECT_TYPE IMPORTED PsThreadType;
#endif
#endif
typedef NTSTATUS
(STDCALL *PW32_PROCESS_CALLBACK)(struct _EPROCESS *Process,
BOOLEAN Create);
typedef NTSTATUS
(STDCALL *PW32_THREAD_CALLBACK)(struct _ETHREAD *Thread,
BOOLEAN Create);
struct _EJOB;
NTSTATUS STDCALL
PsCreateSystemProcess (PHANDLE ProcessHandle,
ACCESS_MASK DesiredAccess,
POBJECT_ATTRIBUTES ObjectAttributes);
NTSTATUS STDCALL PsCreateWin32Process(struct _EPROCESS* Process);
NTSTATUS STDCALL PsCreateWin32Thread(struct _ETHREAD* Thread);
NTSTATUS
STDCALL PsChargeProcessNonPagedPoolQuota (
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
NTSTATUS
STDCALL PsChargeProcessPagedPoolQuota (
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
ULONG
STDCALL PsGetCurrentProcessSessionId (
VOID
);
KPROCESSOR_MODE
STDCALL PsGetCurrentThreadPreviousMode (
VOID
);
PVOID
STDCALL PsGetCurrentThreadStackBase (
VOID
);
PVOID
STDCALL PsGetCurrentThreadStackLimit (
VOID
);
PVOID
STDCALL PsGetJobLock(
struct _EJOB* Job
);
PVOID
STDCALL PsGetJobSessionId(
struct _EJOB* Job
);
ULONG
STDCALL PsGetJobUIRestrictionsClass(
struct _EJOB* Job
);
LONGLONG
STDCALL PsGetProcessCreateTimeQuadPart(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessDebugPort(
PEPROCESS Process
);
BOOLEAN
STDCALL PsGetProcessExitProcessCalled(
PEPROCESS Process
);
NTSTATUS
STDCALL PsGetProcessExitStatus(
PEPROCESS Process
);
HANDLE
STDCALL PsGetProcessId(
PEPROCESS Process
);
LPSTR
STDCALL PsGetProcessImageFileName(
PEPROCESS Process
);
HANDLE
STDCALL PsGetProcessInheritedFromUniqueProcessId(
PEPROCESS Process
);
struct _EJOB*
STDCALL PsGetProcessJob(
PEPROCESS Process
);
PPEB
STDCALL PsGetProcessPeb(
PEPROCESS Process
);
ULONG
STDCALL PsGetProcessPriorityClass(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessSectionBaseAddress(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessSecurityPort(
PEPROCESS Process
);
HANDLE
STDCALL PsGetProcessSessionId(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessWin32Process(
PEPROCESS Process
);
PVOID
STDCALL PsGetProcessWin32WindowStation(
PEPROCESS Process
);
ULONG
STDCALL PsGetThreadFreezeCount(
struct _ETHREAD* Thread
);
BOOLEAN
STDCALL PsGetThreadHardErrorsAreDisabled(
struct _ETHREAD* Thread
);
HANDLE
STDCALL PsGetThreadId(
struct _ETHREAD* Thread
);
PEPROCESS
STDCALL PsGetThreadProcess(
struct _ETHREAD* Thread
);
HANDLE
STDCALL PsGetThreadProcessId(
struct _ETHREAD* Thread
);
HANDLE
STDCALL PsGetThreadSessionId(
struct _ETHREAD* Thread
);
PTEB
STDCALL PsGetThreadTeb(
struct _ETHREAD* Thread
);
PVOID
STDCALL PsGetThreadWin32Thread(
struct _ETHREAD* Thread
);
BOOLEAN
STDCALL PsIsProcessBeingDebugged(
PEPROCESS Process
);
BOOLEAN
STDCALL PsIsThreadImpersonating(
struct _ETHREAD* Thread
);
VOID
STDCALL PsReturnProcessNonPagedPoolQuota(
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
VOID
STDCALL PsReturnProcessPagedPoolQuota(
IN PEPROCESS Process,
IN ULONG_PTR Amount
);
VOID
STDCALL
PsRevertThreadToSelf(
IN struct _ETHREAD* Thread
);
VOID
STDCALL PsSetJobUIRestrictionsClass(
struct _EJOB* Job,
ULONG UIRestrictionsClass
);
ULONG
STDCALL PsSetLegoNotifyRoutine(
PVOID LegoNotifyRoutine
);
VOID
STDCALL PsSetProcessPriorityClass(
PEPROCESS Process,
ULONG PriorityClass
);
VOID
STDCALL PsSetProcessSecurityPort(
PEPROCESS Process,
PVOID SecurityPort
);
VOID
STDCALL PsSetProcessWin32Process(
PEPROCESS Process,
PVOID Win32Process
);
VOID
STDCALL PsSetProcessWin32WindowStation(
PEPROCESS Process,
PVOID WindowStation
);
VOID
STDCALL PsSetThreadHardErrorsAreDisabled(
struct _ETHREAD* Thread,
BOOLEAN HardErrorsAreDisabled
);
VOID
STDCALL PsSetThreadWin32Thread(
struct _ETHREAD* Thread,
PVOID Win32Thread
);
struct _W32_OBJECT_CALLBACK;
VOID STDCALL
STDCALL PsEstablishWin32Callouts (PW32_PROCESS_CALLBACK W32ProcessCallback,
PW32_THREAD_CALLBACK W32ThreadCallback,
struct _W32_OBJECT_CALLBACK *W32ObjectCallback,
PVOID Param4,
ULONG W32ThreadSize,
ULONG W32ProcessSize);
NTSTATUS STDCALL PsLookupProcessByProcessId(IN HANDLE ProcessId,
OUT PEPROCESS *Process);
NTSTATUS STDCALL PsLookupProcessThreadByCid(IN PCLIENT_ID Cid,
OUT PEPROCESS *Process OPTIONAL,
OUT struct _ETHREAD **Thread);
/* OUT PETHREAD *Thread); */
NTSTATUS STDCALL PsLookupThreadByThreadId(IN HANDLE ThreadId,
OUT struct _ETHREAD **Thread);
/* OUT PETHREAD *Thread); */
#endif /* NTOS_MODE_KERNEL */
#endif /* __INCLUDE_PS_H */

View file

@ -1,64 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/registry.h
* PURPOSE: Registry declarations used by all the parts of the
* system
* PROGRAMMER: Eric Kohl <ekohl@rz-online.de>
* UPDATE HISTORY:
* 25/01/2001: Created
*/
#ifndef __INCLUDE_NTOS_REGISTRY_H
#define __INCLUDE_NTOS_REGISTRY_H
#ifndef __USE_W32API
/* Key access rights */
#define KEY_QUERY_VALUE (1)
#define KEY_SET_VALUE (2)
#define KEY_CREATE_SUB_KEY (4)
#define KEY_ENUMERATE_SUB_KEYS (8)
#define KEY_NOTIFY (16)
#define KEY_CREATE_LINK (32)
#define KEY_READ (0x20019L)
#define KEY_WRITE (0x20006L)
#define KEY_EXECUTE (0x20019L)
#define KEY_ALL_ACCESS (0xf003fL)
/* Key create options */
#define REG_OPTION_NON_VOLATILE (0x0L)
#define REG_OPTION_VOLATILE (0x1L)
#define REG_OPTION_CREATE_LINK (0x2L)
#define REG_OPTION_BACKUP_RESTORE (0x8L)
#define REG_OPTION_OPEN_LINK (0x8L)
/* Key load/restore options */
#define REG_WHOLE_HIVE_VOLATILE (0x1L)
#define REG_REFRESH_HIVE (0x2L)
#define REG_NO_LAZY_FLUSH (0x4L)
#define REG_FORCE_RESTORE (0x8L)
/* Key create/open disposition */
#define REG_CREATED_NEW_KEY (0x1L)
#define REG_OPENED_EXISTING_KEY (0x2L)
/* Value types */
#define REG_NONE (0)
#define REG_SZ (1)
#define REG_EXPAND_SZ (2)
#define REG_BINARY (3)
#define REG_DWORD (4)
#define REG_DWORD_LITTLE_ENDIAN (4)
#define REG_DWORD_BIG_ENDIAN (5)
#define REG_LINK (6)
#define REG_MULTI_SZ (7)
#define REG_RESOURCE_LIST (8)
#define REG_FULL_RESOURCE_DESCRIPTOR (9)
#define REG_RESOURCE_REQUIREMENTS_LIST (10)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_NTOS_REGISTRY_H */

File diff suppressed because it is too large Load diff

View file

@ -1,517 +0,0 @@
/* $Id$
*
*/
#ifndef __DDK_RTLTYPES_H
#define __DDK_RTLTYPES_H
#ifndef __USE_W32API
#define COMPRESSION_FORMAT_NONE 0x0000
#define COMPRESSION_FORMAT_DEFAULT 0x0001
#define COMPRESSION_FORMAT_LZNT1 0x0002
#define COMPRESSION_ENGINE_STANDARD 0x0000
#define COMPRESSION_ENGINE_MAXIMUM 0x0100
#define COMPRESSION_ENGINE_HIBER 0x0200
/*
#define VER_EQUAL 1
#define VER_GREATER 2
#define VER_GREATER_EQUAL 3
#define VER_LESS 4
#define VER_LESS_EQUAL 5
#define VER_AND 6
#define VER_OR 7
#define VER_CONDITION_MASK 7
#define VER_NUM_BITS_PER_CONDITION_MASK 3
#define VER_MINORVERSION 0x0000001
#define VER_MAJORVERSION 0x0000002
#define VER_BUILDNUMBER 0x0000004
#define VER_PLATFORMID 0x0000008
#define VER_SERVICEPACKMINOR 0x0000010
#define VER_SERVICEPACKMAJOR 0x0000020
#define VER_SUITENAME 0x0000040
#define VER_PRODUCT_TYPE 0x0000080
#define VER_NT_WORKSTATION 0x0000001
#define VER_NT_DOMAIN_CONTROLLER 0x0000002
#define VER_NT_SERVER 0x0000003
*/
typedef struct _CONTROLLER_OBJECT
{
CSHORT Type;
CSHORT Size;
PVOID ControllerExtension;
KDEVICE_QUEUE DeviceWaitQueue;
ULONG Spare1;
LARGE_INTEGER Spare2;
} CONTROLLER_OBJECT, *PCONTROLLER_OBJECT;
typedef struct _STRING
{
/*
* Length in bytes of the string stored in buffer
*/
USHORT Length;
/*
* Maximum length of the string
*/
USHORT MaximumLength;
/*
* String
*/
PCHAR Buffer;
} STRING, *PSTRING;
typedef STRING ANSI_STRING;
typedef PSTRING PANSI_STRING;
typedef STRING OEM_STRING;
typedef PSTRING POEM_STRING;
typedef struct _TIME_FIELDS
{
CSHORT Year;
CSHORT Month;
CSHORT Day;
CSHORT Hour;
CSHORT Minute;
CSHORT Second;
CSHORT Milliseconds;
CSHORT Weekday;
} TIME_FIELDS, *PTIME_FIELDS;
typedef struct _RTL_BITMAP
{
ULONG SizeOfBitMap;
PULONG Buffer;
} RTL_BITMAP, *PRTL_BITMAP;
typedef struct _RTL_BITMAP_RUN
{
ULONG StarttingIndex;
ULONG NumberOfBits;
} RTL_BITMAP_RUN, *PRTL_BITMAP_RUN;
#ifndef STDCALL_FUNC
#define STDCALL_FUNC(a) (STDCALL a)
#endif
typedef NTSTATUS STDCALL_FUNC
(*PRTL_QUERY_REGISTRY_ROUTINE) (PWSTR ValueName,
ULONG ValueType,
PVOID ValueData,
ULONG ValueLength,
PVOID Context,
PVOID EntryContext);
typedef struct _RTL_QUERY_REGISTRY_TABLE
{
PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
ULONG Flags;
PWSTR Name;
PVOID EntryContext;
ULONG DefaultType;
PVOID DefaultData;
ULONG DefaultLength;
} RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;
typedef struct _GENERATE_NAME_CONTEXT
{
USHORT Checksum;
BOOLEAN CheckSumInserted;
UCHAR NameLength;
WCHAR NameBuffer[8];
ULONG ExtensionLength;
WCHAR ExtensionBuffer[4];
ULONG LastIndexValue;
} GENERATE_NAME_CONTEXT, *PGENERATE_NAME_CONTEXT;
typedef struct _RTL_SPLAY_LINKS
{
struct _RTL_SPLAY_LINKS *Parent;
struct _RTL_SPLAY_LINKS *LeftChild;
struct _RTL_SPLAY_LINKS *RightChild;
} RTL_SPLAY_LINKS, *PRTL_SPLAY_LINKS;
typedef struct _RTL_RANGE_LIST
{
LIST_ENTRY ListHead;
ULONG Flags; /* RTL_RANGE_LIST_... flags */
ULONG Count;
ULONG Stamp;
} RTL_RANGE_LIST, *PRTL_RANGE_LIST;
#define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001
#define RTL_RANGE_LIST_ADD_SHARED 0x00000002
typedef struct _RTL_RANGE
{
ULONGLONG Start;
ULONGLONG End;
PVOID UserData;
PVOID Owner;
UCHAR Attributes;
UCHAR Flags; /* RTL_RANGE_... flags */
} RTL_RANGE, *PRTL_RANGE;
#define RTL_RANGE_SHARED 0x01
#define RTL_RANGE_CONFLICT 0x02
typedef BOOLEAN
(STDCALL *PRTL_CONFLICT_RANGE_CALLBACK) (PVOID Context,
PRTL_RANGE Range);
typedef struct _RANGE_LIST_ITERATOR
{
PLIST_ENTRY RangeListHead;
PLIST_ENTRY MergedHead;
PVOID Current;
ULONG Stamp;
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
typedef struct _INITIAL_TEB
{
PVOID StackBase;
PVOID StackLimit;
PVOID StackCommit;
PVOID StackCommitMax;
PVOID StackReserved;
} INITIAL_TEB, *PINITIAL_TEB;
#define MAXIMUM_LEADBYTES 12
typedef struct _CPTABLEINFO
{
USHORT CodePage;
USHORT MaximumCharacterSize; /* SBCS = 1, DBCS = 2 */
USHORT DefaultChar;
USHORT UniDefaultChar;
USHORT TransDefaultChar;
USHORT TransUniDefaultChar;
USHORT DBCSCodePage;
UCHAR LeadByte[MAXIMUM_LEADBYTES];
PUSHORT MultiByteTable;
PVOID WideCharTable;
PUSHORT DBCSRanges;
PUSHORT DBCSOffsets;
} CPTABLEINFO, *PCPTABLEINFO;
typedef struct _NLSTABLEINFO
{
CPTABLEINFO OemTableInfo;
CPTABLEINFO AnsiTableInfo;
PUSHORT UpperCaseTable;
PUSHORT LowerCaseTable;
} NLSTABLEINFO, *PNLSTABLEINFO;
#else /* __USE_W32API */
#include <ddk/ntifs.h>
#endif /* __USE_W32API */
typedef struct _RTL_HEAP_DEFINITION
{
ULONG Length;
ULONG Unknown[11];
} RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
typedef struct _RTL_HANDLE_TABLE_ENTRY
{
ULONG Flags;
struct _RTL_HANDLE_TABLE_ENTRY *NextFree;
} RTL_HANDLE_TABLE_ENTRY, *PRTL_HANDLE_TABLE_ENTRY;
typedef struct _RTL_HANDLE_TABLE
{
ULONG MaximumNumberOfHandles;
ULONG SizeOfHandleTableEntry;
ULONG Reserved[2];
PRTL_HANDLE_TABLE_ENTRY FreeHandles;
PRTL_HANDLE_TABLE_ENTRY CommittedHandles;
PRTL_HANDLE_TABLE_ENTRY UnCommittedHandles;
PRTL_HANDLE_TABLE_ENTRY MaxReservedHandles;
} RTL_HANDLE_TABLE, *PRTL_HANDLE_TABLE;
typedef struct _RTL_ATOM_TABLE_ENTRY
{
struct _RTL_ATOM_TABLE_ENTRY *HashLink;
USHORT HandleIndex;
USHORT Atom;
USHORT ReferenceCount;
UCHAR Flags;
UCHAR NameLength;
WCHAR Name[1];
} RTL_ATOM_TABLE_ENTRY, *PRTL_ATOM_TABLE_ENTRY;
typedef struct _RTL_ATOM_TABLE
{
ULONG Signature;
union
{
RTL_CRITICAL_SECTION CriticalSection;
FAST_MUTEX FastMutex;
};
union
{
RTL_HANDLE_TABLE RtlHandleTable;
PHANDLE_TABLE ExHandleTable;
};
ULONG NumberOfBuckets;
PRTL_ATOM_TABLE_ENTRY Buckets[1];
} RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
#include <pshpack1.h>
typedef struct _NLS_FILE_HEADER
{
USHORT HeaderSize;
USHORT CodePage;
USHORT MaximumCharacterSize; /* SBCS = 1, DBCS = 2 */
USHORT DefaultChar;
USHORT UniDefaultChar;
USHORT TransDefaultChar;
USHORT TransUniDefaultChar;
USHORT DBCSCodePage;
UCHAR LeadByte[MAXIMUM_LEADBYTES];
} NLS_FILE_HEADER, *PNLS_FILE_HEADER;
#include <poppack.h>
/*
typedef struct _OSVERSIONINFOEXA {
ULONG dwOSVersionInfoSize;
ULONG dwMajorVersion;
ULONG dwMinorVersion;
ULONG dwBuildNumber;
ULONG dwPlatformId;
CHAR szCSDVersion [128];
USHORT wServicePackMajor;
USHORT wServicePackMinor;
USHORT wSuiteMask;
UCHAR wProductType;
UCHAR wReserved;
} OSVERSIONINFOEXA, *POSVERSIONINFOEXA, *LPOSVERSIONINFOEXA;
typedef struct _OSVERSIONINFOEXW {
ULONG dwOSVersionInfoSize;
ULONG dwMajorVersion;
ULONG dwMinorVersion;
ULONG dwBuildNumber;
ULONG dwPlatformId;
WCHAR szCSDVersion[128];
USHORT wServicePackMajor;
USHORT wServicePackMinor;
USHORT wSuiteMask;
UCHAR wProductType;
UCHAR wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
*/
typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
{
USHORT Length;
USHORT Flags;
CHAR Text[1];
} RTL_MESSAGE_RESOURCE_ENTRY, *PRTL_MESSAGE_RESOURCE_ENTRY;
typedef struct _RTL_MESSAGE_RESOURCE_BLOCK
{
ULONG LowId;
ULONG HighId;
ULONG OffsetToEntries;
} RTL_MESSAGE_RESOURCE_BLOCK, *PRTL_MESSAGE_RESOURCE_BLOCK;
typedef struct _RTL_MESSAGE_RESOURCE_DATA
{
ULONG NumberOfBlocks;
RTL_MESSAGE_RESOURCE_BLOCK Blocks[1];
} RTL_MESSAGE_RESOURCE_DATA, *PRTL_MESSAGE_RESOURCE_DATA;
typedef VOID
(STDCALL *PRTL_BASE_PROCESS_START_ROUTINE)(PTHREAD_START_ROUTINE StartAddress,
PVOID Parameter);
typedef struct _UNICODE_PREFIX_TABLE_ENTRY {
USHORT NodeTypeCode;
USHORT NameLength;
struct _UNICODE_PREFIX_TABLE_ENTRY *NextPrefixTree;
struct _UNICODE_PREFIX_TABLE_ENTRY *CaseMatch;
RTL_SPLAY_LINKS Links;
PUNICODE_STRING Prefix;
} UNICODE_PREFIX_TABLE_ENTRY;
typedef UNICODE_PREFIX_TABLE_ENTRY *PUNICODE_PREFIX_TABLE_ENTRY;
typedef struct _UNICODE_PREFIX_TABLE {
USHORT NodeTypeCode;
USHORT NameLength;
PUNICODE_PREFIX_TABLE_ENTRY NextPrefixTree;
PUNICODE_PREFIX_TABLE_ENTRY LastNextEntry;
} UNICODE_PREFIX_TABLE;
typedef UNICODE_PREFIX_TABLE *PUNICODE_PREFIX_TABLE;
typedef enum _TABLE_SEARCH_RESULT{
TableEmptyTree,
TableFoundNode,
TableInsertAsLeft,
TableInsertAsRight
} TABLE_SEARCH_RESULT;
typedef enum _RTL_GENERIC_COMPARE_RESULTS {
GenericLessThan,
GenericGreaterThan,
GenericEqual
} RTL_GENERIC_COMPARE_RESULTS;
struct _RTL_AVL_TABLE;
typedef
RTL_GENERIC_COMPARE_RESULTS
(STDCALL *PRTL_AVL_COMPARE_ROUTINE) (
struct _RTL_AVL_TABLE *Table,
PVOID FirstStruct,
PVOID SecondStruct
);
typedef
PVOID
(STDCALL *PRTL_AVL_ALLOCATE_ROUTINE) (
struct _RTL_AVL_TABLE *Table,
ULONG ByteSize
);
typedef
VOID
(STDCALL *PRTL_AVL_FREE_ROUTINE) (
struct _RTL_AVL_TABLE *Table,
PVOID Buffer
);
typedef
NTSTATUS
(STDCALL *PRTL_AVL_MATCH_FUNCTION) (
struct _RTL_AVL_TABLE *Table,
PVOID UserData,
PVOID MatchData
);
typedef struct _RTL_BALANCED_LINKS {
struct _RTL_BALANCED_LINKS *Parent;
struct _RTL_BALANCED_LINKS *LeftChild;
struct _RTL_BALANCED_LINKS *RightChild;
CHAR Balance;
UCHAR Reserved[3];
} RTL_BALANCED_LINKS;
typedef RTL_BALANCED_LINKS *PRTL_BALANCED_LINKS;
typedef struct _RTL_AVL_TABLE {
RTL_BALANCED_LINKS BalancedRoot;
PVOID OrderedPointer;
ULONG WhichOrderedElement;
ULONG NumberGenericTableElements;
ULONG DepthOfTree;
PRTL_BALANCED_LINKS RestartKey;
ULONG DeleteCount;
PRTL_AVL_COMPARE_ROUTINE CompareRoutine;
PRTL_AVL_ALLOCATE_ROUTINE AllocateRoutine;
PRTL_AVL_FREE_ROUTINE FreeRoutine;
PVOID TableContext;
} RTL_AVL_TABLE;
typedef RTL_AVL_TABLE *PRTL_AVL_TABLE;
struct _RTL_GENERIC_TABLE;
typedef
RTL_GENERIC_COMPARE_RESULTS
(STDCALL *PRTL_GENERIC_COMPARE_ROUTINE) (
struct _RTL_GENERIC_TABLE *Table,
PVOID FirstStruct,
PVOID SecondStruct
);
typedef
PVOID
(STDCALL *PRTL_GENERIC_ALLOCATE_ROUTINE) (
struct _RTL_GENERIC_TABLE *Table,
ULONG ByteSize
);
typedef
VOID
(STDCALL *PRTL_GENERIC_FREE_ROUTINE) (
struct _RTL_GENERIC_TABLE *Table,
PVOID Buffer
);
typedef struct _RTL_GENERIC_TABLE {
PRTL_SPLAY_LINKS TableRoot;
LIST_ENTRY InsertOrderList;
PLIST_ENTRY OrderedPointer;
ULONG WhichOrderedElement;
ULONG NumberGenericTableElements;
PRTL_GENERIC_COMPARE_ROUTINE CompareRoutine;
PRTL_GENERIC_ALLOCATE_ROUTINE AllocateRoutine;
PRTL_GENERIC_FREE_ROUTINE FreeRoutine;
PVOID TableContext;
} RTL_GENERIC_TABLE;
typedef RTL_GENERIC_TABLE *PRTL_GENERIC_TABLE;
typedef NTSTATUS
(*PHEAP_ENUMERATION_ROUTINE)(IN PVOID HeapHandle,
IN PVOID UserParam);
#define RTL_RANGE_LIST_ADD_IF_CONFLICT 0x00000001
#define RTL_RANGE_LIST_ADD_SHARED 0x00000002
#define RTL_RANGE_LIST_SHARED_OK 0x00000001
#define RTL_RANGE_LIST_NULL_CONFLICT_OK 0x00000002
#define RTL_RANGE_LIST_MERGE_IF_CONFLICT RTL_RANGE_LIST_ADD_IF_CONFLICT
typedef struct _RTL_RANGE {
ULONGLONG Start;
ULONGLONG End;
PVOID UserData;
PVOID Owner;
UCHAR Attributes;
UCHAR Flags;
} RTL_RANGE, *PRTL_RANGE;
#define RTL_RANGE_SHARED 0x01
#define RTL_RANGE_CONFLICT 0x02
typedef struct _RTL_RANGE_LIST {
LIST_ENTRY ListHead;
ULONG Flags;
ULONG Count;
ULONG Stamp;
} RTL_RANGE_LIST, *PRTL_RANGE_LIST;
typedef struct _RANGE_LIST_ITERATOR {
PLIST_ENTRY RangeListHead;
PLIST_ENTRY MergedHead;
PVOID Current;
ULONG Stamp;
} RTL_RANGE_LIST_ITERATOR, *PRTL_RANGE_LIST_ITERATOR;
typedef BOOLEAN
(STDCALL *PRTL_CONFLICT_RANGE_CALLBACK)(
IN PVOID Context,
IN PRTL_RANGE Range);
#endif /* __DDK_RTLTYPES_H */

View file

@ -1,446 +0,0 @@
#ifndef __INCLUDE_SECURITY_H
#define __INCLUDE_SECURITY_H
#include <ntos/ntdef.h>
#include <ntos/types.h>
#ifndef __USE_W32API
/* Privileges */
#define SE_MIN_WELL_KNOWN_PRIVILEGE (2L)
#define SE_CREATE_TOKEN_PRIVILEGE (2L)
#define SE_ASSIGNPRIMARYTOKEN_PRIVILEGE (3L)
#define SE_LOCK_MEMORY_PRIVILEGE (4L)
#define SE_INCREASE_QUOTA_PRIVILEGE (5L)
#define SE_UNSOLICITED_INPUT_PRIVILEGE (6L) /* unused */
#define SE_MACHINE_ACCOUNT_PRIVILEGE (6L)
#define SE_TCB_PRIVILEGE (7L)
#define SE_SECURITY_PRIVILEGE (8L)
#define SE_TAKE_OWNERSHIP_PRIVILEGE (9L)
#define SE_LOAD_DRIVER_PRIVILEGE (10L)
#define SE_SYSTEM_PROFILE_PRIVILEGE (11L)
#define SE_SYSTEMTIME_PRIVILEGE (12L)
#define SE_PROF_SINGLE_PROCESS_PRIVILEGE (13L)
#define SE_INC_BASE_PRIORITY_PRIVILEGE (14L)
#define SE_CREATE_PAGEFILE_PRIVILEGE (15L)
#define SE_CREATE_PERMANENT_PRIVILEGE (16L)
#define SE_BACKUP_PRIVILEGE (17L)
#define SE_RESTORE_PRIVILEGE (18L)
#define SE_SHUTDOWN_PRIVILEGE (19L)
#define SE_DEBUG_PRIVILEGE (20L)
#define SE_AUDIT_PRIVILEGE (21L)
#define SE_SYSTEM_ENVIRONMENT_PRIVILEGE (22L)
#define SE_CHANGE_NOTIFY_PRIVILEGE (23L)
#define SE_REMOTE_SHUTDOWN_PRIVILEGE (24L)
#define SE_MAX_WELL_KNOWN_PRIVILEGE SE_REMOTE_SHUTDOWN_PRIVILEGE
#endif
/* TOKEN_GROUPS structure */
#ifndef SE_GROUP_MANDATORY
#define SE_GROUP_MANDATORY (0x1L)
#define SE_GROUP_ENABLED_BY_DEFAULT (0x2L)
#define SE_GROUP_ENABLED (0x4L)
#define SE_GROUP_OWNER (0x8L)
#define SE_GROUP_LOGON_ID (0xC0000000L)
#endif
#if 0
/* Security descriptor control. */
#define SECURITY_DESCRIPTOR_REVISION (1)
#define SECURITY_DESCRIPTOR_MIN_LENGTH (20)
#define SE_OWNER_DEFAULTED (0x0001)
#define SE_GROUP_DEFAULTED (0x0002)
#define SE_DACL_PRESENT (0x0004)
#define SE_DACL_DEFAULTED (0x0008)
#define SE_SACL_PRESENT (0x0010)
#define SE_SACL_DEFAULTED (0x0020)
#define SE_RM_CONTROL_VALID (0x4000)
#define SE_SELF_RELATIVE (0x8000)
#endif
/* This is defined in the Win 32 API headers as something else: */
#if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__) || defined(__NTDLL__) || defined(__NTAPP__)
typedef ULONG ACCESS_MODE, *PACCESS_MODE;
#endif
#if 0
typedef struct _ACE_HEADER
{
CHAR AceType;
CHAR AceFlags;
USHORT AceSize;
ACCESS_MASK AccessMask;
} ACE_HEADER, *PACE_HEADER;
typedef struct
{
ACE_HEADER Header;
} ACE, *PACE;
#endif
#ifdef __GNU__
typedef struct _SECURITY_DESCRIPTOR_CONTEXT
{
} SECURITY_DESCRIPTOR_CONTEXT, *PSECURITY_DESCRIPTOR_CONTEXT;
#endif
#ifndef __USE_W32API
#define SYSTEM_LUID { 0x3E7, 0x0 }
#define ANONYMOUS_LOGON_LUID { 0x3e6, 0x0 }
#define LOCALSERVICE_LUID { 0x3e5, 0x0 }
#define NETWORKSERVICE_LUID { 0x3e4, 0x0 }
/* SID Auhority */
#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
#define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
#define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
#define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
#define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
/* SID */
#define SECURITY_NULL_RID (0L)
#define SECURITY_WORLD_RID (0L)
#define SECURITY_LOCAL_RID (0L)
#define SECURITY_CREATOR_OWNER_RID (0L)
#define SECURITY_CREATOR_GROUP_RID (0x1L)
#define SECURITY_CREATOR_OWNER_SERVER_RID (0x2L)
#define SECURITY_CREATOR_GROUP_SERVER_RID (0x3L)
#define SECURITY_DIALUP_RID (0x1L)
#define SECURITY_NETWORK_RID (0x2L)
#define SECURITY_BATCH_RID (0x3L)
#define SECURITY_INTERACTIVE_RID (0x4L)
#define SECURITY_LOGON_IDS_RID (0x5L)
#define SECURITY_LOGON_IDS_RID_COUNT (0x3L)
#define SECURITY_SERVICE_RID (0x6L)
#define SECURITY_ANONYMOUS_LOGON_RID (0x7L)
#define SECURITY_PROXY_RID (0x8L)
#define SECURITY_ENTERPRISE_CONTROLLERS_RID (0x9L)
#define SECURITY_SERVER_LOGON_RID SECURITY_ENTERPRISE_CONTROLLERS_RID
#define SECURITY_PRINCIPAL_SELF_RID (0xAL)
#define SECURITY_AUTHENTICATED_USER_RID (0xBL)
#define SECURITY_RESTRICTED_CODE_RID (0xCL)
#define SECURITY_LOCAL_SYSTEM_RID (0x12L)
#define SECURITY_NT_NON_UNIQUE_RID (0x15L)
#define SECURITY_BUILTIN_DOMAIN_RID (0x20L)
#define DOMAIN_USER_RID_ADMIN (0x1F4L)
#define DOMAIN_USER_RID_GUEST (0x1F5L)
#define DOMAIN_GROUP_RID_ADMINS (0x200L)
#define DOMAIN_GROUP_RID_USERS (0x201L)
#define DOMAIN_ALIAS_RID_ADMINS (0x220L)
#define DOMAIN_ALIAS_RID_USERS (0x221L)
#define DOMAIN_ALIAS_RID_GUESTS (0x222L)
#define DOMAIN_ALIAS_RID_POWER_USERS (0x223L)
#define DOMAIN_ALIAS_RID_ACCOUNT_OPS (0x224L)
#define DOMAIN_ALIAS_RID_SYSTEM_OPS (0x225L)
#define DOMAIN_ALIAS_RID_PRINT_OPS (0x226L)
#define DOMAIN_ALIAS_RID_BACKUP_OPS (0x227L)
#define DOMAIN_ALIAS_RID_REPLICATOR (0x228L)
/* ACCESS_MASK */
/* Generic rights */
#define GENERIC_READ (0x80000000L)
#define GENERIC_WRITE (0x40000000L)
#define GENERIC_EXECUTE (0x20000000L)
#define GENERIC_ALL (0x10000000L)
#define MAXIMUM_ALLOWED (0x02000000L)
#define ACCESS_SYSTEM_SECURITY (0x01000000L)
/* Standard rights */
#define STANDARD_RIGHTS_REQUIRED (0x000f0000L)
#define STANDARD_RIGHTS_WRITE (0x00020000L)
#define STANDARD_RIGHTS_READ (0x00020000L)
#define STANDARD_RIGHTS_EXECUTE (0x00020000L)
#define STANDARD_RIGHTS_ALL (0x001f0000L)
#define SPECIFIC_RIGHTS_ALL (0x0000ffffL)
/* Token rights */
#define TOKEN_ASSIGN_PRIMARY (0x0001L)
#define TOKEN_DUPLICATE (0x0002L)
#define TOKEN_IMPERSONATE (0x0004L)
#define TOKEN_QUERY (0x0008L)
#define TOKEN_QUERY_SOURCE (0x0010L)
#define TOKEN_ADJUST_PRIVILEGES (0x0020L)
#define TOKEN_ADJUST_GROUPS (0x0040L)
#define TOKEN_ADJUST_DEFAULT (0x0080L)
#define TOKEN_ADJUST_SESSIONID (0x0100L)
#define TOKEN_ALL_ACCESS (0xf01ffL)
#define TOKEN_READ (0x20008L)
#define TOKEN_WRITE (0x200e0L)
#define TOKEN_EXECUTE (0x20000L)
typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
#define SECURITY_STATIC_TRACKING (0)
#define SECURITY_DYNAMIC_TRACKING (1)
typedef ULONG SECURITY_INFORMATION, *PSECURITY_INFORMATION;
#define OWNER_SECURITY_INFORMATION (0x1L)
#define GROUP_SECURITY_INFORMATION (0x2L)
#define DACL_SECURITY_INFORMATION (0x4L)
#define SACL_SECURITY_INFORMATION (0x8L)
typedef enum _TOKEN_INFORMATION_CLASS
{
TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics,
TokenRestrictedSids,
TokenSessionId,
TokenGroupsAndPrivileges,
TokenSessionReference,
TokenSandBoxInert,
TokenAuditPolicy,
TokenOrigin
} TOKEN_INFORMATION_CLASS;
typedef enum _SECURITY_IMPERSONATION_LEVEL
{
SecurityAnonymous,
SecurityIdentification,
SecurityImpersonation,
SecurityDelegation
} SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
typedef ULONG ACCESS_MASK, *PACCESS_MASK;
typedef ULONG TOKEN_TYPE, *PTOKEN_TYPE;
#define TokenPrimary ((TOKEN_TYPE)1)
#define TokenImpersonation ((TOKEN_TYPE)2)
typedef struct _SECURITY_QUALITY_OF_SERVICE
{
ULONG Length;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
BOOLEAN EffectiveOnly;
} SECURITY_QUALITY_OF_SERVICE;
typedef SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;
typedef struct _ACE_HEADER
{
BYTE AceType;
BYTE AceFlags;
WORD AceSize;
} ACE_HEADER, *PACE_HEADER;
typedef struct _SID_IDENTIFIER_AUTHORITY
{
BYTE Value[6];
} SID_IDENTIFIER_AUTHORITY, *PSID_IDENTIFIER_AUTHORITY;
typedef struct _SID
{
UCHAR Revision;
UCHAR SubAuthorityCount;
SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
ULONG SubAuthority[1];
} SID, *PISID;
typedef PVOID PSID;
typedef struct _ACL
{
UCHAR AclRevision;
UCHAR Sbz1;
USHORT AclSize;
USHORT AceCount;
USHORT Sbz2;
} ACL, *PACL;
typedef struct _ACL_REVISION_INFORMATION
{
ULONG AclRevision;
} ACL_REVISION_INFORMATION, *PACL_REVISION_INFORMATION;
typedef struct _ACL_SIZE_INFORMATION
{
ULONG AceCount;
ULONG AclBytesInUse;
ULONG AclBytesFree;
} ACL_SIZE_INFORMATION, *PACL_SIZE_INFORMATION;
typedef enum _ACL_INFORMATION_CLASS
{
AclRevisionInformation = 1,
AclSizeInformation
} ACL_INFORMATION_CLASS;
typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
typedef struct _LUID
{
ULONG LowPart;
LONG HighPart;
} LUID, *PLUID;
typedef struct _SECURITY_DESCRIPTOR
{
UCHAR Revision;
UCHAR Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
PSID Owner;
PSID Group;
PACL Sacl;
PACL Dacl;
} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR;
typedef struct _SECURITY_DESCRIPTOR_RELATIVE
{
UCHAR Revision;
UCHAR Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
ULONG Owner;
ULONG Group;
ULONG Sacl;
ULONG Dacl;
} SECURITY_DESCRIPTOR_RELATIVE, *PSECURITY_DESCRIPTOR_RELATIVE;
typedef struct _LUID_AND_ATTRIBUTES
{
LUID Luid;
ULONG Attributes;
} LUID_AND_ATTRIBUTES, *PLUID_AND_ATTRIBUTES;
typedef struct _TOKEN_SOURCE
{
CHAR SourceName[8];
LUID SourceIdentifier;
} TOKEN_SOURCE, *PTOKEN_SOURCE;
typedef struct _TOKEN_CONTROL
{
LUID TokenId;
LUID AuthenticationId;
LUID ModifiedId;
TOKEN_SOURCE TokenSource;
} TOKEN_CONTROL, *PTOKEN_CONTROL;
typedef struct _SID_AND_ATTRIBUTES
{
PSID Sid;
DWORD Attributes;
} SID_AND_ATTRIBUTES, *PSID_AND_ATTRIBUTES;
typedef SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
typedef SID_AND_ATTRIBUTES_ARRAY *PSID_AND_ATTRIBUTES_ARRAY;
typedef struct _TOKEN_USER
{
SID_AND_ATTRIBUTES User;
} TOKEN_USER, *PTOKEN_USER;
typedef struct _TOKEN_PRIMARY_GROUP
{
PSID PrimaryGroup;
} TOKEN_PRIMARY_GROUP, *PTOKEN_PRIMARY_GROUP;
typedef struct _TOKEN_GROUPS
{
DWORD GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
} TOKEN_GROUPS, *PTOKEN_GROUPS, *LPTOKEN_GROUPS;
typedef struct _TOKEN_GROUPS_AND_PRIVILEGES
{
ULONG SidCount;
ULONG SidLength;
PSID_AND_ATTRIBUTES Sids;
ULONG RestrictedSidCount;
ULONG RestrictedSidLength;
PSID_AND_ATTRIBUTES RestrictedSids;
ULONG PrivilegeCount;
ULONG PrivilegeLength;
PLUID_AND_ATTRIBUTES Privileges;
LUID AuthenticationId;
} TOKEN_GROUPS_AND_PRIVILEGES, *PTOKEN_GROUPS_AND_PRIVILEGES;
typedef struct _TOKEN_PRIVILEGES
{
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES, *PTOKEN_PRIVILEGES, *LPTOKEN_PRIVILEGES;
typedef struct _TOKEN_OWNER
{
PSID Owner;
} TOKEN_OWNER, *PTOKEN_OWNER;
typedef struct _TOKEN_DEFAULT_DACL
{
PACL DefaultDacl;
} TOKEN_DEFAULT_DACL, *PTOKEN_DEFAULT_DACL;
typedef struct _TOKEN_STATISTICS
{
LUID TokenId;
LUID AuthenticationId;
LARGE_INTEGER ExpirationTime;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
DWORD DynamicCharged;
DWORD DynamicAvailable;
DWORD GroupCount;
DWORD PrivilegeCount;
LUID ModifiedId;
} TOKEN_STATISTICS, *PTOKEN_STATISTICS;
typedef struct _TOKEN_ORIGIN {
LUID OriginatingLogonSession;
} TOKEN_ORIGIN, *PTOKEN_ORIGIN;
typedef struct _GENERIC_MAPPING
{
ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
} GENERIC_MAPPING, *PGENERIC_MAPPING;
typedef struct _PRIVILEGE_SET
{
DWORD PrivilegeCount;
DWORD Control;
LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
} PRIVILEGE_SET, *PPRIVILEGE_SET, *LPPRIVILEGE_SET;
#define INITIAL_PRIVILEGE_COUNT 3
typedef struct _INITIAL_PRIVILEGE_SET
{
ULONG PrivilegeCount;
ULONG Control;
LUID_AND_ATTRIBUTES Privilege[INITIAL_PRIVILEGE_COUNT];
} INITIAL_PRIVILEGE_SET, *PINITIAL_PRIVILEGE_SET;
typedef struct _SECURITY_ATTRIBUTES
{
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
#else /* !__USE_W32API */
typedef struct _ACL_REVISION_INFORMATION *PACL_REVISION_INFORMATION;
typedef struct _ACL_SIZE_INFORMATION *PACL_SIZE_INFORMATION;
#endif /* __USE_W32API */
typedef struct
{
ACE_HEADER Header;
ACCESS_MASK AccessMask;
} ACE, *PACE;
#endif /* __INCLUDE_SECURITY_H */

View file

@ -1,63 +0,0 @@
#ifndef _INCLUDE_NTOS_SEFUNCS_H
#define _INCLUDE_NTOS_SEFUNCS_H
NTSTATUS
STDCALL
SeCaptureSecurityDescriptor(
IN PSECURITY_DESCRIPTOR OriginalSecurityDescriptor,
IN KPROCESSOR_MODE CurrentMode,
IN POOL_TYPE PoolType,
IN BOOLEAN CaptureIfKernel,
OUT PSECURITY_DESCRIPTOR *CapturedSecurityDescriptor
);
VOID
STDCALL
SeCloseObjectAuditAlarm(
IN PVOID Object,
IN HANDLE Handle,
IN BOOLEAN PerformAction
);
NTSTATUS
STDCALL
SeCreateAccessState(
PACCESS_STATE AccessState,
PAUX_DATA AuxData,
ACCESS_MASK Access,
PGENERIC_MAPPING GenericMapping
);
VOID STDCALL
SeDeleteAccessState(IN PACCESS_STATE AccessState);
VOID
STDCALL
SePrivilegeObjectAuditAlarm(
IN HANDLE Handle,
IN PSECURITY_SUBJECT_CONTEXT SubjectContext,
IN ACCESS_MASK DesiredAccess,
IN PPRIVILEGE_SET Privileges,
IN BOOLEAN AccessGranted,
IN KPROCESSOR_MODE CurrentMode
);
NTSTATUS
STDCALL
SeReleaseSecurityDescriptor(
IN PSECURITY_DESCRIPTOR CapturedSecurityDescriptor,
IN KPROCESSOR_MODE CurrentMode,
IN BOOLEAN CaptureIfKernelMode
);
SECURITY_IMPERSONATION_LEVEL STDCALL
SeTokenImpersonationLevel(IN PACCESS_TOKEN Token);
BOOLEAN
STDCALL
SeTokenIsWriteRestricted(
IN PACCESS_TOKEN Token
);
#endif /* _INCLUDE_NTOS_SEFUNCS_H */

View file

@ -1,77 +0,0 @@
#ifndef __NTOS_SERVICE_H
#define __NTOS_SERVICE_H
/* number of entries in the service descriptor tables */
#define SSDT_MAX_ENTRIES 4
#ifndef __USE_W32API
/* System Service Dispatch Table */
typedef PVOID (NTAPI * SSDT)(VOID);
typedef SSDT * PSSDT;
/* System Service Parameters Table */
typedef UCHAR SSPT, *PSSPT;
typedef struct t_KeServiceDescriptorTableEntry {
PSSDT SSDT;
PULONG ServiceCounterTable;
ULONG NumberOfServices;
PSSPT SSPT;
} SSDT_ENTRY, *PSSDT_ENTRY;
#endif /* __USE_W32API */
/* --- NTOSKRNL.EXE --- */
#if defined(__NTOSKRNL__)
#ifdef __GNUC__
extern
SSDT_ENTRY
KeServiceDescriptorTable[SSDT_MAX_ENTRIES] __declspec(dllexport);
#else /* __GNUC__ */
/* Microsft-style */
extern
__declspec(dllexport)
SSDT_ENTRY
KeServiceDescriptorTable[SSDT_MAX_ENTRIES];
#endif /* __GNUC__ */
#else /* __NTOSKRNL__ */
#ifdef __GNUC__
extern
SSDT_ENTRY
KeServiceDescriptorTable[SSDT_MAX_ENTRIES] __declspec(dllimport);
#else /* __GNUC__ */
/* Microsft-style */
extern
__declspec(dllimport)
SSDT_ENTRY
KeServiceDescriptorTable[SSDT_MAX_ENTRIES];
#endif /* __GNUC__ */
#endif /* __NTOSKRNL__ */
extern
SSDT_ENTRY
KeServiceDescriptorTableShadow[SSDT_MAX_ENTRIES];
#ifndef __USE_W32API
BOOLEAN
STDCALL
KeAddSystemServiceTable (
PSSDT SSDT,
PULONG ServiceCounterTable,
ULONG NumberOfServices,
PSSPT SSPT,
ULONG TableIndex
);
#endif /* __USE_W32API */
#endif /* __NTOS_SERVICE_H */

View file

@ -1,70 +0,0 @@
#ifndef __INCLUDE_NTOS_SETYPES_H
#define __INCLUDE_NTOS_SETYPES_H
typedef struct _SEP_AUDIT_POLICY_CATEGORIES {
UCHAR System:4;
UCHAR Logon:4;
UCHAR ObjectAccess:4;
UCHAR PrivilegeUse:4;
UCHAR DetailedTracking:4;
UCHAR PolicyChange:4;
UCHAR AccountManagement:4;
UCHAR DirectoryServiceAccess:4;
UCHAR AccountLogon:4;
} SEP_AUDIT_POLICY_CATEGORIES, *PSEP_AUDIT_POLICY_CATEGORIES;
typedef struct _SEP_AUDIT_POLICY_OVERLAY {
ULONGLONG PolicyBits:36;
UCHAR SetBit:1;
} SEP_AUDIT_POLICY_OVERLAY, *PSEP_AUDIT_POLICY_OVERLAY;
typedef struct _SEP_AUDIT_POLICY {
union {
SEP_AUDIT_POLICY_CATEGORIES PolicyElements;
SEP_AUDIT_POLICY_OVERLAY PolicyOverlay;
ULONGLONG Overlay;
};
} SEP_AUDIT_POLICY, *PSEP_AUDIT_POLICY;
#define TOKEN_HAS_TRAVERSE_PRIVILEGE 0x01
typedef struct _TOKEN {
TOKEN_SOURCE TokenSource; /* 0x00 */
LUID TokenId; /* 0x10 */
LUID AuthenticationId; /* 0x18 */
LUID ParentTokenId; /* 0x20 */
LARGE_INTEGER ExpirationTime; /* 0x28 */
struct _ERESOURCE *TokenLock; /* 0x30 */
SEP_AUDIT_POLICY AuditPolicy; /* 0x38 */
LUID ModifiedId; /* 0x40 */
ULONG SessionId; /* 0x48 */
ULONG UserAndGroupCount; /* 0x4C */
ULONG RestrictedSidCount; /* 0x50 */
ULONG PrivilegeCount; /* 0x54 */
ULONG VariableLength; /* 0x58 */
ULONG DynamicCharged; /* 0x5C */
ULONG DynamicAvailable; /* 0x60 */
ULONG DefaultOwnerIndex; /* 0x64 */
PSID_AND_ATTRIBUTES UserAndGroups; /* 0x68 */
PSID_AND_ATTRIBUTES RestrictedSids; /* 0x6C */
PSID PrimaryGroup; /* 0x70 */
PLUID_AND_ATTRIBUTES Privileges; /* 0x74 */
PULONG DynamicPart; /* 0x78 */
PACL DefaultDacl; /* 0x7C */
TOKEN_TYPE TokenType; /* 0x80 */
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel; /* 0x84 */
ULONG TokenFlags; /* 0x88 */
BOOLEAN TokenInUse; /* 0x8C */
PVOID ProxyData; /* 0x90 */
PVOID AuditData; /* 0x94 */
LUID OriginatingLogonSession; /* 0x98 */
ULONG VariablePart; /* 0xA0 */
} TOKEN, *PTOKEN;
typedef struct _AUX_DATA
{
PPRIVILEGE_SET PrivilegeSet;
GENERIC_MAPPING GenericMapping;
ULONG Reserved;
} AUX_DATA, *PAUX_DATA;
#endif /* __INCLUDE_NTOS_SETYPES_H */

View file

@ -1,38 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/synch.h
* PURPOSE: Synchronization declarations used by all the parts of the
* system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_SYNCH_H
#define __INCLUDE_SYNCH_H
#ifndef __USE_W32API
#define EVENT_ALL_ACCESS (0x1f0003L)
#define EVENT_MODIFY_STATE (2)
#define EVENT_QUERY_STATE (1)
#define MUTEX_ALL_ACCESS (0x1f0001L)
#define MUTANT_ALL_ACCESS (0x1f0001L)
#define MUTANT_QUERY_STATE (1)
#define SEMAPHORE_ALL_ACCESS (0x1f0003L)
#define SEMAPHORE_QUERY_STATE (1)
#define SEMAPHORE_MODIFY_STATE (2)
#define TIMER_ALL_ACCESS (0x1f0003L)
#define TIMER_QUERY_STATE (1)
#define TIMER_MODIFY_STATE (2)
#define IO_COMPLETION_QUERY_STATE (0x0001)
#define IO_COMPLETION_MODIFY_STATE (0x0002)
#define IO_COMPLETION_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3)
#endif /* !__USE_W32API */
#define EVENT_PAIR_ALL_ACCESS (0x1f0000L)
#define MUTEX_QUERY_STATE (1)
#endif /* __INCLUDE_SYNCH_H */

View file

@ -1,57 +0,0 @@
/* $Id$
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/ntos/tape.h
* PURPOSE: Tape drive definitions
* PROGRAMMER: Eric Kohl
*/
#ifndef __INCLUDE_TAPE_H
#define __INCLUDE_TAPE_H
#define IOCTL_TAPE_BASE FILE_DEVICE_TAPE
#define IOCTL_TAPE_CHECK_VERIFY \
CTL_CODE(IOCTL_TAPE_BASE, 0x0200, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_CREATE_PARTITION \
CTL_CODE(IOCTL_TAPE_BASE, 0x000a, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_TAPE_ERASE \
CTL_CODE(IOCTL_TAPE_BASE, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_TAPE_FIND_NEW_DEVICES \
CTL_CODE(IOCTL_DISK_BASE, 0x0206, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_GET_DRIVE_PARAMS \
CTL_CODE(IOCTL_TAPE_BASE, 0x0005, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_GET_MEDIA_PARAMS \
CTL_CODE(IOCTL_TAPE_BASE, 0x0007, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_GET_POSITION \
CTL_CODE(IOCTL_TAPE_BASE, 0x0003, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_GET_STATUS \
CTL_CODE(IOCTL_TAPE_BASE, 0x0009, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_PREPARE \
CTL_CODE(IOCTL_TAPE_BASE, 0x0001, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_SET_DRIVE_PARAMS \
CTL_CODE(IOCTL_TAPE_BASE, 0x0006, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#define IOCTL_TAPE_SET_MEDIA_PARAMS \
CTL_CODE(IOCTL_TAPE_BASE, 0x0008, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_SET_POSITION \
CTL_CODE(IOCTL_TAPE_BASE, 0x0004, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_TAPE_WRITE_MARKS \
CTL_CODE(IOCTL_TAPE_BASE, 0x0002, METHOD_BUFFERED, FILE_READ_ACCESS | FILE_WRITE_ACCESS)
#endif /* __INCLUDE_TAPE_H */

View file

@ -1,51 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/time.h
* PURPOSE: Time declarations used by all the parts of the system
* PROGRAMMER: David Welch <welch@cwcom.net>
* UPDATE HISTORY:
* 27/06/00: Created
*/
#ifndef __INCLUDE_NTOS_TIME_H
#define __INCLUDE_NTOS_TIME_H
#include <ntos/types.h>
#ifndef __USE_W32API
typedef struct _SYSTEMTIME
{
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
typedef struct _TIME_ZONE_INFORMATION
{
LONG Bias;
WCHAR StandardName[32];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[32];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
} TIME_ZONE_INFORMATION, *PTIME_ZONE_INFORMATION, *LPTIME_ZONE_INFORMATION;
#else /* __USE_W32API */
#include <ddk/ntapi.h>
typedef LPTIME_ZONE_INFORMATION PTIME_ZONE_INFORMATION;
#endif /* __USE_W32API */
#endif /* __INCLUDE_NTOS_TIME_H */

View file

@ -1,110 +0,0 @@
/*
*
*/
#ifndef __INCLUDE_DDK_I386_TSS_H
#define __INCLUDE_DDK_I386_TSS_H
#define KTSS_ESP0 (0x4)
#define KTSS_CR3 (0x1C)
#define KTSS_EFLAGS (0x24)
#define KTSS_IOMAPBASE (0x66)
#ifndef __ASM__
#include <pshpack1.h>
typedef struct _KTSSNOIOPM
{
USHORT PreviousTask;
USHORT Reserved1;
ULONG Esp0;
USHORT Ss0;
USHORT Reserved2;
ULONG Esp1;
USHORT Ss1;
USHORT Reserved3;
ULONG Esp2;
USHORT Ss2;
USHORT Reserved4;
ULONG Cr3;
ULONG Eip;
ULONG Eflags;
ULONG Eax;
ULONG Ecx;
ULONG Edx;
ULONG Ebx;
ULONG Esp;
ULONG Ebp;
ULONG Esi;
ULONG Edi;
USHORT Es;
USHORT Reserved5;
USHORT Cs;
USHORT Reserved6;
USHORT Ss;
USHORT Reserved7;
USHORT Ds;
USHORT Reserved8;
USHORT Fs;
USHORT Reserved9;
USHORT Gs;
USHORT Reserved10;
USHORT Ldt;
USHORT Reserved11;
USHORT Trap;
USHORT IoMapBase;
/* no interrupt redirection map */
UCHAR IoBitmap[1];
} KTSSNOIOPM;
typedef struct _KTSS
{
USHORT PreviousTask;
USHORT Reserved1;
ULONG Esp0;
USHORT Ss0;
USHORT Reserved2;
ULONG Esp1;
USHORT Ss1;
USHORT Reserved3;
ULONG Esp2;
USHORT Ss2;
USHORT Reserved4;
ULONG Cr3;
ULONG Eip;
ULONG Eflags;
ULONG Eax;
ULONG Ecx;
ULONG Edx;
ULONG Ebx;
ULONG Esp;
ULONG Ebp;
ULONG Esi;
ULONG Edi;
USHORT Es;
USHORT Reserved5;
USHORT Cs;
USHORT Reserved6;
USHORT Ss;
USHORT Reserved7;
USHORT Ds;
USHORT Reserved8;
USHORT Fs;
USHORT Reserved9;
USHORT Gs;
USHORT Reserved10;
USHORT Ldt;
USHORT Reserved11;
USHORT Trap;
USHORT IoMapBase;
/* no interrupt redirection map */
UCHAR IoBitmap[8193];
} KTSS;
#include <poppack.h>
#endif /* not __ASM__ */
#endif /* __INCLUDE_DDK_I386_TSS_H */

View file

@ -1,553 +0,0 @@
/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: include/types.h
* PURPOSE: Types used by all the parts of the system
* PROGRAMMER: David Welch <welch@cwcom.net>
* DEFINES: _WIN64: 64-bit architecture
* _WIN32: 32-bit architecture (default)
* UPDATE HISTORY:
* 27/06/00: Created
* 01/05/01: Portabillity changes
*/
#ifndef __INCLUDE_TYPES_H
#define __INCLUDE_TYPES_H
#define EXPORTED __declspec(dllexport)
#define IMPORTED __declspec(dllimport)
#include <basetsd.h>
#ifndef STDCALL_FUNC
#define STDCALL_FUNC(a) (STDCALL a)
#endif
/* Fixed precision types */
typedef signed char INT8, *PINT8;
typedef unsigned char UINT8, *PUINT8;
#ifndef __USE_W32API
typedef signed short INT16, *PINT16;
typedef unsigned short UINT16, *PUINT16;
#endif
/* Check VOID before defining CHAR, SHORT */
#ifndef VOID
#define VOID void
typedef char CHAR;
typedef short SHORT;
#endif
#ifndef __USE_W32API
#ifdef i386
#ifdef __GNUC__
#define STDCALL __attribute__ ((stdcall))
#define CDECL __attribute__ ((cdecl))
#else
#define STDCALL __stdcall
#define CDECL __cdecl
#endif
#define CALLBACK STDCALL
#define PASCAL WINAPI
#else
#ifdef __GNUC__
#define STDCALL
#define CDECL
#define CALLBACK
#define PASCAL
#else
#define STDCALL __stdcall
#define CDECL __cdecl
#define CALLBACK
#define PASCAL
#endif /*__GNUC__*/
#endif /*i386*/
typedef INT32 INT, *PINT;
typedef LONG32 LONG, *PLONG;
typedef unsigned long DWORD, *PDWORD;
typedef UINT32 UINT, *PUINT;
typedef unsigned long ULONG, *PULONG;
#ifndef _WCHAR_T_
#define _WCHAR_T_
#define _WCHAR_T
#define _WCHAR_T_DEFINED
#ifndef __WCHAR_TYPE__
#define __WCHAR_TYPE__ short unsigned int
#endif
#ifndef __cplusplus
typedef __WCHAR_TYPE__ wchar_t;
#endif /* C++ */
#endif /* wchar_t not already defined */
/* #ifndef __cplusplus
#ifndef _WCHAR_T_DEFINED
#define _WCHAR_T_DEFINED
typedef unsigned short wchar_t;
#endif
#endif
*/
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef wchar_t WCHAR;
typedef unsigned short WORD;
typedef int BOOL;
typedef unsigned char BOOLEAN;
typedef BOOLEAN* PBOOLEAN;
typedef wchar_t *LPWSTR;
typedef wchar_t *PWSTR;
typedef unsigned char *PUCHAR;
typedef unsigned short *PUSHORT;
typedef void *PVOID;
typedef unsigned char BYTE;
typedef void *LPVOID;
typedef float *PFLOAT;
typedef wchar_t *PWCH;
typedef unsigned short *PWORD;
typedef const void *LPCVOID;
typedef BYTE *LPBYTE, *PBYTE;
typedef BOOL *PBOOL;
typedef DWORD LCID;
typedef DWORD *PLCID;
typedef const char *LPCSTR;
typedef char *LPSTR;
typedef const wchar_t *LPCWSTR;
typedef CHAR *PCHAR;
typedef CHAR *PCH;
typedef void *HANDLE;
typedef HANDLE *PHANDLE;
typedef char CCHAR;
typedef CCHAR *PCCHAR;
typedef wchar_t *PWCHAR;
typedef ULONG WAIT_TYPE;
typedef USHORT CSHORT;
typedef const wchar_t *PCWSTR;
typedef char* PCSZ;
typedef long long LONGLONG;
typedef LONGLONG *PLONGLONG;
typedef unsigned long long ULONGLONG;
typedef ULONGLONG *PULONGLONG;
typedef DWORD STDCALL_FUNC (*PTHREAD_START_ROUTINE) (LPVOID);
typedef union _LARGE_INTEGER
{
struct
{
DWORD LowPart;
LONG HighPart;
} u;
#ifdef ANONYMOUSUNIONS
struct
{
DWORD LowPart;
LONG HighPart;
};
#endif /* ANONYMOUSUNIONS */
LONGLONG QuadPart;
} LARGE_INTEGER, *PLARGE_INTEGER;
typedef union _ULARGE_INTEGER
{
struct
{
DWORD LowPart;
DWORD HighPart;
} u;
#ifdef ANONYMOUSUNIONS
struct
{
DWORD LowPart;
DWORD HighPart;
};
#endif /* ANONYMOUSUNIONS */
ULONGLONG QuadPart;
} ULARGE_INTEGER, *PULARGE_INTEGER;
/*
* Moved here by AG
* typedef ULARGE_INTEGER TIME, *PTIME;
*/
typedef struct _FILETIME
{
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *LPFILETIME, *PFILETIME;
typedef struct _LIST_ENTRY
{
struct _LIST_ENTRY *Flink;
struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY;
typedef struct _SINGLE_LIST_ENTRY
{
struct _SINGLE_LIST_ENTRY *Next;
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
#define SLIST_ENTRY SINGLE_LIST_ENTRY
#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
typedef const UNICODE_STRING* PCUNICODE_STRING;
#define UNICODE_NULL ((WCHAR)0)
typedef struct _FLOATING_SAVE_AREA
{
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[80];
DWORD Cr0NpxState;
} FLOATING_SAVE_AREA;
typedef unsigned short RTL_ATOM;
typedef unsigned short *PRTL_ATOM;
#else /* __USE_W32API */
#include <windows.h>
#endif /* __USE_W32API */
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void*)0)
#endif /* __cplusplus */
#endif /* NULL */
#define CONST const
#ifdef __PPC__
#define CONTEXT_CONTROL 1L
#define CONTEXT_FLOATING_POINT 2L
#define CONTEXT_INTEGER 4L
#define CONTEXT_DEBUG_REGISTERS 8L
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)
#define CONTEXT_DEBUGGER (CONTEXT_FULL)
#else /* x86 */
#define SIZE_OF_80387_REGISTERS 80
/* Values for contextflags */
#define CONTEXT_i386 0x10000
#ifndef __USE_W32API
#define CONTEXT_CONTROL (CONTEXT_i386 | 1)
#define CONTEXT_INTEGER (CONTEXT_i386 | 2)
#define CONTEXT_SEGMENTS (CONTEXT_i386 | 4)
#define CONTEXT_FLOATING_POINT (CONTEXT_i386 | 8)
#define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10)
#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386 | 0x20)
#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
#define MAXIMUM_SUPPORTED_EXTENSION 512
#endif /* !__USE_W32API */
/* our own invention */
#define FLAG_TRACE_BIT 0x100
#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
#endif
typedef struct _CONTEXT_X86
{
DWORD ContextFlags;
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
FLOATING_SAVE_AREA FloatSave;
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];
} CONTEXT_X86, *PCONTEXT_X86, *LPCONTEXT_X86;
typedef struct _CONTEXT_PPC
{
/* Floating point registers returned when CONTEXT_FLOATING_POINT is set */
double Fpr0;
double Fpr1;
double Fpr2;
double Fpr3;
double Fpr4;
double Fpr5;
double Fpr6;
double Fpr7;
double Fpr8;
double Fpr9;
double Fpr10;
double Fpr11;
double Fpr12;
double Fpr13;
double Fpr14;
double Fpr15;
double Fpr16;
double Fpr17;
double Fpr18;
double Fpr19;
double Fpr20;
double Fpr21;
double Fpr22;
double Fpr23;
double Fpr24;
double Fpr25;
double Fpr26;
double Fpr27;
double Fpr28;
double Fpr29;
double Fpr30;
double Fpr31;
double Fpscr;
/* Integer registers returned when CONTEXT_INTEGER is set. */
DWORD Gpr0;
DWORD Gpr1;
DWORD Gpr2;
DWORD Gpr3;
DWORD Gpr4;
DWORD Gpr5;
DWORD Gpr6;
DWORD Gpr7;
DWORD Gpr8;
DWORD Gpr9;
DWORD Gpr10;
DWORD Gpr11;
DWORD Gpr12;
DWORD Gpr13;
DWORD Gpr14;
DWORD Gpr15;
DWORD Gpr16;
DWORD Gpr17;
DWORD Gpr18;
DWORD Gpr19;
DWORD Gpr20;
DWORD Gpr21;
DWORD Gpr22;
DWORD Gpr23;
DWORD Gpr24;
DWORD Gpr25;
DWORD Gpr26;
DWORD Gpr27;
DWORD Gpr28;
DWORD Gpr29;
DWORD Gpr30;
DWORD Gpr31;
DWORD Cr; /* Condition register */
DWORD Xer; /* Fixed point exception register */
/* The following are set when CONTEXT_CONTROL is set. */
DWORD Msr; /* Machine status register */
DWORD Iar; /* Instruction address register */
DWORD Lr; /* Link register */
DWORD Ctr; /* Control register */
/* Control which context values are returned */
DWORD ContextFlags;
DWORD Fill[3];
/* Registers returned if CONTEXT_DEBUG_REGISTERS is set. */
DWORD Dr0; /* Breakpoint Register 1 */
DWORD Dr1; /* Breakpoint Register 2 */
DWORD Dr2; /* Breakpoint Register 3 */
DWORD Dr3; /* Breakpoint Register 4 */
DWORD Dr4; /* Breakpoint Register 5 */
DWORD Dr5; /* Breakpoint Register 6 */
DWORD Dr6; /* Debug Status Register */
DWORD Dr7; /* Debug Control Register */
} CONTEXT_PPC, *PCONTEXT_PPC, *LPCONTEXT_PPC;
typedef struct value_ent
{
LPWSTR ve_valuename;
DWORD ve_valuelen;
DWORD ve_valueptr;
DWORD ve_type;
} WVALENT, *PWVALENT;
/* #include "except.h" */
#ifndef __USE_W32API
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
#ifdef __i386__
typedef CONTEXT_X86 CONTEXT;
typedef PCONTEXT_X86 PCONTEXT;
typedef LPCONTEXT_X86 LPCONTEXT;
#else /* __ppc__ */
typedef CONTEXT_PPC CONTEXT;
typedef PCONTEXT_PPC PCONTEXT;
typedef LPCONTEXT_PPC LPCONTEXT;
#endif
typedef WORD ATOM;
typedef struct _COORD
{
SHORT X;
SHORT Y;
} COORD;
typedef struct _SMALL_RECT
{
SHORT Left;
SHORT Top;
SHORT Right;
SHORT Bottom;
} SMALL_RECT, *PSMALL_RECT;
#include "except.h"
#else /* __USE_W32API */
typedef LPTHREAD_START_ROUTINE PTHREAD_START_ROUTINE;
#include <ddk/ntapi.h>
#endif /* __USE_W32API */
typedef struct _ADDRESS_RANGE
{
ULONG BaseAddrLow;
ULONG BaseAddrHigh;
ULONG LengthLow;
ULONG LengthHigh;
ULONG Type;
} ADDRESS_RANGE, *PADDRESS_RANGE;
#define MB_FLAGS_MEM_INFO (0x1)
#define MB_FLAGS_BOOT_DEVICE (0x2)
#define MB_FLAGS_COMMAND_LINE (0x4)
#define MB_FLAGS_MODULE_INFO (0x8)
#define MB_FLAGS_AOUT_SYMS (0x10)
#define MB_FLAGS_ELF_SYMS (0x20)
#define MB_FLAGS_MMAP_INFO (0x40)
#define MB_FLAGS_DRIVES_INFO (0x80)
#define MB_FLAGS_CONFIG_TABLE (0x100)
#define MB_FLAGS_BOOT_LOADER_NAME (0x200)
#define MB_FLAGS_APM_TABLE (0x400)
#define MB_FLAGS_GRAPHICS_TABLE (0x800)
#define MB_FLAGS_ACPI_TABLE (0x1000)
typedef struct _LOADER_MODULE
{
ULONG ModStart;
ULONG ModEnd;
ULONG String;
ULONG Reserved;
} LOADER_MODULE, *PLOADER_MODULE;
typedef struct _LOADER_PARAMETER_BLOCK
{
ULONG Flags;
ULONG MemLower;
ULONG MemHigher;
ULONG BootDevice;
ULONG CommandLine;
ULONG ModsCount;
ULONG ModsAddr;
UCHAR Syms[12];
ULONG MmapLength;
ULONG MmapAddr;
ULONG DrivesCount;
ULONG DrivesAddr;
ULONG ConfigTable;
ULONG BootLoaderName;
ULONG PageDirectoryStart;
ULONG PageDirectoryEnd;
ULONG KernelBase;
} LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
typedef enum _KAPC_ENVIRONMENT
{
OriginalApcEnvironment,
AttachedApcEnvironment,
CurrentApcEnvironment
} KAPC_ENVIRONMENT;
/* FIXME: Are these official values ?? */
#define STATUS_FS_QUERY_REQUIRED ((NTSTATUS)0xC1000001)
#define STATUS_HANDLE_NOT_WAITABLE ((NTSTATUS)0xC1000002)
#define STATUS_OBJECT_FILE_MISMATCH ((NTSTATUS)0xC1000003)
#define STATUS_INVALID_PARAMETER_MAX ((NTSTATUS)0xC1000004)
#define STATUS_CONFLICTING_ADDRESS ((NTSTATUS)0xC1000005)
#define STATUS_NO_MEDIA_IN_DRIVE ((NTSTATUS)0xC1000006)
#define NTSTAT_SEVERITY_SHIFT 30
#define NTSTAT_SEVERITY_MASK 0x00000003
#define NTSTAT_FACILITY_SHIFT 16
#define NTSTAT_FACILITY_MASK 0x00000FFF
#define NTSTAT_CUSTOMER_MASK 0x20000000
#define NT_SEVERITY(StatCode) (((StatCode) >> NTSTAT_SEVERITY_SHIFT) & NTSTAT_SEVERITY_MASK)
#define NT_FACILITY(StatCode) (((StatCode) >> NTSTAT_FACILITY_SHIFT) & NTSTAT_FACILITY_MASK)
#define NT_CUSTOMER(StatCode) ((StatCode) & NTSTAT_CUSTOMER_MASK)
#endif /* __INCLUDE_TYPES_H */

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,10 +1,6 @@
#ifndef __WIN32K_NTUSER_H
#define __WIN32K_NTUSER_H
#ifndef _NTNDK_
#include <ddk/ntapi.h>
#endif
#define WM_SYSTIMER 280
ULONG STDCALL

View file

@ -1,6 +1,5 @@
#include "precomp.h"
#include <math.h>
#include <ntos/except.h>
int _matherr(struct _exception* e)

View file

@ -6,6 +6,6 @@
#include <ddk/wdmguid.h>
#define __GUIDS_ONLY__
#include <ntos/ntpnp.h>
#include <ddk/ntpnp.h>
/* EOF */

View file

@ -10,7 +10,6 @@
*/
#include <ntoskrnl.h>
#include <ntos/bootvid.h>
#define NDEBUG
#include <internal/debug.h>

View file

@ -11,7 +11,6 @@
/* INCLUDES ******************************************************************/
#include <ntoskrnl.h>
#include <ntos/bootvid.h>
#include <ddk/ntbootvid.h>
#define NDEBUG
#include <internal/debug.h>

View file

@ -19,13 +19,10 @@
#include <ddk/ntddk.h>
#include <ddk/ntifs.h>
#include <ddk/wdmguid.h>
#include <ddk/ntpnp.h>
#include <ndk/ntndk.h>
#undef IO_TYPE_FILE
#define IO_TYPE_FILE 0x0F5L /* Temp Hack */
/* FIXME: Add to ndk, or at least move somewhere else */
#include <ntos/ntpnp.h>
#include <napi/core.h>
/* ReactOS Headers */
#include <reactos/version.h>

View file

@ -29,6 +29,7 @@
/* INCLUDES *****************************************************************/
#include <ntoskrnl.h>
#include <ddk/core.h>
#define NDEBUG
#include <internal/debug.h>

View file

@ -31,10 +31,10 @@
#define NTOS_MODE_USER
#include <ndk/ntndk.h>
#include <ddk/wdmguid.h>
#include <ddk/ntpnp.h>
#include <rpc.h>
#include <rpcdce.h>
#include <ntos/ntpnp.h>
#include "pnp_c.h"

View file

@ -28,6 +28,8 @@ extern "C" {
#define ENABLE_MOUSE_INPUT 16
#define ENABLE_PROCESSED_OUTPUT 1
#define ENABLE_WRAP_AT_EOL_OUTPUT 2
#define CONSOLE_INPUT_MODE_VALID (0x0f)
#define CONSOLE_OUTPUT_MODE_VALID (0x03)
#define KEY_EVENT 1
#define MOUSE_EVENT 2
#define WINDOW_BUFFER_SIZE_EVENT 4
@ -72,6 +74,11 @@ typedef struct _COORD {
SHORT X;
SHORT Y;
} COORD;
typedef struct _CONSOLE_SELECTION_INFO {
DWORD dwFlags;
COORD dwSelectionAnchor;
SMALL_RECT srSelection;
} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
typedef struct _CONSOLE_FONT_INFO {
DWORD nFont;
COORD dwFontSize;