2002-11-13 Casper S. Hornstrup <chorns@users.sourceforge.net>

* drivers/bus/acpi/ospm/osl.c (acpi_os_readable, acpi_os_writable):
	Match prototypes.
	* include/ascii.h (AbortSystemShutdownA): Correct prototype.
	* include/debug.h (assert): Wrap in #ifndef assert.
	* include/funcs.h (AbortSystemShutdown): Remove duplicate prototype.
	* include/ddk/rtltypes.h: Move ...
	* include/ntos/rtltypes.h: ... here.
	* include/ddk/rtl.h: Move ...
	* include/ntos/rtl.h: ... here.
	* include/ddk/zwtypes.h: Move ...
	* include/ntos/zwtypes.h: ... here.
	* include/ddk/zw.h: Move ...
	* include/ntos/zw.h: ... here.
	| include/ddk/cmfuncs.h: Remove file; Move NtCreateKey to ntos/zw.h.
	* include/ntos.h: #include ntos/rtltypes.h, ntos/rtl.h, ntos/zwtypes.h,
	and ntos/zw.h.
	* include/unicode.h: (AbortSystemShutdownW): Correct prototype.
	* include/ddk/ntddk.h: Include headers at new location; Don't include
	removed files.
	* include/defines.h: Wrap definitions in w32api in #ifndef __USE_W32API.
	* include/ntos/zwtypes.h: Ditto.
	* include/napi/lpc.h: Ditto.
	* include/napi/shared_data.h: Ditto.
	* include/napi/teb.h: Ditto.
	* include/napi/types.h: Ditto.
	* include/ntdll/ldr.h: Ditto.
	* include/ntdll/rtl.h: Ditto.
	* include/ntos/console.h: Ditto.
	* include/ntos/disk.h: Ditto.
	* include/ntos/except.h: Ditto.
	* include/ntos/file.h: Ditto.
	* include/ntos/gditypes.h: Ditto.
	* include/ntos/heap.h: Ditto.
	* include/ntos/keyboard.h: Ditto.
	* include/ntos/mm.h: Ditto.
	* include/ntos/ntdef.h: Ditto.
	* include/ntos/ps.h: Ditto.
	* include/ntos/registry.h: Ditto.
	* include/ntos/security.h: Ditto.
	* include/ntos/synch.h: Ditto.
	* include/ntos/time.h: Ditto.
	* include/ntos/types.h: Ditto.
	* include/ntos/port.h: Ditto.
	* lib/advapi32/misc/shutdown.c (AbortSystemShutdownW,
	AbortSystemShutdownA): Correct prototype.
	* lib/advapi32/reg/reg.c: #include ntos.h.
	* lib/advapi32/sec/misc.c: Ditto.
	* lib/advapi32/sec/sid.c: Ditto.
	* lib/advapi32/service/sctrl.c: Ditto.
	* lib/advapi32/token/token.c: Ditto.
	* lib/kernel32/misc/dllmain.c: Ditto.
	* ntoskrnl/ex/napi.c: Ditto.
	* ntoskrnl/rtl/i386/exception.c: Ditto.
	* lib/advapi32/sec/ac.c: Ditto.
	(FindFirstFreeAce, GetAce): Change PACE* to PACE_HEADER*.
	* lib/advapi32/service/scm.c (EnumServicesStatusExA,
	EnumServicesStatusExW, QueryServiceStatusEx): Correct prototype.
	* lib/ntdll/rtl/ppb.c (RtlDestroyProcessParameters): Match prototype.
	* ntoskrnl/dbg/errinfo.c (DbgGetErrorText): Use %08x, not %08lx.
	* ntoskrnl/io/arcname.c (IoCreateSystemRootLink): Use %u, not %lu.
	* ntoskrnl/ke/main.c (ExpInitializeExecutive): Ditto.
	* (_main): Use %d, not %ld.
	* ntoskrnl/include/internal/i386/ke.h: Add #pragma GCC system_header.
	* include/ddk/ntdef.h (NTSYSAPI, NTAPI, NTKERNELAPI): Define to STDCALL;
	Check if already defined.
	* include/base.h (STDCALL, CDECL, CALLBACK, PASCAL): Move to ntos/types.h.

svn path=/trunk/; revision=3755
This commit is contained in:
Casper Hornstrup 2002-11-14 18:21:07 +00:00
parent d9e3082d1f
commit 755fde7e59
59 changed files with 1900 additions and 11102 deletions

View file

@ -1,3 +1,72 @@
2002-11-13 Casper S. Hornstrup <chorns@users.sourceforge.net>
* drivers/bus/acpi/ospm/osl.c (acpi_os_readable, acpi_os_writable):
Match prototypes.
* include/ascii.h (AbortSystemShutdownA): Correct prototype.
* include/debug.h (assert): Wrap in #ifndef assert.
* include/funcs.h (AbortSystemShutdown): Remove duplicate prototype.
* include/ddk/rtltypes.h: Move ...
* include/ntos/rtltypes.h: ... here.
* include/ddk/rtl.h: Move ...
* include/ntos/rtl.h: ... here.
* include/ddk/zwtypes.h: Move ...
* include/ntos/zwtypes.h: ... here.
* include/ddk/zw.h: Move ...
* include/ntos/zw.h: ... here.
| include/ddk/cmfuncs.h: Remove file; Move NtCreateKey to ntos/zw.h.
* include/ntos.h: #include ntos/rtltypes.h, ntos/rtl.h, ntos/zwtypes.h,
and ntos/zw.h.
* include/unicode.h: (AbortSystemShutdownW): Correct prototype.
* include/ddk/ntddk.h: Include headers at new location; Don't include
removed files.
* include/defines.h: Wrap definitions in w32api in #ifndef __USE_W32API.
* include/ntos/zwtypes.h: Ditto.
* include/napi/lpc.h: Ditto.
* include/napi/shared_data.h: Ditto.
* include/napi/teb.h: Ditto.
* include/napi/types.h: Ditto.
* include/ntdll/ldr.h: Ditto.
* include/ntdll/rtl.h: Ditto.
* include/ntos/console.h: Ditto.
* include/ntos/disk.h: Ditto.
* include/ntos/except.h: Ditto.
* include/ntos/file.h: Ditto.
* include/ntos/gditypes.h: Ditto.
* include/ntos/heap.h: Ditto.
* include/ntos/keyboard.h: Ditto.
* include/ntos/mm.h: Ditto.
* include/ntos/ntdef.h: Ditto.
* include/ntos/ps.h: Ditto.
* include/ntos/registry.h: Ditto.
* include/ntos/security.h: Ditto.
* include/ntos/synch.h: Ditto.
* include/ntos/time.h: Ditto.
* include/ntos/types.h: Ditto.
* include/ntos/port.h: Ditto.
* lib/advapi32/misc/shutdown.c (AbortSystemShutdownW,
AbortSystemShutdownA): Correct prototype.
* lib/advapi32/reg/reg.c: #include ntos.h.
* lib/advapi32/sec/misc.c: Ditto.
* lib/advapi32/sec/sid.c: Ditto.
* lib/advapi32/service/sctrl.c: Ditto.
* lib/advapi32/token/token.c: Ditto.
* lib/kernel32/misc/dllmain.c: Ditto.
* ntoskrnl/ex/napi.c: Ditto.
* ntoskrnl/rtl/i386/exception.c: Ditto.
* lib/advapi32/sec/ac.c: Ditto.
(FindFirstFreeAce, GetAce): Change PACE* to PACE_HEADER*.
* lib/advapi32/service/scm.c (EnumServicesStatusExA,
EnumServicesStatusExW, QueryServiceStatusEx): Correct prototype.
* lib/ntdll/rtl/ppb.c (RtlDestroyProcessParameters): Match prototype.
* ntoskrnl/dbg/errinfo.c (DbgGetErrorText): Use %08x, not %08lx.
* ntoskrnl/io/arcname.c (IoCreateSystemRootLink): Use %u, not %lu.
* ntoskrnl/ke/main.c (ExpInitializeExecutive): Ditto.
* (_main): Use %d, not %ld.
* ntoskrnl/include/internal/i386/ke.h: Add #pragma GCC system_header.
* include/ddk/ntdef.h (NTSYSAPI, NTAPI, NTKERNELAPI): Define to STDCALL;
Check if already defined.
* include/base.h (STDCALL, CDECL, CALLBACK, PASCAL): Move to ntos/types.h.
2002-11-13 Rick Gaiser <RickG81@Wanadoo.nl>
* drivers/bus/isapnp/isapnp.c (FindNextReadPort): Increment Port before

View file

@ -592,14 +592,14 @@ acpi_os_get_line(NATIVE_CHAR *buffer)
return 0;
}
BOOLEAN
u8
acpi_os_readable(void *ptr, u32 len)
{
/* Always readable */
return TRUE;
}
BOOLEAN
u8
acpi_os_writable(void *ptr, u32 len)
{
/* Always writable */

View file

@ -2415,7 +2415,7 @@ InitiateSystemShutdownA(
WINBOOL
STDCALL
AbortSystemShutdownA(
LPSTR lpMachineName
LPCSTR lpMachineName
);
int

View file

@ -56,17 +56,6 @@ typedef long LONG;
#define CONST const
#ifdef i386
#define STDCALL __attribute__ ((stdcall))
#define CDECL __attribute((cdecl))
#define CALLBACK WINAPI
#define PASCAL WINAPI
#else
#define STDCALL
#define CDECL
#define CALLBACK
#define PASCAL
#endif
#define WINAPI STDCALL
#define APIENTRY STDCALL
#define WINGDIAPI

View file

@ -1,47 +0,0 @@
/*
* FUNCTION: Creates a registry key
* ARGUMENTS:
* KeyHandle (OUT) = Caller supplied storage for the resulting handle
* DesiredAccess = Specifies the allowed or desired access to the key
* It can have a combination of the following values:
* KEY_READ | KEY_WRITE | KEY_EXECUTE | KEY_ALL_ACCESS
* or
* KEY_QUERY_VALUE The values of the key can be queried.
* KEY_SET_VALUE The values of the key can be modified.
* KEY_CREATE_SUB_KEYS The key may contain subkeys.
* KEY_ENUMERATE_SUB_KEYS Subkeys can be queried.
* KEY_NOTIFY
* KEY_CREATE_LINK A symbolic link to the key can be created.
* ObjectAttributes = The name of the key may be specified directly in the name field
* of object attributes or relative to a key in rootdirectory.
* TitleIndex = Might specify the position in the sequential order of subkeys.
* Class = Specifies the kind of data, for example REG_SZ for string data. [ ??? ]
* CreateOptions = Specifies additional options with which the key is created
* REG_OPTION_VOLATILE The key is not preserved across boots.
* REG_OPTION_NON_VOLATILE The key is preserved accross boots.
* REG_OPTION_CREATE_LINK The key is a symbolic link to another key.
* REG_OPTION_BACKUP_RESTORE Key is being opened or created for backup/restore operations.
* Disposition = Indicates if the call to NtCreateKey resulted in the creation of a key it
* can have the following values: REG_CREATED_NEW_KEY | REG_OPENED_EXISTING_KEY
* RETURNS:
* Status
*/
NTSTATUS STDCALL
NtCreateKey(OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG TitleIndex,
IN PUNICODE_STRING Class OPTIONAL,
IN ULONG CreateOptions,
IN PULONG Disposition OPTIONAL);
NTSTATUS STDCALL
ZwCreateKey(OUT PHANDLE KeyHandle,
IN ACCESS_MASK DesiredAccess,
IN POBJECT_ATTRIBUTES ObjectAttributes,
IN ULONG TitleIndex,
IN PUNICODE_STRING Class OPTIONAL,
IN ULONG CreateOptions,
IN PULONG Disposition OPTIONAL);

View file

@ -1,4 +1,4 @@
/* $Id: ntddk.h,v 1.31 2002/09/08 10:47:44 chorns Exp $
/* $Id: ntddk.h,v 1.32 2002/11/14 18:21:02 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -57,17 +57,16 @@ extern "C"
#include <ddk/extypes.h>
#include <ddk/pstypes.h>
#include <ddk/ldrtypes.h>
#include <ddk/zwtypes.h>
#include <ntos/zwtypes.h>
#include <ddk/ioctrl.h>
#include <ddk/rtltypes.h>
#include <ntos/rtltypes.h>
#include <ddk/haltypes.h>
#include <napi/shared_data.h>
#include <ddk/zw.h>
#include <ddk/rtl.h>
#include <ntos/zw.h>
#include <ntos/rtl.h>
#include <ddk/dbgfuncs.h>
#include <ddk/ldrfuncs.h>
#include <ddk/cmfuncs.h>
#if defined(__NTOSKRNL__) || defined(__NTDRIVER__) || defined(__NTHAL__)
#include <ddk/exfuncs.h>
#include <ddk/halfuncs.h>

View file

@ -5,9 +5,16 @@ struct _KTHREAD;
struct _ETHREAD;
struct _EPROCESS;
#define NTKERNELAPI
#define NTSYSAPI
#define NTAPI
#ifndef NTKERNELAPI
#define NTKERNELAPI STDCAL
#endif
#ifndef NTSYSAPI
#define NTSYSAPI STDCALL
#endif
#ifndef NTAPI
#define NTAPI STDCALL
#endif
#endif

File diff suppressed because it is too large Load diff

View file

@ -1,214 +0,0 @@
/* $Id: rtltypes.h,v 1.6 2002/09/08 10:47:45 chorns Exp $
*
*/
#ifndef __DDK_RTLTYPES_H
#define __DDK_RTLTYPES_H
#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
typedef struct _INITIAL_TEB
{
ULONG StackCommit;
ULONG StackReserve;
PVOID StackBase;
PVOID StackLimit;
PVOID StackAllocate;
} INITIAL_TEB, *PINITIAL_TEB;
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_HEAP_DEFINITION
{
ULONG Length;
ULONG Unknown[11];
} RTL_HEAP_DEFINITION, *PRTL_HEAP_DEFINITION;
typedef struct _RTL_ATOM_TABLE
{
ULONG TableSize;
ULONG NumberOfAtoms;
PVOID Lock; /* fast mutex (kernel mode)/ critical section (user mode) */
PVOID HandleTable;
LIST_ENTRY Slot[0];
} RTL_ATOM_TABLE, *PRTL_ATOM_TABLE;
typedef struct _LB_RANGE
{
UCHAR upper;
UCHAR lower;
} LB_RANGE;
typedef struct _RTL_NLS_DATA
{
USHORT CodePage;
USHORT MaxCharacterSize; // SBCS = 1, DBCS = 2
WCHAR DefaultCharacter;
WCHAR char1;
WCHAR char2;
WCHAR char3;
USHORT DbcsFlag;
LB_RANGE LeadByteRange[6];
USHORT reserved;
PWCHAR MultiByteToUnicode;
PCHAR UnicodeToMultiByte;
PWCHAR DosMultiByteToUnicode;
PCHAR DbcsTags;
} RTL_NLS_DATA, *PRTL_NLS_DATA;
typedef struct _RTL_NLS_TABLE
{
RTL_NLS_DATA OemInfo;
RTL_NLS_DATA AnsiInfo;
PWCHAR UpcaseTable;
PWCHAR DowncaseTable;
} RTL_NLS_TABLE, *PRTL_NLS_TABLE;
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_GENERIC_TABLE
{
PVOID RootElement;
ULONG Unknown2;
ULONG Unknown3;
ULONG Unknown4;
ULONG Unknown5;
ULONG ElementCount;
PVOID CompareRoutine;
PVOID AllocateRoutine;
PVOID FreeRoutine;
ULONG UserParameter;
} RTL_GENERIC_TABLE, *PRTL_GENERIC_TABLE;
typedef struct _RTL_MESSAGE_RESOURCE_ENTRY
{
USHORT Length;
USHORT Flags;
UCHAR 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 NTSTATUS STDCALL
(*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 _COMPRESSED_DATA_INFO
{
USHORT CompressionFormatAndEngine;
UCHAR CompressionUnitShift;
UCHAR ChunkShift;
UCHAR ClusterShift;
UCHAR Reserved;
USHORT NumberOfChunks;
ULONG CompressedChunkSizes[1];
} COMPRESSED_DATA_INFO, *PCOMPRESSED_DATA_INFO;
#endif /* __DDK_RTLTYPES_H */

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -23,11 +23,13 @@
#define CHECKED
#endif
#ifndef assert
#ifndef NASSERT
#define assert(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); }
#else
#define assert(x)
#endif
#endif
#define DPRINT1(args...) do { DbgPrint("(%s:%d) ",__FILE__,__LINE__); DbgPrint(args); } while(0);
#define CHECKPOINT1 do { DbgPrint("%s:%d\n",__FILE__,__LINE__); } while(0);

View file

@ -4718,6 +4718,18 @@ DECLARE_HANDLE(HANDLE);
#endif
#ifndef __USE_W32API
typedef enum _SC_STATUS_TYPE {
SC_STATUS_PROCESS_INFO = 0
} SC_STATUS_TYPE;
typedef enum _SC_ENUM_TYPE {
SC_ENUM_PROCESS_INFO = 0
} SC_ENUM_TYPE;
#endif /* !__USE_W32API */
#ifdef __cplusplus
}
#endif /* __cplusplus */

View file

@ -865,7 +865,6 @@ int STDCALL AbortDoc(HDC);
WINBOOL STDCALL AbortPath(HDC);
WINBOOL STDCALL AbortPrinter(HANDLE);
WINBOOL CALLBACK AbortProc(HDC, int);
WINBOOL STDCALL AbortSystemShutdown(LPTSTR);
WINBOOL STDCALL AccessCheck(
PSECURITY_DESCRIPTOR pSecurityDescriptor,
HANDLE ClientToken,

View file

@ -1,10 +1,16 @@
#ifndef __INCLUDE_NAPI_LPC_H
#define __INCLUDE_NAPI_LPC_H
#ifdef __USE_W32API
#include <ddk/ntapi.h>
#endif /* !__USE_W32API */
#include <ntos/security.h>
#define MAX_MESSAGE_DATA (0x130)
#ifndef __USE_W32API
typedef enum
{
UNUSED_MSG_TYPE = 0x0, /* ReactOS */
@ -52,6 +58,8 @@ typedef struct _LPC_MESSAGE_HEADER
ULONG SharedSectionSize;
} LPC_MESSAGE, *PLPC_MESSAGE;
#endif /* !__USE_W32API */
typedef struct _LPC_TERMINATION_MESSAGE
{
LPC_MESSAGE Header;

View file

@ -15,9 +15,9 @@ typedef struct _KUSER_SHARED_DATA
{
volatile ULONG TickCountLow;
ULONG TickCountMultiplier;
volatile KSYSTEM_TIME InterruptTime;
volatile KSYSTEM_TIME SystemTime;
volatile KSYSTEM_TIME TimeZoneBias;
volatile ULARGE_INTEGER InterruptTime;
volatile ULARGE_INTEGER SystemTime;
volatile ULARGE_INTEGER TimeZoneBias;
USHORT ImageNumberLow;
USHORT ImageNumberHigh;
WCHAR NtSystemRoot[260];
@ -61,7 +61,9 @@ typedef struct _KUSER_SHARED_DATA
#define KI_USER_SHARED_DATA (0xFFDF0000)
#define SharedUserData ((KUSER_SHARED_DATA * const)KI_USER_SHARED_DATA)
#else
#ifndef __USE_W32API
#define SharedUserData ((KUSER_SHARED_DATA * const)USER_SHARED_DATA)
#endif /* !__USE_W32API */
#endif

View file

@ -1,233 +1,244 @@
/* TEB/PEB parameters */
#ifndef __INCLUDE_INTERNAL_TEB
#define __INCLUDE_INTERNAL_TEB
#include <napi/types.h>
typedef struct _CLIENT_ID
{
HANDLE UniqueProcess;
HANDLE UniqueThread;
} CLIENT_ID, *PCLIENT_ID;
typedef struct _CURDIR
{
UNICODE_STRING DosPath;
PVOID Handle;
} CURDIR, *PCURDIR;
typedef struct RTL_DRIVE_LETTER_CURDIR
{
USHORT Flags;
USHORT Length;
ULONG TimeStamp;
UNICODE_STRING DosPath;
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
typedef struct _PEB_FREE_BLOCK
{
struct _PEB_FREE_BLOCK* Next;
ULONG Size;
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
/* RTL_USER_PROCESS_PARAMETERS.Flags */
#define PPF_NORMALIZED (1)
typedef struct _RTL_USER_PROCESS_PARAMETERS {
ULONG AllocationSize;
ULONG Size;
ULONG Flags;
ULONG DebugFlags;
HANDLE hConsole;
ULONG ProcessGroup;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
UNICODE_STRING CurrentDirectoryName;
HANDLE CurrentDirectoryHandle;
UNICODE_STRING DllPath;
UNICODE_STRING ImagePathName;
UNICODE_STRING CommandLine;
PWSTR Environment;
ULONG dwX;
ULONG dwY;
ULONG dwXSize;
ULONG dwYSize;
ULONG dwXCountChars;
ULONG dwYCountChars;
ULONG dwFillAttribute;
ULONG dwFlags;
ULONG wShowWindow;
UNICODE_STRING WindowTitle;
UNICODE_STRING DesktopInfo;
UNICODE_STRING ShellInfo;
UNICODE_STRING RuntimeInfo;
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
#define PEB_BASE (0x7FFDF000)
typedef struct _PEB_LDR_DATA
{
ULONG Length;
BOOLEAN Initialized;
PVOID SsHandle;
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
} PEB_LDR_DATA, *PPEB_LDR_DATA;
typedef VOID STDCALL (*PPEBLOCKROUTINE)(PVOID);
typedef struct _PEB
{
UCHAR InheritedAddressSpace; // 00h
UCHAR ReadImageFileExecOptions; // 01h
UCHAR BeingDebugged; // 02h
UCHAR Spare; // 03h
PVOID Mutant; // 04h
PVOID ImageBaseAddress; // 08h
PPEB_LDR_DATA Ldr; // 0Ch
PRTL_USER_PROCESS_PARAMETERS ProcessParameters; // 10h
PVOID SubSystemData; // 14h
PVOID ProcessHeap; // 18h
PVOID FastPebLock; // 1Ch
PPEBLOCKROUTINE FastPebLockRoutine; // 20h
PPEBLOCKROUTINE FastPebUnlockRoutine; // 24h
ULONG EnvironmentUpdateCount; // 28h
PVOID* KernelCallbackTable; // 2Ch
PVOID EventLogSection; // 30h
PVOID EventLog; // 34h
PPEB_FREE_BLOCK FreeList; // 38h
ULONG TlsExpansionCounter; // 3Ch
PVOID TlsBitmap; // 40h
ULONG TlsBitmapBits[0x2]; // 44h
PVOID ReadOnlySharedMemoryBase; // 4Ch
PVOID ReadOnlySharedMemoryHeap; // 50h
PVOID* ReadOnlyStaticServerData; // 54h
PVOID AnsiCodePageData; // 58h
PVOID OemCodePageData; // 5Ch
PVOID UnicodeCaseTableData; // 60h
ULONG NumberOfProcessors; // 64h
ULONG NtGlobalFlag; // 68h
UCHAR Spare2[0x4]; // 6Ch
LARGE_INTEGER CriticalSectionTimeout; // 70h
ULONG HeapSegmentReserve; // 78h
ULONG HeapSegmentCommit; // 7Ch
ULONG HeapDeCommitTotalFreeThreshold; // 80h
ULONG HeapDeCommitFreeBlockThreshold; // 84h
ULONG NumberOfHeaps; // 88h
ULONG MaximumNumberOfHeaps; // 8Ch
PVOID** ProcessHeaps; // 90h
PVOID GdiSharedHandleTable; // 94h
PVOID ProcessStarterHelper; // 98h
PVOID GdiDCAttributeList; // 9Ch
PVOID LoaderLock; // A0h
ULONG OSMajorVersion; // A4h
ULONG OSMinorVersion; // A8h
ULONG OSBuildNumber; // ACh
ULONG OSPlatformId; // B0h
ULONG ImageSubSystem; // B4h
ULONG ImageSubSystemMajorVersion; // B8h
ULONG ImageSubSystemMinorVersion; // C0h
ULONG GdiHandleBuffer[0x22]; // C4h
} PEB, *PPEB;
typedef struct _NT_TIB {
struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; // 00h
PVOID StackBase; // 04h
PVOID StackLimit; // 08h
PVOID SubSystemTib; // 0Ch
union {
PVOID FiberData; // 10h
ULONG Version; // 10h
} Fib;
PVOID ArbitraryUserPointer; // 14h
struct _NT_TIB *Self; // 18h
} NT_TIB, *PNT_TIB;
typedef struct _GDI_TEB_BATCH
{
ULONG Offset;
ULONG HDC;
ULONG Buffer[0x136];
} GDI_TEB_BATCH, *PGDI_TEB_BATCH;
typedef struct _TEB
{
NT_TIB Tib; // 00h
PVOID EnvironmentPointer; // 1Ch
CLIENT_ID Cid; // 20h
PVOID ActiveRpcInfo; // 28h
PVOID ThreadLocalStoragePointer; // 2Ch
PPEB Peb; // 30h
ULONG LastErrorValue; // 34h
ULONG CountOfOwnedCriticalSections; // 38h
PVOID CsrClientThread; // 3Ch
struct _W32THREAD* Win32ThreadInfo; // 40h
ULONG Win32ClientInfo[0x1F]; // 44h
PVOID WOW32Reserved; // C0h
ULONG CurrentLocale; // C4h
ULONG FpSoftwareStatusRegister; // C8h
PVOID SystemReserved1[0x36]; // CCh
PVOID Spare1; // 1A4h
LONG ExceptionCode; // 1A8h
ULONG SpareBytes1[0x28]; // 1ACh
PVOID SystemReserved2[0xA]; // 1D4h
// GDI_TEB_BATCH GdiTebBatch; // 1FCh
ULONG gdiRgn; // 6DCh
ULONG gdiPen; // 6E0h
ULONG gdiBrush; // 6E4h
CLIENT_ID RealClientId; // 6E8h
PVOID GdiCachedProcessHandle; // 6F0h
ULONG GdiClientPID; // 6F4h
ULONG GdiClientTID; // 6F8h
PVOID GdiThreadLocaleInfo; // 6FCh
PVOID UserReserved[5]; // 700h
PVOID glDispatchTable[0x118]; // 714h
ULONG glReserved1[0x1A]; // B74h
PVOID glReserved2; // BDCh
PVOID glSectionInfo; // BE0h
PVOID glSection; // BE4h
PVOID glTable; // BE8h
PVOID glCurrentRC; // BECh
PVOID glContext; // BF0h
NTSTATUS LastStatusValue; // BF4h
UNICODE_STRING StaticUnicodeString; // BF8h
WCHAR StaticUnicodeBuffer[0x105]; // C00h
PVOID DeallocationStack; // E0Ch
PVOID TlsSlots[0x40]; // E10h
LIST_ENTRY TlsLinks; // F10h
PVOID Vdm; // F18h
PVOID ReservedForNtRpc; // F1Ch
PVOID DbgSsReserved[0x2]; // F20h
ULONG HardErrorDisabled; // F28h
PVOID Instrumentation[0x10]; // F2Ch
PVOID WinSockData; // F6Ch
ULONG GdiBatchCount; // F70h
ULONG Spare2; // F74h
ULONG Spare3; // F78h
ULONG Spare4; // F7Ch
PVOID ReservedForOle; // F80h
ULONG WaitingOnLoaderLock; // F84h
PVOID WineDebugInfo; // Needed for WINE DLL's
} TEB, *PTEB;
#define NtCurrentPeb() (NtCurrentTeb()->Peb)
static inline PTEB NtCurrentTeb(VOID)
{
int x;
__asm__ __volatile__("movl %%fs:0x18, %0\n\t"
: "=r" (x) /* can't have two memory operands */
: /* no inputs */
);
return((PTEB)x);
}
#endif /* __INCLUDE_INTERNAL_TEB */
/* TEB/PEB parameters */
#ifndef __INCLUDE_INTERNAL_TEB
#define __INCLUDE_INTERNAL_TEB
#include <napi/types.h>
#ifdef __USE_W32API
#include <ddk/ntapi.h>
#endif /* !__USE_W32API */
#ifndef __USE_W32API
typedef struct _CLIENT_ID
{
HANDLE UniqueProcess;
HANDLE UniqueThread;
} CLIENT_ID, *PCLIENT_ID;
typedef struct _RTL_USER_PROCESS_PARAMETERS {
ULONG AllocationSize;
ULONG Size;
ULONG Flags;
ULONG DebugFlags;
HANDLE hConsole;
ULONG ProcessGroup;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
UNICODE_STRING CurrentDirectoryName;
HANDLE CurrentDirectoryHandle;
UNICODE_STRING DllPath;
UNICODE_STRING ImagePathName;
UNICODE_STRING CommandLine;
PWSTR Environment;
ULONG dwX;
ULONG dwY;
ULONG dwXSize;
ULONG dwYSize;
ULONG dwXCountChars;
ULONG dwYCountChars;
ULONG dwFillAttribute;
ULONG dwFlags;
ULONG wShowWindow;
UNICODE_STRING WindowTitle;
UNICODE_STRING DesktopInfo;
UNICODE_STRING ShellInfo;
UNICODE_STRING RuntimeInfo;
} RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS;
typedef struct _NT_TIB {
struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; // 00h
PVOID StackBase; // 04h
PVOID StackLimit; // 08h
PVOID SubSystemTib; // 0Ch
union {
PVOID FiberData; // 10h
ULONG Version; // 10h
} Fib;
PVOID ArbitraryUserPointer; // 14h
struct _NT_TIB *Self; // 18h
} NT_TIB, *PNT_TIB;
#endif /* !__USE_W32API */
typedef struct _CURDIR
{
UNICODE_STRING DosPath;
PVOID Handle;
} CURDIR, *PCURDIR;
typedef struct RTL_DRIVE_LETTER_CURDIR
{
USHORT Flags;
USHORT Length;
ULONG TimeStamp;
UNICODE_STRING DosPath;
} RTL_DRIVE_LETTER_CURDIR, *PRTL_DRIVE_LETTER_CURDIR;
typedef struct _PEB_FREE_BLOCK
{
struct _PEB_FREE_BLOCK* Next;
ULONG Size;
} PEB_FREE_BLOCK, *PPEB_FREE_BLOCK;
/* RTL_USER_PROCESS_PARAMETERS.Flags */
#define PPF_NORMALIZED (1)
#define PEB_BASE (0x7FFDF000)
typedef struct _PEB_LDR_DATA
{
ULONG Length;
BOOLEAN Initialized;
PVOID SsHandle;
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList;
LIST_ENTRY InInitializationOrderModuleList;
} PEB_LDR_DATA, *PPEB_LDR_DATA;
typedef VOID STDCALL (*PPEBLOCKROUTINE)(PVOID);
typedef struct _PEB
{
UCHAR InheritedAddressSpace; // 00h
UCHAR ReadImageFileExecOptions; // 01h
UCHAR BeingDebugged; // 02h
UCHAR Spare; // 03h
PVOID Mutant; // 04h
PVOID ImageBaseAddress; // 08h
PPEB_LDR_DATA Ldr; // 0Ch
PRTL_USER_PROCESS_PARAMETERS ProcessParameters; // 10h
PVOID SubSystemData; // 14h
PVOID ProcessHeap; // 18h
PVOID FastPebLock; // 1Ch
PPEBLOCKROUTINE FastPebLockRoutine; // 20h
PPEBLOCKROUTINE FastPebUnlockRoutine; // 24h
ULONG EnvironmentUpdateCount; // 28h
PVOID* KernelCallbackTable; // 2Ch
PVOID EventLogSection; // 30h
PVOID EventLog; // 34h
PPEB_FREE_BLOCK FreeList; // 38h
ULONG TlsExpansionCounter; // 3Ch
PVOID TlsBitmap; // 40h
ULONG TlsBitmapBits[0x2]; // 44h
PVOID ReadOnlySharedMemoryBase; // 4Ch
PVOID ReadOnlySharedMemoryHeap; // 50h
PVOID* ReadOnlyStaticServerData; // 54h
PVOID AnsiCodePageData; // 58h
PVOID OemCodePageData; // 5Ch
PVOID UnicodeCaseTableData; // 60h
ULONG NumberOfProcessors; // 64h
ULONG NtGlobalFlag; // 68h
UCHAR Spare2[0x4]; // 6Ch
LARGE_INTEGER CriticalSectionTimeout; // 70h
ULONG HeapSegmentReserve; // 78h
ULONG HeapSegmentCommit; // 7Ch
ULONG HeapDeCommitTotalFreeThreshold; // 80h
ULONG HeapDeCommitFreeBlockThreshold; // 84h
ULONG NumberOfHeaps; // 88h
ULONG MaximumNumberOfHeaps; // 8Ch
PVOID** ProcessHeaps; // 90h
PVOID GdiSharedHandleTable; // 94h
PVOID ProcessStarterHelper; // 98h
PVOID GdiDCAttributeList; // 9Ch
PVOID LoaderLock; // A0h
ULONG OSMajorVersion; // A4h
ULONG OSMinorVersion; // A8h
ULONG OSBuildNumber; // ACh
ULONG OSPlatformId; // B0h
ULONG ImageSubSystem; // B4h
ULONG ImageSubSystemMajorVersion; // B8h
ULONG ImageSubSystemMinorVersion; // C0h
ULONG GdiHandleBuffer[0x22]; // C4h
} PEB;
#ifndef __USE_W32API
typedef PEB *PPEB;
#endif /* !__USE_W32API */
typedef struct _GDI_TEB_BATCH
{
ULONG Offset;
ULONG HDC;
ULONG Buffer[0x136];
} GDI_TEB_BATCH, *PGDI_TEB_BATCH;
typedef struct _TEB
{
NT_TIB Tib; // 00h
PVOID EnvironmentPointer; // 1Ch
CLIENT_ID Cid; // 20h
PVOID ActiveRpcInfo; // 28h
PVOID ThreadLocalStoragePointer; // 2Ch
PPEB Peb; // 30h
ULONG LastErrorValue; // 34h
ULONG CountOfOwnedCriticalSections; // 38h
PVOID CsrClientThread; // 3Ch
struct _W32THREAD* Win32ThreadInfo; // 40h
ULONG Win32ClientInfo[0x1F]; // 44h
PVOID WOW32Reserved; // C0h
ULONG CurrentLocale; // C4h
ULONG FpSoftwareStatusRegister; // C8h
PVOID SystemReserved1[0x36]; // CCh
PVOID Spare1; // 1A4h
LONG ExceptionCode; // 1A8h
ULONG SpareBytes1[0x28]; // 1ACh
PVOID SystemReserved2[0xA]; // 1D4h
// GDI_TEB_BATCH GdiTebBatch; // 1FCh
ULONG gdiRgn; // 6DCh
ULONG gdiPen; // 6E0h
ULONG gdiBrush; // 6E4h
CLIENT_ID RealClientId; // 6E8h
PVOID GdiCachedProcessHandle; // 6F0h
ULONG GdiClientPID; // 6F4h
ULONG GdiClientTID; // 6F8h
PVOID GdiThreadLocaleInfo; // 6FCh
PVOID UserReserved[5]; // 700h
PVOID glDispatchTable[0x118]; // 714h
ULONG glReserved1[0x1A]; // B74h
PVOID glReserved2; // BDCh
PVOID glSectionInfo; // BE0h
PVOID glSection; // BE4h
PVOID glTable; // BE8h
PVOID glCurrentRC; // BECh
PVOID glContext; // BF0h
NTSTATUS LastStatusValue; // BF4h
UNICODE_STRING StaticUnicodeString; // BF8h
WCHAR StaticUnicodeBuffer[0x105]; // C00h
PVOID DeallocationStack; // E0Ch
PVOID TlsSlots[0x40]; // E10h
LIST_ENTRY TlsLinks; // F10h
PVOID Vdm; // F18h
PVOID ReservedForNtRpc; // F1Ch
PVOID DbgSsReserved[0x2]; // F20h
ULONG HardErrorDisabled; // F28h
PVOID Instrumentation[0x10]; // F2Ch
PVOID WinSockData; // F6Ch
ULONG GdiBatchCount; // F70h
ULONG Spare2; // F74h
ULONG Spare3; // F78h
ULONG Spare4; // F7Ch
PVOID ReservedForOle; // F80h
ULONG WaitingOnLoaderLock; // F84h
PVOID WineDebugInfo; // Needed for WINE DLL's
} TEB, *PTEB;
#define NtCurrentPeb() (NtCurrentTeb()->Peb)
static inline PTEB NtCurrentTeb(VOID)
{
int x;
__asm__ __volatile__("movl %%fs:0x18, %0\n\t"
: "=r" (x) /* can't have two memory operands */
: /* no inputs */
);
return((PTEB)x);
}
#endif /* __INCLUDE_INTERNAL_TEB */

View file

@ -3,16 +3,6 @@
// these should be moved to a file like ntdef.h
typedef const int CINT;
typedef LONG NTSTATUS, *PNTSTATUS;
typedef ULONG DEVICE_TYPE;
enum
{
DIRECTORY_QUERY,
@ -25,19 +15,6 @@ enum
/*
* General type for status information
*/
//typedef LONG NTSTATUS;
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
typedef enum _SECTION_INHERIT {
ViewShare = 1,
ViewUnmap = 2
} SECTION_INHERIT;
typedef enum _NT_PRODUCT_TYPE
{
@ -46,6 +23,14 @@ typedef enum _NT_PRODUCT_TYPE
NtProductServer
} NT_PRODUCT_TYPE, *PNT_PRODUCT_TYPE;
typedef ULARGE_INTEGER TIME, *PTIME;
#ifndef __USE_W32API
typedef const int CINT;
typedef LONG NTSTATUS, *PNTSTATUS;
typedef ULONG DEVICE_TYPE;
/* File information for IRP_MJ_QUERY_INFORMATION (and SET) */
typedef enum _FILE_INFORMATION_CLASS
{
@ -92,17 +77,11 @@ typedef enum _FILE_INFORMATION_CLASS
FileMaximumInformation,
} FILE_INFORMATION_CLASS, *PFILE_INFORMATION_CLASS;
typedef ULONG WAIT_TYPE;
typedef USHORT CSHORT;
typedef enum _SECTION_INHERIT {
ViewShare = 1,
ViewUnmap = 2
} SECTION_INHERIT;
#if 0
typedef struct _TIME {
DWORD LowPart;
LONG HighPart;
} TIME, *PTIME;
#endif
typedef ULARGE_INTEGER TIME, *PTIME;
#endif /* !__USE_W32API */
#endif /* __INCLUDE_NAPI_TYPES_H */

View file

@ -1,135 +1,136 @@
#ifndef __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
#define __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
#include <ntos/kdbgsyms.h>
#include <roscfg.h>
typedef NTSTATUS STDCALL (*PEPFUNC)(PPEB);
/* Type for a DLL's entry point */
typedef BOOL STDCALL
(* PDLLMAIN_FUNC)(HANDLE hInst,
ULONG ul_reason_for_call,
LPVOID lpReserved);
typedef struct _LDR_MODULE
{
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList; // not used
LIST_ENTRY InInitializationOrderModuleList; // not used
PVOID BaseAddress;
ULONG EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING FullDllName;
UNICODE_STRING BaseDllName;
ULONG Flags;
SHORT LoadCount;
SHORT TlsIndex;
HANDLE SectionHandle;
ULONG CheckSum;
ULONG TimeDateStamp;
#ifdef KDBG
IMAGE_SYMBOL_INFO SymbolInfo;
#endif /* KDBG */
} LDR_MODULE, *PLDR_MODULE;
typedef struct _LDR_SYMBOL_INFO {
PLDR_MODULE ModuleObject;
ULONG_PTR ImageBase;
PVOID SymbolsBuffer;
ULONG SymbolsBufferLength;
PVOID SymbolStringsBuffer;
ULONG SymbolStringsBufferLength;
} LDR_SYMBOL_INFO, *PLDR_SYMBOL_INFO;
#define RVA(m, b) ((ULONG)b + m)
typedef struct _MODULE_ENTRY
{
ULONG Unknown0;
ULONG Unknown1;
PVOID BaseAddress;
ULONG SizeOfImage;
ULONG Flags;
USHORT Unknown2;
USHORT Unknown3;
SHORT LoadCount;
USHORT PathLength;
CHAR ModuleName[256];
} MODULE_ENTRY, *PMODULE_ENTRY;
typedef struct _MODULE_INFORMATION
{
ULONG ModuleCount;
MODULE_ENTRY ModuleEntry[1];
} MODULE_INFORMATION, *PMODULE_INFORMATION;
#ifdef KDBG
VOID
LdrpLoadUserModuleSymbols(PLDR_MODULE LdrModule);
#endif
PEPFUNC LdrPEStartup (PVOID ImageBase,
HANDLE SectionHandle,
PLDR_MODULE* Module,
PWSTR FullDosName);
NTSTATUS LdrMapSections(HANDLE ProcessHandle,
PVOID ImageBase,
HANDLE SectionHandle,
PIMAGE_NT_HEADERS NTHeaders);
NTSTATUS LdrMapNTDllForProcess(HANDLE ProcessHandle,
PHANDLE NTDllSectionHandle);
NTSTATUS STDCALL
LdrDisableThreadCalloutsForDll(IN PVOID BaseAddress);
NTSTATUS STDCALL
LdrGetDllHandle(IN ULONG Unknown1,
IN ULONG Unknown2,
IN PUNICODE_STRING DllName,
OUT PVOID *BaseAddress);
NTSTATUS STDCALL
LdrFindEntryForAddress(PVOID Address,
PLDR_MODULE *Module);
NTSTATUS STDCALL
LdrGetProcedureAddress(IN PVOID BaseAddress,
IN PANSI_STRING Name,
IN ULONG Ordinal,
OUT PVOID *ProcedureAddress);
VOID STDCALL
LdrInitializeThunk(ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4);
NTSTATUS STDCALL
LdrLoadDll(IN PWSTR SearchPath OPTIONAL,
IN ULONG LoadFlags,
IN PUNICODE_STRING Name,
OUT PVOID *BaseAddress OPTIONAL);
NTSTATUS STDCALL
LdrQueryProcessModuleInformation(IN PMODULE_INFORMATION ModuleInformation OPTIONAL,
IN ULONG Size OPTIONAL,
OUT PULONG ReturnedSize);
NTSTATUS STDCALL
LdrShutdownProcess(VOID);
NTSTATUS STDCALL
LdrShutdownThread(VOID);
NTSTATUS STDCALL
LdrUnloadDll(IN PVOID BaseAddress);
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_LDR_H */
/* EOF */
#ifndef __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
#define __NTOSKRNL_INCLUDE_INTERNAL_LDR_H
#include <ntos/kdbgsyms.h>
#include <roscfg.h>
#include <napi/teb.h>
typedef NTSTATUS STDCALL (*PEPFUNC)(PPEB);
/* Type for a DLL's entry point */
typedef BOOL STDCALL
(* PDLLMAIN_FUNC)(HANDLE hInst,
ULONG ul_reason_for_call,
LPVOID lpReserved);
typedef struct _LDR_MODULE
{
LIST_ENTRY InLoadOrderModuleList;
LIST_ENTRY InMemoryOrderModuleList; // not used
LIST_ENTRY InInitializationOrderModuleList; // not used
PVOID BaseAddress;
ULONG EntryPoint;
ULONG SizeOfImage;
UNICODE_STRING FullDllName;
UNICODE_STRING BaseDllName;
ULONG Flags;
SHORT LoadCount;
SHORT TlsIndex;
HANDLE SectionHandle;
ULONG CheckSum;
ULONG TimeDateStamp;
#ifdef KDBG
IMAGE_SYMBOL_INFO SymbolInfo;
#endif /* KDBG */
} LDR_MODULE, *PLDR_MODULE;
typedef struct _LDR_SYMBOL_INFO {
PLDR_MODULE ModuleObject;
ULONG_PTR ImageBase;
PVOID SymbolsBuffer;
ULONG SymbolsBufferLength;
PVOID SymbolStringsBuffer;
ULONG SymbolStringsBufferLength;
} LDR_SYMBOL_INFO, *PLDR_SYMBOL_INFO;
#define RVA(m, b) ((ULONG)b + m)
typedef struct _MODULE_ENTRY
{
ULONG Unknown0;
ULONG Unknown1;
PVOID BaseAddress;
ULONG SizeOfImage;
ULONG Flags;
USHORT Unknown2;
USHORT Unknown3;
SHORT LoadCount;
USHORT PathLength;
CHAR ModuleName[256];
} MODULE_ENTRY, *PMODULE_ENTRY;
typedef struct _MODULE_INFORMATION
{
ULONG ModuleCount;
MODULE_ENTRY ModuleEntry[1];
} MODULE_INFORMATION, *PMODULE_INFORMATION;
#ifdef KDBG
VOID
LdrpLoadUserModuleSymbols(PLDR_MODULE LdrModule);
#endif
PEPFUNC LdrPEStartup (PVOID ImageBase,
HANDLE SectionHandle,
PLDR_MODULE* Module,
PWSTR FullDosName);
NTSTATUS LdrMapSections(HANDLE ProcessHandle,
PVOID ImageBase,
HANDLE SectionHandle,
PIMAGE_NT_HEADERS NTHeaders);
NTSTATUS LdrMapNTDllForProcess(HANDLE ProcessHandle,
PHANDLE NTDllSectionHandle);
NTSTATUS STDCALL
LdrDisableThreadCalloutsForDll(IN PVOID BaseAddress);
NTSTATUS STDCALL
LdrGetDllHandle(IN ULONG Unknown1,
IN ULONG Unknown2,
IN PUNICODE_STRING DllName,
OUT PVOID *BaseAddress);
NTSTATUS STDCALL
LdrFindEntryForAddress(PVOID Address,
PLDR_MODULE *Module);
NTSTATUS STDCALL
LdrGetProcedureAddress(IN PVOID BaseAddress,
IN PANSI_STRING Name,
IN ULONG Ordinal,
OUT PVOID *ProcedureAddress);
VOID STDCALL
LdrInitializeThunk(ULONG Unknown1,
ULONG Unknown2,
ULONG Unknown3,
ULONG Unknown4);
NTSTATUS STDCALL
LdrLoadDll(IN PWSTR SearchPath OPTIONAL,
IN ULONG LoadFlags,
IN PUNICODE_STRING Name,
OUT PVOID *BaseAddress OPTIONAL);
NTSTATUS STDCALL
LdrQueryProcessModuleInformation(IN PMODULE_INFORMATION ModuleInformation OPTIONAL,
IN ULONG Size OPTIONAL,
OUT PULONG ReturnedSize);
NTSTATUS STDCALL
LdrShutdownProcess(VOID);
NTSTATUS STDCALL
LdrShutdownThread(VOID);
NTSTATUS STDCALL
LdrUnloadDll(IN PVOID BaseAddress);
#endif /* __NTOSKRNL_INCLUDE_INTERNAL_LDR_H */
/* EOF */

View file

@ -1,17 +1,22 @@
/* $Id: rtl.h,v 1.35 2002/09/08 10:22:32 chorns Exp $
/* $Id: rtl.h,v 1.36 2002/11/14 18:21:03 chorns Exp $
*
*/
#ifndef __INCLUDE_NTDLL_RTL_H
#define __INCLUDE_NTDLL_RTL_H
#include <ntos/types.h>
#include <napi/teb.h>
#include <ddk/ntddk.h>
#include <ddk/ntifs.h>
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
#ifndef __USE_W32API
typedef struct _DEBUG_BUFFER
{
HANDLE SectionHandle;
@ -52,6 +57,9 @@ typedef struct _CRITICAL_SECTION {
DWORD Reserved;
} CRITICAL_SECTION, *PCRITICAL_SECTION, *LPCRITICAL_SECTION;
#endif /* !__USE_W32API */
typedef struct _RTL_PROCESS_INFO
{
ULONG Size;
@ -374,7 +382,7 @@ RtlDeNormalizeProcessParams (
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
);
VOID
NTSTATUS
STDCALL
RtlDestroyProcessParameters (
IN PRTL_USER_PROCESS_PARAMETERS ProcessParameters
@ -569,6 +577,10 @@ RtlpNtSetValueKey (
);
#ifndef __NTDRIVER__
#ifndef __INTERLOCKED_DECLARED
#define __INTERLOCKED_DECLARED
LONG
STDCALL
InterlockedIncrement (
@ -603,6 +615,7 @@ InterlockedExchangeAdd (
LONG Increment
);
#endif /* __INTERLOCKED_DECLARED */
#endif /* __NTDRIVER__ */

View file

@ -1,11 +1,12 @@
#ifndef _NTOS_H
#define _NTOS_H
/* $Id: ntos.h,v 1.6 2002/10/19 14:24:15 chorns Exp $ */
/* $Id: ntos.h,v 1.7 2002/11/14 18:21:02 chorns Exp $ */
#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 "ntos/types.h"
#include "ntos/cdrom.h"
#include "ntos/console.h"
@ -33,6 +34,10 @@
#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 "ntdll/csr.h"
#include "ntdll/dbg.h"
#include "ntdll/ldr.h"
@ -70,6 +75,10 @@
#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"
#endif
#endif /* ndef _NTOS_H */

View file

@ -1,44 +1,44 @@
/* $Id: cdrom.h,v 1.3 2002/09/17 20:35:22 hbirr Exp $
*
* 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 <ekohl@rz-online.de>
* UPDATE HISTORY:
* 10/04/2002: Created
*/
#ifndef __INCLUDE_NTOS_CDROM_H
#define __INCLUDE_NTOS_CDROM_H
#define IOCTL_CDROM_READ_TOC CTL_CODE(FILE_DEVICE_CD_ROM, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_GET_LAST_SESSION CTL_CODE(FILE_DEVICE_CD_ROM, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_GET_DRIVE_GEOMETRY CTL_CODE(FILE_DEVICE_CD_ROM, 0x0013, 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 */
/* $Id: cdrom.h,v 1.4 2002/11/14 18:21:03 chorns Exp $
*
* 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 <ekohl@rz-online.de>
* UPDATE HISTORY:
* 10/04/2002: Created
*/
#ifndef __INCLUDE_NTOS_CDROM_H
#define __INCLUDE_NTOS_CDROM_H
#define IOCTL_CDROM_READ_TOC CTL_CODE(FILE_DEVICE_CD_ROM, 0x0000, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_GET_LAST_SESSION CTL_CODE(FILE_DEVICE_CD_ROM, 0x000E, METHOD_BUFFERED, FILE_READ_ACCESS)
#define IOCTL_CDROM_GET_DRIVE_GEOMETRY CTL_CODE(FILE_DEVICE_CD_ROM, 0x0013, 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

@ -14,16 +14,31 @@
#define __INCLUDE_CONSOLE_H
/* 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 CONSOLE_INPUT_MODE_VALID (0x0f)
#define ENABLE_PROCESSED_OUTPUT (0x01)
#define ENABLE_WRAP_AT_EOL_OUTPUT (0x02)
#define CONSOLE_OUTPUT_MODE_VALID (0x03)
typedef struct _CONSOLE_FONT_INFO {
DWORD nFont;
COORD dwFontSize;
} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
typedef struct _CONSOLE_SELECTION_INFO {
DWORD dwFlags;
COORD dwSelectionAnchor;
SMALL_RECT srSelection;
} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
#ifndef __USE_W32API
/* 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;
@ -37,18 +52,6 @@ typedef struct _CONSOLE_CURSOR_INFO {
BOOL bVisible;
} CONSOLE_CURSOR_INFO, *PCONSOLE_CURSOR_INFO;
typedef struct _CONSOLE_FONT_INFO {
DWORD nFont;
COORD dwFontSize;
} CONSOLE_FONT_INFO, *PCONSOLE_FONT_INFO;
typedef struct _CONSOLE_SELECTION_INFO {
DWORD dwFlags;
COORD dwSelectionAnchor;
SMALL_RECT srSelection;
} CONSOLE_SELECTION_INFO, *PCONSOLE_SELECTION_INFO;
#endif /* !__USE_W32API */
#endif /* __INCLUDE_CONSOLE_H */

View file

@ -1,4 +1,4 @@
/* $Id: disk.h,v 1.11 2002/09/08 10:22:32 chorns Exp $
/* $Id: disk.h,v 1.12 2002/11/14 18:21:03 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -134,13 +134,6 @@ typedef struct _PARTITION_INFORMATION
BOOLEAN RewritePartition;
} PARTITION_INFORMATION, *PPARTITION_INFORMATION;
typedef struct _DRIVE_LAYOUT_INFORMATION
{
DWORD PartitionCount;
DWORD Signature;
PARTITION_INFORMATION PartitionEntry[1];
} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION;
typedef struct _SET_PARTITION_INFORMATION
{
ULONG PartitionType;
@ -155,6 +148,17 @@ typedef struct _DISK_GEOMETRY
DWORD BytesPerSector;
} DISK_GEOMETRY, *PDISK_GEOMETRY;
#ifndef __USE_W32API
typedef struct _DRIVE_LAYOUT_INFORMATION
{
DWORD PartitionCount;
DWORD Signature;
PARTITION_INFORMATION PartitionEntry[1];
} DRIVE_LAYOUT_INFORMATION, *PDRIVE_LAYOUT_INFORMATION;
#endif /* !__USE_W32API */
#endif /* __INCLUDE_DISK_H */
/* EOF */

View file

@ -31,6 +31,7 @@ typedef EXCEPTION_DISPOSITION CDECL (*PEXCEPTION_HANDLER)(
PCONTEXT Context,
PVOID DispatcherContext);
#ifndef __USE_W32API
#define EXCEPTION_MAXIMUM_PARAMETERS (15)
@ -43,6 +44,8 @@ typedef struct _EXCEPTION_RECORD {
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
} EXCEPTION_RECORD, *PEXCEPTION_RECORD, *LPEXCEPTION_RECORD;
#endif /* !__USE_W32API */
/* ExceptionFlags */
#ifndef _GNU_H_WINDOWS32_DEFINES
#ifdef __NTOSKRNL__
@ -55,12 +58,6 @@ typedef struct _EXCEPTION_RECORD {
#define EXCEPTION_NESTED_CALL 0x10
typedef struct _EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord;
} EXCEPTION_POINTERS, *PEXCEPTION_POINTERS, *LPEXCEPTION_POINTERS;
typedef struct _EXCEPTION_REGISTRATION
{
struct _EXCEPTION_REGISTRATION* prev;
@ -142,4 +139,15 @@ 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

@ -13,6 +13,8 @@
#ifndef __INCLUDE_FILE_H
#define __INCLUDE_FILE_H
#ifndef __USE_W32API
#define GENERIC_READ (0x80000000L)
#define GENERIC_WRITE (0x40000000L)
#define FILE_READ_DATA ( 0x0001 ) /* file & pipe */
@ -40,28 +42,6 @@
#define FILE_WRITE_ATTRIBUTES ( 0x0100 ) /* all */
#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)
#define FILE_SHARE_DELETE (4)
#define FILE_SHARE_READ (1)
#define FILE_SHARE_WRITE (2)
@ -112,5 +92,28 @@
#define FILE_FILE_COMPRESSION (0x00000010)
#define FILE_VOLUME_IS_COMPRESSED (0x00008000)
#endif /* !__USE_W32API */
#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 /* __INCLUDE_FILE_H */

View file

@ -11,6 +11,8 @@
#ifndef __INCLUDE_NTOS_GDITYPES_H
#define __INCLUDE_NTOS_GDITYPES_H
#ifndef __USE_W32API
#define CCHDEVICENAME (32)
#define CCHFORMNAME (32)
@ -86,6 +88,8 @@ typedef struct _devicemodeW
DWORD dmICCModel;
} DEVMODEW,*LPDEVMODEW,*PDEVMODEW;
#endif /* !__USE_W32API */
#endif /* __INCLUDE_NTOS_GDITYPES_H */
/* EOF */

View file

@ -9,16 +9,20 @@
* 27/06/00: Created
*/
#ifndef __INCLUDE_HEAP_H
#define __INCLUDE_HEAP_H
/* HeapAlloc, HeapReAlloc */
#define HEAP_NO_VALLOC (64)
#ifndef __USE_W32API
#define HEAP_GENERATE_EXCEPTIONS (4)
#define HEAP_NO_SERIALIZE (1)
#define HEAP_ZERO_MEMORY (8)
#define HEAP_REALLOC_IN_PLACE_ONLY (16)
#define HEAP_GROWABLE (2)
#define HEAP_NO_VALLOC (64)
#define HEAP_GROWABLE (32)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_HEAP_H */

View file

@ -1,46 +1,46 @@
#ifndef __KDBGSYMS_H
#define __KDBGSYMS_H
#include <ddk/ntddk.h>
#define ST_FILENAME 0x00
#define ST_FUNCTION 0x01
#define ST_LINENUMBER 0x02
typedef struct _SYMBOL
{
struct _SYMBOL *Next;
/* Address relative to module base address */
ULONG RelativeAddress;
ULONG SymbolType;
ANSI_STRING Name;
ULONG LineNumber;
} SYMBOL, *PSYMBOL;
typedef struct _SYMBOL_TABLE
{
ULONG SymbolCount;
PSYMBOL Symbols;
} SYMBOL_TABLE, *PSYMBOL_TABLE;
typedef struct _IMAGE_SYMBOL_INFO
{
SYMBOL_TABLE FileNameSymbols;
SYMBOL_TABLE FunctionSymbols;
SYMBOL_TABLE LineNumberSymbols;
ULONG_PTR ImageBase;
ULONG_PTR ImageSize;
PVOID FileBuffer;
PVOID SymbolsBase;
ULONG SymbolsLength;
PVOID SymbolStringsBase;
ULONG SymbolStringsLength;
} IMAGE_SYMBOL_INFO, *PIMAGE_SYMBOL_INFO;
#define AreSymbolsParsed(si)((si)->FileNameSymbols.Symbols \
|| (si)->FunctionSymbols.Symbols \
|| (si)->LineNumberSymbols.Symbols)
#endif
#ifndef __KDBGSYMS_H
#define __KDBGSYMS_H
#include <ddk/ntddk.h>
#define ST_FILENAME 0x00
#define ST_FUNCTION 0x01
#define ST_LINENUMBER 0x02
typedef struct _SYMBOL
{
struct _SYMBOL *Next;
/* Address relative to module base address */
ULONG RelativeAddress;
ULONG SymbolType;
ANSI_STRING Name;
ULONG LineNumber;
} SYMBOL, *PSYMBOL;
typedef struct _SYMBOL_TABLE
{
ULONG SymbolCount;
PSYMBOL Symbols;
} SYMBOL_TABLE, *PSYMBOL_TABLE;
typedef struct _IMAGE_SYMBOL_INFO
{
SYMBOL_TABLE FileNameSymbols;
SYMBOL_TABLE FunctionSymbols;
SYMBOL_TABLE LineNumberSymbols;
ULONG_PTR ImageBase;
ULONG_PTR ImageSize;
PVOID FileBuffer;
PVOID SymbolsBase;
ULONG SymbolsLength;
PVOID SymbolStringsBase;
ULONG SymbolStringsLength;
} IMAGE_SYMBOL_INFO, *PIMAGE_SYMBOL_INFO;
#define AreSymbolsParsed(si)((si)->FileNameSymbols.Symbols \
|| (si)->FunctionSymbols.Symbols \
|| (si)->LineNumberSymbols.Symbols)
#endif

View file

@ -15,6 +15,46 @@
#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)
@ -88,7 +128,7 @@ typedef struct _INPUT_RECORD {
} Event;
} INPUT_RECORD, *PINPUT_RECORD;
/* Virtual Key codes */
/* Virtual Key codes */
#define VK_LBUTTON (1)
#define VK_RBUTTON (2)
#define VK_CANCEL (3)
@ -119,42 +159,6 @@ typedef struct _INPUT_RECORD {
#define VK_INSERT (45)
#define VK_DELETE (46)
#define VK_HELP (47)
#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)
#define VK_NUMPAD0 (96)
#define VK_NUMPAD1 (97)
#define VK_NUMPAD2 (98)
@ -206,6 +210,7 @@ typedef struct _INPUT_RECORD {
#define VK_RCONTROL (163)
#define VK_RMENU (165)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_KEYBOARD_H */

View file

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

View file

@ -13,12 +13,8 @@
#ifndef __INCLUDE_MM_H
#define __INCLUDE_MM_H
#if 0
#define SEC_COMMIT (134217728)
#define SEC_IMAGE (16777216)
#define SEC_NOCACHE (268435456)
#define SEC_RESERVE (67108864)
#else
#ifndef __USE_W32API
#define SEC_BASED (0x00200000)
#define SEC_NO_CHANGE (0x00400000)
#define SEC_IMAGE (0x01000000)
@ -26,7 +22,6 @@
#define SEC_RESERVE (0x04000000)
#define SEC_COMMIT (0x08000000)
#define SEC_NOCACHE (0x10000000)
#endif
#define PAGE_READONLY (2)
#define PAGE_READWRITE (4)
#define PAGE_WRITECOPY (8)
@ -58,6 +53,10 @@
#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 */
#endif /* __INCLUDE_MM_H */

View file

@ -11,6 +11,12 @@
#ifndef __INCLUDE_NTDEF_H
#define __INCLUDE_NTDEF_H
#define PACKED __attribute__((packed))
#define EX_MAXIMUM_WAIT_OBJECTS (64)
#ifndef __USE_W32API
#define ANYSIZE_ARRAY (1)
#define DELETE (0x00010000L)
@ -20,10 +26,8 @@
#define DUPLICATE_CLOSE_SOURCE (1)
#define DUPLICATE_SAME_ACCESS (2)
#define PACKED __attribute__((packed))
#define INVALID_HANDLE_VALUE ((HANDLE)-1)
#define EX_MAXIMUM_WAIT_OBJECTS (64)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_NTDEF_H */

View file

@ -1,4 +1,4 @@
/* $Id: port.h,v 1.1 2001/02/02 20:44:21 ekohl Exp $
/* $Id: port.h,v 1.2 2002/11/14 18:21:03 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -13,11 +13,18 @@
#ifndef __INCLUDE_PORT_H
#define __INCLUDE_PORT_H
#ifndef __USE_W32API
/* Port Object Access */
#define PORT_ALL_ACCESS (0x1)
#else /* __USE_W32API */
#include <ddk/ntifs.h>
#endif /* __USE_W32API */
#endif /* __INCLUDE_PORT_H */
/* EOF */

View file

@ -13,6 +13,21 @@
#ifndef __INCLUDE_PS_H
#define __INCLUDE_PS_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)
#ifndef __USE_W32API
/* Thread access rights */
#define THREAD_TERMINATE (0x0001L)
#define THREAD_SUSPEND_RESUME (0x0002L)
@ -25,9 +40,6 @@
#define THREAD_DIRECT_IMPERSONATION (0x0200L)
#define THREAD_ALL_ACCESS (0x1f03ffL)
#define THREAD_READ (0x020048L)
#define THREAD_WRITE (0x020037L)
#define THREAD_EXECUTE (0x120000L)
/* Process access rights */
#define PROCESS_TERMINATE (0x0001L)
@ -43,16 +55,10 @@
#define PROCESS_QUERY_INFORMATION (0x0400L)
#define PROCESS_ALL_ACCESS (0x1f0fffL)
#define PROCESS_READ (0x020410L)
#define PROCESS_WRITE (0x020bebL)
#define PROCESS_EXECUTE (0x120000L)
/* Thread priorities */
#define THREAD_PRIORITY_ABOVE_NORMAL (1)
#define THREAD_PRIORITY_BELOW_NORMAL (-1)
#define THREAD_PRIORITY_HIGHEST (2)
#define THREAD_PRIORITY_IDLE (-15)
#define THREAD_PRIORITY_LOWEST (-2)
#define THREAD_PRIORITY_NORMAL (0)
#define THREAD_PRIORITY_TIME_CRITICAL (15)
#define THREAD_PRIORITY_ERROR_RETURN (2147483647)
@ -75,4 +81,6 @@
/* ResumeThread / SuspendThread */
#define MAXIMUM_SUSPEND_COUNT (0x7f)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_PS_H */

View file

@ -1,4 +1,4 @@
/* $Id: registry.h,v 1.3 2002/06/19 22:30:29 ekohl Exp $
/* $Id: registry.h,v 1.4 2002/11/14 18:21:03 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -13,6 +13,8 @@
#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)
@ -51,5 +53,6 @@
#define REG_FULL_RESOURCE_DESCRIPTOR (9)
#define REG_RESOURCE_REQUIREMENTS_LIST (10)
#endif /* !__USE_W32API */
#endif /* __INCLUDE_NTOS_REGISTRY_H */

View file

@ -4,6 +4,71 @@
#include <ntos/ntdef.h>
#include <ntos/types.h>
/* 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
#if 0
/* Security descriptor control. */
#define SECURITY_DESCRIPTOR_REVISION (1)
#define SECURITY_DESCRIPTOR_MIN_LENGTH (20)
#define SE_OWNER_DEFAULTED (1)
#define SE_GROUP_DEFAULTED (2)
#define SE_DACL_PRESENT (4)
#define SE_DACL_DEFAULTED (8)
#define SE_SACL_PRESENT (16)
#define SE_SACL_DEFAULTED (32)
#define SE_SELF_RELATIVE (32768)
#endif
typedef ULONG ACCESS_MODE, *PACCESS_MODE;
#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
typedef struct _SECURITY_DESCRIPTOR_CONTEXT
{
} SECURITY_DESCRIPTOR_CONTEXT, *PSECURITY_DESCRIPTOR_CONTEXT;
#ifndef __USE_W32API
/* SID Auhority */
#define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
#define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
@ -51,47 +116,6 @@
#define DOMAIN_ALIAS_RID_BACKUP_OPS (0x227L)
#define DOMAIN_ALIAS_RID_REPLICATOR (0x228L)
/* 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
#if 0
/* Security descriptor control. */
#define SECURITY_DESCRIPTOR_REVISION (1)
#define SECURITY_DESCRIPTOR_MIN_LENGTH (20)
#define SE_OWNER_DEFAULTED (1)
#define SE_GROUP_DEFAULTED (2)
#define SE_DACL_PRESENT (4)
#define SE_DACL_DEFAULTED (8)
#define SE_SACL_PRESENT (16)
#define SE_SACL_DEFAULTED (32)
#define SE_SELF_RELATIVE (32768)
#endif
/* ACCESS_MASK */
#define MAXIMUM_ALLOWED (0x2000000L)
#define GENERIC_ALL (0x10000000L)
@ -148,19 +172,12 @@ typedef ULONG SECURITY_IMPERSONATION_LEVEL, *PSECURITY_IMPERSONATION_LEVEL;
#define SecurityImpersonation ((SECURITY_IMPERSONATION_LEVEL)3)
#define SecurityDelegation ((SECURITY_IMPERSONATION_LEVEL)4)
typedef ULONG ACCESS_MASK, *PACCESS_MASK;
typedef ULONG TOKEN_TYPE, *PTOKEN_TYPE;
#define TokenPrimary ((TOKEN_TYPE)1)
#define TokenImpersonation ((TOKEN_TYPE)2)
//typedef BOOLEAN SECURITY_CONTEXT_TRACKING_MODE, *PSECURITY_CONTEXT_TRACKING_MODE;
//#define SECURITY_DYNAMIC_TRACKING (TRUE)
//#define SECURITY_STATIC_TRACKING (FALSE)
typedef ULONG ACCESS_MASK, *PACCESS_MASK;
typedef ULONG ACCESS_MODE, *PACCESS_MODE;
typedef struct _SECURITY_QUALITY_OF_SERVICE
{
ULONG Length;
@ -178,12 +195,6 @@ typedef struct _ACE_HEADER
WORD AceSize;
} ACE_HEADER, *PACE_HEADER;
typedef struct
{
ACE_HEADER Header;
ACCESS_MASK AccessMask;
} ACE, *PACE;
typedef struct _SID_IDENTIFIER_AUTHORITY
{
BYTE Value[6];
@ -226,10 +237,6 @@ typedef enum _ACL_INFORMATION_CLASS
typedef USHORT SECURITY_DESCRIPTOR_CONTROL, *PSECURITY_DESCRIPTOR_CONTROL;
typedef struct _SECURITY_DESCRIPTOR_CONTEXT
{
} SECURITY_DESCRIPTOR_CONTEXT, *PSECURITY_DESCRIPTOR_CONTEXT;
typedef LARGE_INTEGER LUID, *PLUID;
typedef struct _SECURITY_DESCRIPTOR
@ -340,5 +347,12 @@ typedef struct _SECURITY_ATTRIBUTES
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
#endif /* !__USE_W32API */
typedef struct
{
ACE_HEADER Header;
ACCESS_MASK AccessMask;
} ACE, *PACE;
#endif /* __INCLUDE_SECURITY_H */

View file

@ -12,13 +12,13 @@
#ifndef __INCLUDE_SYNCH_H
#define __INCLUDE_SYNCH_H
#ifndef __USE_W32API
#define EVENT_ALL_ACCESS (0x1f0003L)
#define EVENT_QUERY_STATE (1)
#define EVENT_MODIFY_STATE (2)
#define EVENT_QUERY_STATE (1)
#define EVENT_PAIR_ALL_ACCESS (0x1f0000L)
#define MUTEX_ALL_ACCESS (0x1f0001L)
#define MUTEX_QUERY_STATE (1)
#define MUTANT_ALL_ACCESS (0x1f0001L)
#define MUTANT_QUERY_STATE (1)
#define SEMAPHORE_ALL_ACCESS (0x1f0003L)
@ -28,5 +28,8 @@
#define TIMER_QUERY_STATE (1)
#define TIMER_MODIFY_STATE (2)
#endif /* !__USE_W32API */
#define MUTEX_QUERY_STATE (1)
#endif /* __INCLUDE_SYNCH_H */

View file

@ -14,6 +14,8 @@
#include <ntos/types.h>
#ifndef __USE_W32API
typedef struct _SYSTEMTIME
{
WORD wYear;
@ -37,4 +39,13 @@ typedef struct _TIME_ZONE_INFORMATION
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,432 +1,423 @@
/*
* 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
/* Fixed precision types */
typedef signed char INT8, *PINT8;
typedef signed short INT16, *PINT16;
typedef signed int INT32, *PINT32;
typedef signed long long INT64, *PINT64;
typedef unsigned char UINT8, *PUINT8;
typedef unsigned short UINT16, *PUINT16;
typedef unsigned int UINT32, *PUINT32;
typedef unsigned long long UINT64, *PUINT64;
typedef signed long int LONG32, *PLONG32;
typedef unsigned long int ULONG32, *PULONG32;
typedef unsigned long int DWORD32, *PDWORD32;
#ifdef _WIN64
/* 64-bit architecture */
typedef INT64 INT, *PINT;
typedef LONG64 LONG, *PLONG;
typedef DWORD64 DWORD, *PDWORD;
typedef UINT64 UINT, *PUINT;
typedef ULONG64 ULONG, *PULONG;
/* Pointer precision types */
typedef long long INT_PTR, *PINT_PTR;
typedef unsigned long long UINT_PTR, *PUINT_PTR;
typedef long long LONG_PTR, *PLONG_PTR;
typedef unsigned long long ULONG_PTR, *PULONG_PTR;
typedef unsigned long long HANDLE_PTR;
typedef unsigned int UHALF_PTR, *PUHALF_PTR;
typedef int HALF_PTR, *PHALF_PTR;
#else /* _WIN64 */
/* 32-bit architecture */
typedef INT32 INT, *PINT;
typedef LONG32 LONG, *PLONG;
typedef DWORD32 DWORD, *PDWORD;
typedef UINT32 UINT, *PUINT;
typedef ULONG32 ULONG, *PULONG;
/* Pointer precision types */
typedef int INT_PTR, *PINT_PTR;
typedef unsigned int UINT_PTR, *PUINT_PTR;
typedef long LONG_PTR, *PLONG_PTR;
typedef unsigned long ULONG_PTR, *PULONG_PTR;
typedef unsigned short UHALF_PTR, *PUHALF_PTR;
typedef short HALF_PTR, *PHALF_PTR;
typedef unsigned long HANDLE_PTR;
#endif /* _WIN64 */
typedef ULONG_PTR DWORD_PTR, *PDWORD_PTR;
typedef long long LONG64, *PLONG64;
typedef unsigned long long ULONG64, *PULONG64;
typedef unsigned long long DWORD64, *PDWORD64;
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef unsigned short WCHAR;
typedef unsigned short WORD;
typedef int BOOL;
typedef unsigned char BOOLEAN;
typedef BOOLEAN* PBOOLEAN;
typedef unsigned short *LPWSTR;
typedef unsigned short *PWSTR;
typedef unsigned char *PUCHAR;
typedef unsigned short *PUSHORT;
typedef void *PVOID;
typedef unsigned char BYTE;
typedef void *LPVOID;
typedef float *PFLOAT;
typedef unsigned short *PWCH;
typedef unsigned short *PWORD;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
typedef long long *PLONGLONG;
typedef unsigned long long *PULONGLONG;
/* Check VOID before defining CHAR, SHORT */
#ifndef VOID
#define VOID void
typedef char CHAR;
typedef short SHORT;
#endif
typedef CHAR *PCHAR;
typedef CHAR *PCH;
typedef void *HANDLE;
typedef char CCHAR;
typedef CCHAR *PCCHAR;
#define FALSE 0
#define TRUE 1
#ifndef NULL
#ifdef __cplusplus
#define NULL 0
#else
#define NULL ((void*)0)
#endif /* __cplusplus */
#endif /* NULL */
typedef const unsigned short *PCWSTR;
typedef char* PCSZ;
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;
typedef struct _FILETIME
{
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME, *LPFILETIME, *PFILETIME;
#define CONST const
#ifdef i386
#define STDCALL __attribute__ ((stdcall))
#define CDECL __attribute((cdecl))
#define CALLBACK WINAPI
#define PASCAL WINAPI
#else
#define STDCALL
#define CDECL
#define CALLBACK
#define PASCAL
#endif
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;
typedef DWORD STDCALL (*PTHREAD_START_ROUTINE) (LPVOID);
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
typedef unsigned short *PWCHAR;
#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 */
/* The doc refered me to winnt.h, so I had to look... */
#define SIZE_OF_80387_REGISTERS 80
/* Values for contextflags */
#define CONTEXT_i386 0x10000
#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_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
/* our own invention */
#define FLAG_TRACE_BIT 0x100
#define CONTEXT_DEBUGGER (CONTEXT_FULL | CONTEXT_FLOATING_POINT)
#endif
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 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;
} 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;
#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 HANDLE *PHANDLE;
typedef struct value_ent {
LPWSTR ve_valuename;
DWORD ve_valuelen;
DWORD ve_valueptr;
DWORD ve_type;
} WVALENT, *PWVALENT;
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 unsigned short *LPCWSTR;
typedef unsigned short RTL_ATOM;
typedef unsigned short *PRTL_ATOM;
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;
typedef VOID STDCALL
(*PTIMERAPCROUTINE)(
LPVOID lpArgToCompletionRoutine,
DWORD dwTimerLowValue,
DWORD dwTimerHighValue
);
#include "except.h"
#endif /* __INCLUDE_TYPES_H */
/*
* 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
#include <basetsd.h>
/* Fixed precision types */
typedef signed char INT8, *PINT8;
typedef signed short INT16, *PINT16;
typedef unsigned short UINT8, *PUINT8;
typedef unsigned short UINT16, *PUINT16;
/* Check VOID before defining CHAR, SHORT */
#ifndef VOID
#define VOID void
typedef char CHAR;
typedef short SHORT;
#endif
#ifndef __USE_W32API
#ifdef i386
#define STDCALL __attribute__ ((stdcall))
#define CDECL __attribute__ ((cdecl))
#define CALLBACK WINAPI
#define PASCAL WINAPI
#else
#define STDCALL
#define CDECL
#define CALLBACK
#define PASCAL
#endif
#ifdef _WIN64
/* 64-bit architecture */
typedef INT64 INT, *PINT;
typedef LONG64 LONG, *PLONG;
typedef DWORD64 DWORD, *PDWORD;
typedef UINT64 UINT, *PUINT;
typedef ULONG64 ULONG, *PULONG;
#else /* _WIN64 */
/* 32-bit architecture */
typedef INT32 INT, *PINT;
typedef LONG32 LONG, *PLONG;
typedef DWORD32 DWORD, *PDWORD;
typedef UINT32 UINT, *PUINT;
typedef ULONG32 ULONG, *PULONG;
#endif /* _WIN64 */
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef unsigned short WCHAR;
typedef unsigned short WORD;
typedef int BOOL;
typedef unsigned char BOOLEAN;
typedef BOOLEAN* PBOOLEAN;
typedef unsigned short *LPWSTR;
typedef unsigned short *PWSTR;
typedef unsigned char *PUCHAR;
typedef unsigned short *PUSHORT;
typedef void *PVOID;
typedef unsigned char BYTE;
typedef void *LPVOID;
typedef float *PFLOAT;
typedef unsigned short *PWCH;
typedef unsigned short *PWORD;
typedef long long LONGLONG;
typedef unsigned long long ULONGLONG;
typedef long long *PLONGLONG;
typedef unsigned long long *PULONGLONG;
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 unsigned short *LPCWSTR;
typedef CHAR *PCHAR;
typedef CHAR *PCH;
typedef void *HANDLE;
typedef HANDLE *PHANDLE;
typedef char CCHAR;
typedef CCHAR *PCCHAR;
typedef unsigned short *PWCHAR;
typedef ULONG WAIT_TYPE;
typedef USHORT CSHORT;
typedef const unsigned short *PCWSTR;
typedef char* PCSZ;
typedef DWORD STDCALL (*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;
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;
typedef struct _UNICODE_STRING
{
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
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 */
#define FALSE 0
#define TRUE 1
#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_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
#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;
} 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;
typedef VOID STDCALL
(*PTIMERAPCROUTINE)(
LPVOID lpArgToCompletionRoutine,
DWORD dwTimerLowValue,
DWORD dwTimerHighValue
);
#include "except.h"
#else /* __USE_W32API */
typedef LPTHREAD_START_ROUTINE PTHREAD_START_ROUTINE;
#include <ddk/ntapi.h>
#endif /* __USE_W32API */
#endif /* __INCLUDE_TYPES_H */

View file

@ -3,33 +3,21 @@
#define _ANONYMOUS_UNION __extension__
#define _ANONYMOUS_STRUCT __extension__
#define NTAPI
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
#ifndef NTAPI
#define NTAPI STDCALL
#endif
#define IMAGE_SECTION_CHAR_CODE 0x00000020
#define IMAGE_SECTION_CHAR_DATA 0x00000040
#define IMAGE_SECTION_CHAR_BSS 0x00000080
#define IMAGE_SECTION_CHAR_NON_CACHABLE 0x04000000
#define IMAGE_SECTION_CHAR_NON_PAGEABLE 0x08000000
#define IMAGE_SECTION_CHAR_SHARED 0x10000000
#define IMAGE_SECTION_CHAR_EXECUTABLE 0x20000000
#define IMAGE_SECTION_CHAR_READABLE 0x40000000
#define IMAGE_SECTION_CHAR_WRITABLE 0x80000000
#define IMAGE_SECTION_NOLOAD 0x00000002
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
#define IMAGE_SIZEOF_SHORT_NAME 8
#define IMAGE_SIZEOF_SYMBOL 18
#define IMAGE_DOS_MAGIC 0x5a4d
#define IMAGE_PE_MAGIC 0x00004550
#ifndef __USE_W32API
#define IMAGE_DOS_SIGNATURE 0x5a4d
#define IMAGE_OS2_SIGNATURE 0x454e
#define IMAGE_OS2_SIGNATURE_LE 0x454c
#define IMAGE_VXD_SIGNATURE 0x454c
#define IMAGE_NT_SIGNATURE 0x00004550
#define IMAGE_SIZEOF_FILE_HEADER 20
#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 // Relocation info stripped from file.
#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 // File is executable (i.e. no unresolved externel references).
@ -53,250 +41,6 @@
#define IMAGE_FILE_MACHINE_ALPHA 0x184 // Alpha_AXP
#define IMAGE_FILE_MACHINE_POWERPC 0x1F0 // IBM PowerPC Little-Endian
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
#define IMAGE_SUBSYSTEM_UNKNOWN 0
#define IMAGE_SUBSYSTEM_NATIVE 1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
#define IMAGE_SUBSYSTEM_OS2_GUI 4
#define IMAGE_SUBSYSTEM_OS2_CUI 5
#define IMAGE_SUBSYSTEM_POSIX_GUI 6
#define IMAGE_SUBSYSTEM_POSIX_CUI 7
#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9
// Directory Entries
#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory
#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory
#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory
#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory
#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table
#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory
#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // Description String
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // Machine Value (MIPS GP)
#define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers
#define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address
//
// Section header format.
//
#define IMAGE_SIZEOF_FILE_HEADER 20
#define IMAGE_FILE_MACHINE_UNKNOWN 0
#define IMAGE_NT_SIGNATURE 0x00004550
#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b
#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224
#define IMAGE_SIZEOF_SHORT_NAME 8
#define IMAGE_SIZEOF_SECTION_HEADER 40
#define IMAGE_SIZEOF_SYMBOL 18
#define IMAGE_SIZEOF_AUX_SYMBOL 18
#define IMAGE_SIZEOF_RELOCATION 10
#define IMAGE_SIZEOF_BASE_RELOCATION 8
#define IMAGE_SIZEOF_LINENUMBER 6
#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
#define SIZEOF_RFPO_DATA 16
#define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((DWORD)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader))
#define IMAGE_SCN_TYPE_NO_PAD 8
#define IMAGE_SCN_CNT_CODE 32
#define IMAGE_SCN_CNT_INITIALIZED_DATA 64
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 128
#define IMAGE_SCN_LNK_OTHER 256
#define IMAGE_SCN_LNK_INFO 512
#define IMAGE_SCN_LNK_REMOVE 2048
#define IMAGE_SCN_LNK_COMDAT 4096
#define IMAGE_SCN_MEM_FARDATA 0x8000
#define IMAGE_SCN_MEM_PURGEABLE 0x20000
#define IMAGE_SCN_MEM_16BIT 0x20000
#define IMAGE_SCN_MEM_LOCKED 0x40000
#define IMAGE_SCN_MEM_PRELOAD 0x80000
#define IMAGE_SCN_ALIGN_1BYTES 0x100000
#define IMAGE_SCN_ALIGN_2BYTES 0x200000
#define IMAGE_SCN_ALIGN_4BYTES 0x300000
#define IMAGE_SCN_ALIGN_8BYTES 0x400000
#define IMAGE_SCN_ALIGN_16BYTES 0x500000
#define IMAGE_SCN_ALIGN_32BYTES 0x600000
#define IMAGE_SCN_ALIGN_64BYTES 0x700000
#define IMAGE_SCN_LNK_NRELOC_OVFL 0x1000000
#define IMAGE_SCN_MEM_DISCARDABLE 0x2000000
#define IMAGE_SCN_MEM_NOT_CACHED 0x4000000
#define IMAGE_SCN_MEM_NOT_PAGED 0x8000000
#define IMAGE_SCN_MEM_SHARED 0x10000000
#define IMAGE_SCN_MEM_EXECUTE 0x20000000
#define IMAGE_SCN_MEM_READ 0x40000000
#define IMAGE_SCN_MEM_WRITE 0x80000000
#define IMAGE_SYM_UNDEFINED 0
#define IMAGE_SYM_ABSOLUTE (-1)
#define IMAGE_SYM_DEBUG (-2)
#define IMAGE_SYM_TYPE_NULL 0
#define IMAGE_SYM_TYPE_VOID 1
#define IMAGE_SYM_TYPE_CHAR 2
#define IMAGE_SYM_TYPE_SHORT 3
#define IMAGE_SYM_TYPE_INT 4
#define IMAGE_SYM_TYPE_LONG 5
#define IMAGE_SYM_TYPE_FLOAT 6
#define IMAGE_SYM_TYPE_DOUBLE 7
#define IMAGE_SYM_TYPE_STRUCT 8
#define IMAGE_SYM_TYPE_UNION 9
#define IMAGE_SYM_TYPE_ENUM 10
#define IMAGE_SYM_TYPE_MOE 11
#define IMAGE_SYM_TYPE_BYTE 12
#define IMAGE_SYM_TYPE_WORD 13
#define IMAGE_SYM_TYPE_UINT 14
#define IMAGE_SYM_TYPE_DWORD 15
#define IMAGE_SYM_TYPE_PCODE 32768
#define IMAGE_SYM_DTYPE_NULL 0
#define IMAGE_SYM_DTYPE_POINTER 1
#define IMAGE_SYM_DTYPE_FUNCTION 2
#define IMAGE_SYM_DTYPE_ARRAY 3
#define IMAGE_SYM_CLASS_END_OF_FUNCTION (-1)
#define IMAGE_SYM_CLASS_NULL 0
#define IMAGE_SYM_CLASS_AUTOMATIC 1
#define IMAGE_SYM_CLASS_EXTERNAL 2
#define IMAGE_SYM_CLASS_STATIC 3
#define IMAGE_SYM_CLASS_REGISTER 4
#define IMAGE_SYM_CLASS_EXTERNAL_DEF 5
#define IMAGE_SYM_CLASS_LABEL 6
#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7
#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8
#define IMAGE_SYM_CLASS_ARGUMENT 9
#define IMAGE_SYM_CLASS_STRUCT_TAG 10
#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11
#define IMAGE_SYM_CLASS_UNION_TAG 12
#define IMAGE_SYM_CLASS_TYPE_DEFINITION 13
#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14
#define IMAGE_SYM_CLASS_ENUM_TAG 15
#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16
#define IMAGE_SYM_CLASS_REGISTER_PARAM 17
#define IMAGE_SYM_CLASS_BIT_FIELD 18
#define IMAGE_SYM_CLASS_FAR_EXTERNAL 68
#define IMAGE_SYM_CLASS_BLOCK 100
#define IMAGE_SYM_CLASS_FUNCTION 101
#define IMAGE_SYM_CLASS_END_OF_STRUCT 102
#define IMAGE_SYM_CLASS_FILE 103
#define IMAGE_SYM_CLASS_SECTION 104
#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105
#define IMAGE_COMDAT_SELECT_NODUPLICATES 1
#define IMAGE_COMDAT_SELECT_ANY 2
#define IMAGE_COMDAT_SELECT_SAME_SIZE 3
#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4
#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
#define IMAGE_COMDAT_SELECT_LARGEST 6
#define IMAGE_COMDAT_SELECT_NEWEST 7
#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
#define IMAGE_REL_I386_ABSOLUTE 0
#define IMAGE_REL_I386_DIR16 1
#define IMAGE_REL_I386_REL16 2
#define IMAGE_REL_I386_DIR32 6
#define IMAGE_REL_I386_DIR32NB 7
#define IMAGE_REL_I386_SEG12 9
#define IMAGE_REL_I386_SECTION 10
#define IMAGE_REL_I386_SECREL 11
#define IMAGE_REL_I386_REL32 20
#define IMAGE_REL_MIPS_ABSOLUTE 0
#define IMAGE_REL_MIPS_REFHALF 1
#define IMAGE_REL_MIPS_REFWORD 2
#define IMAGE_REL_MIPS_JMPADDR 3
#define IMAGE_REL_MIPS_REFHI 4
#define IMAGE_REL_MIPS_REFLO 5
#define IMAGE_REL_MIPS_GPREL 6
#define IMAGE_REL_MIPS_LITERAL 7
#define IMAGE_REL_MIPS_SECTION 10
#define IMAGE_REL_MIPS_SECREL 11
#define IMAGE_REL_MIPS_SECRELLO 12
#define IMAGE_REL_MIPS_SECRELHI 13
#define IMAGE_REL_MIPS_REFWORDNB 34
#define IMAGE_REL_MIPS_PAIR 35
#define IMAGE_REL_ALPHA_ABSOLUTE 0
#define IMAGE_REL_ALPHA_REFLONG 1
#define IMAGE_REL_ALPHA_REFQUAD 2
#define IMAGE_REL_ALPHA_GPREL32 3
#define IMAGE_REL_ALPHA_LITERAL 4
#define IMAGE_REL_ALPHA_LITUSE 5
#define IMAGE_REL_ALPHA_GPDISP 6
#define IMAGE_REL_ALPHA_BRADDR 7
#define IMAGE_REL_ALPHA_HINT 8
#define IMAGE_REL_ALPHA_INLINE_REFLONG 9
#define IMAGE_REL_ALPHA_REFHI 10
#define IMAGE_REL_ALPHA_REFLO 11
#define IMAGE_REL_ALPHA_PAIR 12
#define IMAGE_REL_ALPHA_MATCH 13
#define IMAGE_REL_ALPHA_SECTION 14
#define IMAGE_REL_ALPHA_SECREL 15
#define IMAGE_REL_ALPHA_REFLONGNB 16
#define IMAGE_REL_ALPHA_SECRELLO 17
#define IMAGE_REL_ALPHA_SECRELHI 18
#define IMAGE_REL_PPC_ABSOLUTE 0
#define IMAGE_REL_PPC_ADDR64 1
#define IMAGE_REL_PPC_ADDR32 2
#define IMAGE_REL_PPC_ADDR24 3
#define IMAGE_REL_PPC_ADDR16 4
#define IMAGE_REL_PPC_ADDR14 5
#define IMAGE_REL_PPC_REL24 6
#define IMAGE_REL_PPC_REL14 7
#define IMAGE_REL_PPC_TOCREL16 8
#define IMAGE_REL_PPC_TOCREL14 9
#define IMAGE_REL_PPC_ADDR32NB 10
#define IMAGE_REL_PPC_SECREL 11
#define IMAGE_REL_PPC_SECTION 12
#define IMAGE_REL_PPC_IFGLUE 13
#define IMAGE_REL_PPC_IMGLUE 14
#define IMAGE_REL_PPC_SECREL16 15
#define IMAGE_REL_PPC_REFHI 16
#define IMAGE_REL_PPC_REFLO 17
#define IMAGE_REL_PPC_PAIR 18
#define IMAGE_REL_PPC_TYPEMASK 255
#define IMAGE_REL_PPC_NEG 256
#define IMAGE_REL_PPC_BRTAKEN 512
#define IMAGE_REL_PPC_BRNTAKEN 1024
#define IMAGE_REL_PPC_TOCDEFN 2048
#define IMAGE_REL_BASED_ABSOLUTE 0
#define IMAGE_REL_BASED_HIGH 1
#define IMAGE_REL_BASED_LOW 2
#define IMAGE_REL_BASED_HIGHLOW 3
#define IMAGE_REL_BASED_HIGHADJ 4
#define IMAGE_REL_BASED_MIPS_JMPADDR 5
#define IMAGE_ARCHIVE_START_SIZE 8
#define IMAGE_ARCHIVE_START "!<arch>\n"
#define IMAGE_ARCHIVE_END "`\n"
#define IMAGE_ARCHIVE_PAD "\n"
#define IMAGE_ARCHIVE_LINKER_MEMBER "/ "
#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// "
#define IMAGE_ORDINAL_FLAG 0x80000000
#define IMAGE_SNAP_BY_ORDINAL(o) ((o&IMAGE_ORDINAL_FLAG)!=0)
#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000
#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000
#define IMAGE_DEBUG_TYPE_UNKNOWN 0
#define IMAGE_DEBUG_TYPE_COFF 1
#define IMAGE_DEBUG_TYPE_CODEVIEW 2
#define IMAGE_DEBUG_TYPE_FPO 3
#define IMAGE_DEBUG_TYPE_MISC 4
#define IMAGE_DEBUG_TYPE_EXCEPTION 5
#define IMAGE_DEBUG_TYPE_FIXUP 6
#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7
#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8
#define IMAGE_SIZEOF_SHORT_NAME 8
#define IMAGE_SIZEOF_SECTION_HEADER 40
#define IMAGE_SECTION_CODE (0x20)
#define IMAGE_SECTION_INITIALIZED_DATA (0x40)
#define IMAGE_SECTION_UNINITIALIZED_DATA (0x80)
#pragma pack(push,4)
typedef struct _IMAGE_FILE_HEADER {
WORD Machine;
@ -701,12 +445,305 @@ typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
} IMAGE_SEPARATE_DEBUG_HEADER,*PIMAGE_SEPARATE_DEBUG_HEADER;
#pragma pack(pop)
#define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)
//
// Each directory contains the 32-bit Name of the entry and an offset,
// relative to the beginning of the resource directory of the data associated
// with this directory entry. If the name of the entry is an actual text
// string instead of an integer Id, then the high order bit of the name field
// is set to one and the low order 31-bits are an offset, relative to the
// beginning of the resource directory of the string, which is of type
// IMAGE_RESOURCE_DIRECTORY_STRING. Otherwise the high bit is clear and the
// low-order 16-bits are the integer Id that identify this resource directory
// entry. If the directory entry is yet another resource directory (i.e. a
// subdirectory), then the high order bit of the offset field will be
// set to indicate this. Otherwise the high bit is clear and the offset
// field points to a resource data entry.
//
typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
DWORD Name;
DWORD OffsetToData;
} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
/*
typedef struct _IMAGE_RESOURCE_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
WORD NumberOfNamedEntries;
WORD NumberOfIdEntries;
IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[0];
} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;
*/
#endif /* !__USE_W32API */
#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S))
#define IMAGE_SECTION_CHAR_CODE 0x00000020
#define IMAGE_SECTION_CHAR_DATA 0x00000040
#define IMAGE_SECTION_CHAR_BSS 0x00000080
#define IMAGE_SECTION_CHAR_NON_CACHABLE 0x04000000
#define IMAGE_SECTION_CHAR_NON_PAGEABLE 0x08000000
#define IMAGE_SECTION_CHAR_SHARED 0x10000000
#define IMAGE_SECTION_CHAR_EXECUTABLE 0x20000000
#define IMAGE_SECTION_CHAR_READABLE 0x40000000
#define IMAGE_SECTION_CHAR_WRITABLE 0x80000000
#define IMAGE_SECTION_NOLOAD 0x00000002
#define IMAGE_DOS_MAGIC 0x5a4d
#define IMAGE_PE_MAGIC 0x00004550
#define IMAGE_NT_SIGNATURE 0x00004550
#define IMAGE_SIZEOF_FILE_HEADER 20
#define IMAGE_SUBSYSTEM_UNKNOWN 0
#define IMAGE_SUBSYSTEM_NATIVE 1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2
#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3
#define IMAGE_SUBSYSTEM_OS2_GUI 4
#define IMAGE_SUBSYSTEM_OS2_CUI 5
#define IMAGE_SUBSYSTEM_POSIX_GUI 6
#define IMAGE_SUBSYSTEM_POSIX_CUI 7
#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9
// Directory Entries
#define IMAGE_DIRECTORY_ENTRY_EXPORT 0 // Export Directory
#define IMAGE_DIRECTORY_ENTRY_IMPORT 1 // Import Directory
#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2 // Resource Directory
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3 // Exception Directory
#define IMAGE_DIRECTORY_ENTRY_SECURITY 4 // Security Directory
#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5 // Base Relocation Table
#define IMAGE_DIRECTORY_ENTRY_DEBUG 6 // Debug Directory
#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7 // Description String
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 // Machine Value (MIPS GP)
#define IMAGE_DIRECTORY_ENTRY_TLS 9 // TLS Directory
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10 // Load Configuration Directory
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11 // Bound Import Directory in headers
#define IMAGE_DIRECTORY_ENTRY_IAT 12 // Import Address
//
// Section header format.
//
#define IMAGE_SIZEOF_FILE_HEADER 20
#define IMAGE_FILE_MACHINE_UNKNOWN 0
#define IMAGE_NT_SIGNATURE 0x00004550
#define IMAGE_NT_OPTIONAL_HDR_MAGIC 0x10b
#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224
#define IMAGE_SIZEOF_SECTION_HEADER 40
#define IMAGE_SIZEOF_AUX_SYMBOL 18
#define IMAGE_SIZEOF_RELOCATION 10
#define IMAGE_SIZEOF_BASE_RELOCATION 8
#define IMAGE_SIZEOF_LINENUMBER 6
#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
#define SIZEOF_RFPO_DATA 16
#define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((DWORD)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader))
#define IMAGE_SCN_TYPE_NO_PAD 8
#define IMAGE_SCN_CNT_CODE 32
#define IMAGE_SCN_CNT_INITIALIZED_DATA 64
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 128
#define IMAGE_SCN_LNK_OTHER 256
#define IMAGE_SCN_LNK_INFO 512
#define IMAGE_SCN_LNK_REMOVE 2048
#define IMAGE_SCN_LNK_COMDAT 4096
#define IMAGE_SCN_MEM_FARDATA 0x8000
#define IMAGE_SCN_MEM_PURGEABLE 0x20000
#define IMAGE_SCN_MEM_16BIT 0x20000
#define IMAGE_SCN_MEM_LOCKED 0x40000
#define IMAGE_SCN_MEM_PRELOAD 0x80000
#define IMAGE_SCN_ALIGN_1BYTES 0x100000
#define IMAGE_SCN_ALIGN_2BYTES 0x200000
#define IMAGE_SCN_ALIGN_4BYTES 0x300000
#define IMAGE_SCN_ALIGN_8BYTES 0x400000
#define IMAGE_SCN_ALIGN_16BYTES 0x500000
#define IMAGE_SCN_ALIGN_32BYTES 0x600000
#define IMAGE_SCN_ALIGN_64BYTES 0x700000
#define IMAGE_SCN_LNK_NRELOC_OVFL 0x1000000
#define IMAGE_SCN_MEM_DISCARDABLE 0x2000000
#define IMAGE_SCN_MEM_NOT_CACHED 0x4000000
#define IMAGE_SCN_MEM_NOT_PAGED 0x8000000
#define IMAGE_SCN_MEM_SHARED 0x10000000
#define IMAGE_SCN_MEM_EXECUTE 0x20000000
#define IMAGE_SCN_MEM_READ 0x40000000
#define IMAGE_SCN_MEM_WRITE 0x80000000
#define IMAGE_SYM_UNDEFINED 0
#define IMAGE_SYM_ABSOLUTE (-1)
#define IMAGE_SYM_DEBUG (-2)
#define IMAGE_SYM_TYPE_NULL 0
#define IMAGE_SYM_TYPE_VOID 1
#define IMAGE_SYM_TYPE_CHAR 2
#define IMAGE_SYM_TYPE_SHORT 3
#define IMAGE_SYM_TYPE_INT 4
#define IMAGE_SYM_TYPE_LONG 5
#define IMAGE_SYM_TYPE_FLOAT 6
#define IMAGE_SYM_TYPE_DOUBLE 7
#define IMAGE_SYM_TYPE_STRUCT 8
#define IMAGE_SYM_TYPE_UNION 9
#define IMAGE_SYM_TYPE_ENUM 10
#define IMAGE_SYM_TYPE_MOE 11
#define IMAGE_SYM_TYPE_BYTE 12
#define IMAGE_SYM_TYPE_WORD 13
#define IMAGE_SYM_TYPE_UINT 14
#define IMAGE_SYM_TYPE_DWORD 15
#define IMAGE_SYM_TYPE_PCODE 32768
#define IMAGE_SYM_DTYPE_NULL 0
#define IMAGE_SYM_DTYPE_POINTER 1
#define IMAGE_SYM_DTYPE_FUNCTION 2
#define IMAGE_SYM_DTYPE_ARRAY 3
#define IMAGE_SYM_CLASS_END_OF_FUNCTION (-1)
#define IMAGE_SYM_CLASS_NULL 0
#define IMAGE_SYM_CLASS_AUTOMATIC 1
#define IMAGE_SYM_CLASS_EXTERNAL 2
#define IMAGE_SYM_CLASS_STATIC 3
#define IMAGE_SYM_CLASS_REGISTER 4
#define IMAGE_SYM_CLASS_EXTERNAL_DEF 5
#define IMAGE_SYM_CLASS_LABEL 6
#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7
#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8
#define IMAGE_SYM_CLASS_ARGUMENT 9
#define IMAGE_SYM_CLASS_STRUCT_TAG 10
#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11
#define IMAGE_SYM_CLASS_UNION_TAG 12
#define IMAGE_SYM_CLASS_TYPE_DEFINITION 13
#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14
#define IMAGE_SYM_CLASS_ENUM_TAG 15
#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16
#define IMAGE_SYM_CLASS_REGISTER_PARAM 17
#define IMAGE_SYM_CLASS_BIT_FIELD 18
#define IMAGE_SYM_CLASS_FAR_EXTERNAL 68
#define IMAGE_SYM_CLASS_BLOCK 100
#define IMAGE_SYM_CLASS_FUNCTION 101
#define IMAGE_SYM_CLASS_END_OF_STRUCT 102
#define IMAGE_SYM_CLASS_FILE 103
#define IMAGE_SYM_CLASS_SECTION 104
#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105
#define IMAGE_COMDAT_SELECT_NODUPLICATES 1
#define IMAGE_COMDAT_SELECT_ANY 2
#define IMAGE_COMDAT_SELECT_SAME_SIZE 3
#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4
#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
#define IMAGE_COMDAT_SELECT_LARGEST 6
#define IMAGE_COMDAT_SELECT_NEWEST 7
#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
#define IMAGE_REL_I386_ABSOLUTE 0
#define IMAGE_REL_I386_DIR16 1
#define IMAGE_REL_I386_REL16 2
#define IMAGE_REL_I386_DIR32 6
#define IMAGE_REL_I386_DIR32NB 7
#define IMAGE_REL_I386_SEG12 9
#define IMAGE_REL_I386_SECTION 10
#define IMAGE_REL_I386_SECREL 11
#define IMAGE_REL_I386_REL32 20
#define IMAGE_REL_MIPS_ABSOLUTE 0
#define IMAGE_REL_MIPS_REFHALF 1
#define IMAGE_REL_MIPS_REFWORD 2
#define IMAGE_REL_MIPS_JMPADDR 3
#define IMAGE_REL_MIPS_REFHI 4
#define IMAGE_REL_MIPS_REFLO 5
#define IMAGE_REL_MIPS_GPREL 6
#define IMAGE_REL_MIPS_LITERAL 7
#define IMAGE_REL_MIPS_SECTION 10
#define IMAGE_REL_MIPS_SECREL 11
#define IMAGE_REL_MIPS_SECRELLO 12
#define IMAGE_REL_MIPS_SECRELHI 13
#define IMAGE_REL_MIPS_REFWORDNB 34
#define IMAGE_REL_MIPS_PAIR 35
#define IMAGE_REL_ALPHA_ABSOLUTE 0
#define IMAGE_REL_ALPHA_REFLONG 1
#define IMAGE_REL_ALPHA_REFQUAD 2
#define IMAGE_REL_ALPHA_GPREL32 3
#define IMAGE_REL_ALPHA_LITERAL 4
#define IMAGE_REL_ALPHA_LITUSE 5
#define IMAGE_REL_ALPHA_GPDISP 6
#define IMAGE_REL_ALPHA_BRADDR 7
#define IMAGE_REL_ALPHA_HINT 8
#define IMAGE_REL_ALPHA_INLINE_REFLONG 9
#define IMAGE_REL_ALPHA_REFHI 10
#define IMAGE_REL_ALPHA_REFLO 11
#define IMAGE_REL_ALPHA_PAIR 12
#define IMAGE_REL_ALPHA_MATCH 13
#define IMAGE_REL_ALPHA_SECTION 14
#define IMAGE_REL_ALPHA_SECREL 15
#define IMAGE_REL_ALPHA_REFLONGNB 16
#define IMAGE_REL_ALPHA_SECRELLO 17
#define IMAGE_REL_ALPHA_SECRELHI 18
#define IMAGE_REL_PPC_ABSOLUTE 0
#define IMAGE_REL_PPC_ADDR64 1
#define IMAGE_REL_PPC_ADDR32 2
#define IMAGE_REL_PPC_ADDR24 3
#define IMAGE_REL_PPC_ADDR16 4
#define IMAGE_REL_PPC_ADDR14 5
#define IMAGE_REL_PPC_REL24 6
#define IMAGE_REL_PPC_REL14 7
#define IMAGE_REL_PPC_TOCREL16 8
#define IMAGE_REL_PPC_TOCREL14 9
#define IMAGE_REL_PPC_ADDR32NB 10
#define IMAGE_REL_PPC_SECREL 11
#define IMAGE_REL_PPC_SECTION 12
#define IMAGE_REL_PPC_IFGLUE 13
#define IMAGE_REL_PPC_IMGLUE 14
#define IMAGE_REL_PPC_SECREL16 15
#define IMAGE_REL_PPC_REFHI 16
#define IMAGE_REL_PPC_REFLO 17
#define IMAGE_REL_PPC_PAIR 18
#define IMAGE_REL_PPC_TYPEMASK 255
#define IMAGE_REL_PPC_NEG 256
#define IMAGE_REL_PPC_BRTAKEN 512
#define IMAGE_REL_PPC_BRNTAKEN 1024
#define IMAGE_REL_PPC_TOCDEFN 2048
#define IMAGE_REL_BASED_ABSOLUTE 0
#define IMAGE_REL_BASED_HIGH 1
#define IMAGE_REL_BASED_LOW 2
#define IMAGE_REL_BASED_HIGHLOW 3
#define IMAGE_REL_BASED_HIGHADJ 4
#define IMAGE_REL_BASED_MIPS_JMPADDR 5
#define IMAGE_ARCHIVE_START_SIZE 8
#define IMAGE_ARCHIVE_START "!<arch>\n"
#define IMAGE_ARCHIVE_END "`\n"
#define IMAGE_ARCHIVE_PAD "\n"
#define IMAGE_ARCHIVE_LINKER_MEMBER "/ "
#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// "
#define IMAGE_ORDINAL_FLAG 0x80000000
#define IMAGE_SNAP_BY_ORDINAL(o) ((o&IMAGE_ORDINAL_FLAG)!=0)
#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000
#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000
#define IMAGE_DEBUG_TYPE_UNKNOWN 0
#define IMAGE_DEBUG_TYPE_COFF 1
#define IMAGE_DEBUG_TYPE_CODEVIEW 2
#define IMAGE_DEBUG_TYPE_FPO 3
#define IMAGE_DEBUG_TYPE_MISC 4
#define IMAGE_DEBUG_TYPE_EXCEPTION 5
#define IMAGE_DEBUG_TYPE_FIXUP 6
#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC 7
#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC 8
#define IMAGE_SIZEOF_SHORT_NAME 8
#define IMAGE_SIZEOF_SECTION_HEADER 40
#define IMAGE_SECTION_CODE (0x20)
#define IMAGE_SECTION_INITIALIZED_DATA (0x40)
#define IMAGE_SECTION_UNINITIALIZED_DATA (0x80)
//
// Import Format
//
#define IMAGE_ORDINAL_FLAG 0x80000000
#define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)
// Predefined resource types ... there may be some more, but I don't have
@ -738,35 +775,6 @@ typedef struct _IMAGE_SEPARATE_DEBUG_HEADER {
//
//
// Each directory contains the 32-bit Name of the entry and an offset,
// relative to the beginning of the resource directory of the data associated
// with this directory entry. If the name of the entry is an actual text
// string instead of an integer Id, then the high order bit of the name field
// is set to one and the low order 31-bits are an offset, relative to the
// beginning of the resource directory of the string, which is of type
// IMAGE_RESOURCE_DIRECTORY_STRING. Otherwise the high bit is clear and the
// low-order 16-bits are the integer Id that identify this resource directory
// entry. If the directory entry is yet another resource directory (i.e. a
// subdirectory), then the high order bit of the offset field will be
// set to indicate this. Otherwise the high bit is clear and the offset
// field points to a resource data entry.
//
typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
DWORD Name;
DWORD OffsetToData;
} IMAGE_RESOURCE_DIRECTORY_ENTRY, *PIMAGE_RESOURCE_DIRECTORY_ENTRY;
/*
typedef struct _IMAGE_RESOURCE_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
WORD NumberOfNamedEntries;
WORD NumberOfIdEntries;
IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[0];
} IMAGE_RESOURCE_DIRECTORY, *PIMAGE_RESOURCE_DIRECTORY;
*/
#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000
#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000

View file

@ -2251,7 +2251,7 @@ InitiateSystemShutdownW(
WINBOOL
STDCALL
AbortSystemShutdownW(
LPWSTR lpMachineName
LPCWSTR lpMachineName
);
LONG

View file

@ -1,193 +1,194 @@
/* $Id: shutdown.c,v 1.5 2002/09/08 10:22:36 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/advapi32/misc/shutdown.c
* PURPOSE: System shutdown functions
* PROGRAMMER: Emanuele Aliberti
* UPDATE HISTORY:
* 19990413 EA created
* 19990515 EA
*/
#include <windows.h>
#include <ddk/ntddk.h>
#define USZ {0,0,0}
/**********************************************************************
* AbortSystemShutdownW
*/
BOOL
STDCALL
AbortSystemShutdownW(
LPWSTR lpMachineName
)
{
NTSTATUS Status;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/**********************************************************************
* AbortSystemShutdownA
*/
BOOL
STDCALL
AbortSystemShutdownA(
LPSTR lpMachineName
)
{
ANSI_STRING MachineNameA;
UNICODE_STRING MachineNameW;
NTSTATUS Status;
BOOL rv;
RtlInitAnsiString(
& MachineNameA,
lpMachineName
);
Status = RtlAnsiStringToUnicodeString(
& MachineNameW,
& MachineNameA,
TRUE
);
if (STATUS_SUCCESS != Status)
{
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
rv = AbortSystemShutdownW(
MachineNameW.Buffer
);
RtlFreeAnsiString(
& MachineNameA
);
RtlFreeUnicodeString(
& MachineNameW
);
SetLastError(ERROR_SUCCESS);
return rv;
}
/**********************************************************************
* InitiateSystemShutdownW
*/
BOOL
STDCALL
InitiateSystemShutdownW(
LPWSTR lpMachineName,
LPWSTR lpMessage,
DWORD dwTimeout,
BOOL bForceAppsClosed,
BOOL bRebootAfterShutdown
)
{
SHUTDOWN_ACTION Action = ShutdownNoReboot;
NTSTATUS Status;
if (lpMachineName)
{
/* FIXME: remote machine shutdown not supported yet */
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
if (dwTimeout)
{
}
Status = NtShutdownSystem(Action);
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
/**********************************************************************
* InitiateSystemShutdownA
*/
BOOL
STDCALL
InitiateSystemShutdownA(
LPSTR lpMachineName,
LPSTR lpMessage,
DWORD dwTimeout,
BOOL bForceAppsClosed,
BOOL bRebootAfterShutdown
)
{
ANSI_STRING MachineNameA;
ANSI_STRING MessageA;
UNICODE_STRING MachineNameW;
UNICODE_STRING MessageW;
NTSTATUS Status;
INT LastError;
BOOL rv;
if (lpMachineName)
{
RtlInitAnsiString(
& MachineNameA,
lpMachineName
);
Status = RtlAnsiStringToUnicodeString(
& MachineNameW,
& MachineNameA,
TRUE
);
if (STATUS_SUCCESS != Status)
{
RtlFreeAnsiString(&MachineNameA);
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
}
if (lpMessage)
{
RtlInitAnsiString(
& MessageA,
lpMessage
);
Status = RtlAnsiStringToUnicodeString(
& MessageW,
& MessageA,
TRUE
);
if (STATUS_SUCCESS != Status)
{
if (MachineNameW.Length)
{
RtlFreeAnsiString(&MachineNameA);
RtlFreeUnicodeString(&MachineNameW);
}
RtlFreeAnsiString(&MessageA);
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
}
rv = InitiateSystemShutdownW(
MachineNameW.Buffer,
MessageW.Buffer,
dwTimeout,
bForceAppsClosed,
bRebootAfterShutdown
);
LastError = GetLastError();
if (lpMachineName)
{
RtlFreeAnsiString(&MachineNameA);
RtlFreeUnicodeString(&MachineNameW);
}
if (lpMessage)
{
RtlFreeAnsiString(&MessageA);
RtlFreeUnicodeString(&MessageW);
}
SetLastError(LastError);
return rv;
}
/* EOF */
/* $Id: shutdown.c,v 1.6 2002/11/14 18:21:03 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
* FILE: lib/advapi32/misc/shutdown.c
* PURPOSE: System shutdown functions
* PROGRAMMER: Emanuele Aliberti
* UPDATE HISTORY:
* 19990413 EA created
* 19990515 EA
*/
#include <windows.h>
#define NTOS_MODE_USER
#include <ntos.h>
#define USZ {0,0,0}
/**********************************************************************
* AbortSystemShutdownW
*/
WINBOOL
STDCALL
AbortSystemShutdownW(
LPCWSTR lpMachineName
)
{
NTSTATUS Status;
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
/**********************************************************************
* AbortSystemShutdownA
*/
BOOL
STDCALL
AbortSystemShutdownA(
LPCSTR lpMachineName
)
{
ANSI_STRING MachineNameA;
UNICODE_STRING MachineNameW;
NTSTATUS Status;
BOOL rv;
RtlInitAnsiString(
& MachineNameA,
lpMachineName
);
Status = RtlAnsiStringToUnicodeString(
& MachineNameW,
& MachineNameA,
TRUE
);
if (STATUS_SUCCESS != Status)
{
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
rv = AbortSystemShutdownW(
MachineNameW.Buffer
);
RtlFreeAnsiString(
& MachineNameA
);
RtlFreeUnicodeString(
& MachineNameW
);
SetLastError(ERROR_SUCCESS);
return rv;
}
/**********************************************************************
* InitiateSystemShutdownW
*/
BOOL
STDCALL
InitiateSystemShutdownW(
LPWSTR lpMachineName,
LPWSTR lpMessage,
DWORD dwTimeout,
BOOL bForceAppsClosed,
BOOL bRebootAfterShutdown
)
{
SHUTDOWN_ACTION Action = ShutdownNoReboot;
NTSTATUS Status;
if (lpMachineName)
{
/* FIXME: remote machine shutdown not supported yet */
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
}
if (dwTimeout)
{
}
Status = NtShutdownSystem(Action);
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
/**********************************************************************
* InitiateSystemShutdownA
*/
BOOL
STDCALL
InitiateSystemShutdownA(
LPSTR lpMachineName,
LPSTR lpMessage,
DWORD dwTimeout,
BOOL bForceAppsClosed,
BOOL bRebootAfterShutdown
)
{
ANSI_STRING MachineNameA;
ANSI_STRING MessageA;
UNICODE_STRING MachineNameW;
UNICODE_STRING MessageW;
NTSTATUS Status;
INT LastError;
BOOL rv;
if (lpMachineName)
{
RtlInitAnsiString(
& MachineNameA,
lpMachineName
);
Status = RtlAnsiStringToUnicodeString(
& MachineNameW,
& MachineNameA,
TRUE
);
if (STATUS_SUCCESS != Status)
{
RtlFreeAnsiString(&MachineNameA);
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
}
if (lpMessage)
{
RtlInitAnsiString(
& MessageA,
lpMessage
);
Status = RtlAnsiStringToUnicodeString(
& MessageW,
& MessageA,
TRUE
);
if (STATUS_SUCCESS != Status)
{
if (MachineNameW.Length)
{
RtlFreeAnsiString(&MachineNameA);
RtlFreeUnicodeString(&MachineNameW);
}
RtlFreeAnsiString(&MessageA);
SetLastError(RtlNtStatusToDosError(Status));
return FALSE;
}
}
rv = InitiateSystemShutdownW(
MachineNameW.Buffer,
MessageW.Buffer,
dwTimeout,
bForceAppsClosed,
bRebootAfterShutdown
);
LastError = GetLastError();
if (lpMachineName)
{
RtlFreeAnsiString(&MachineNameA);
RtlFreeUnicodeString(&MachineNameW);
}
if (lpMessage)
{
RtlFreeAnsiString(&MessageA);
RtlFreeUnicodeString(&MessageW);
}
SetLastError(LastError);
return rv;
}
/* EOF */

View file

@ -1,4 +1,4 @@
/* $Id: reg.c,v 1.19 2002/11/10 13:44:48 robd Exp $
/* $Id: reg.c,v 1.20 2002/11/14 18:21:04 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -9,6 +9,8 @@
* Created 01/11/98
* 19990309 EA Stubs
*/
#define NTOS_MODE_USER
#include <ntos.h>
#ifdef WIN32_REGDBG
#include "cm_win32.h"

View file

@ -1,4 +1,4 @@
/* $Id: ac.c,v 1.4 2002/09/08 10:22:37 chorns Exp $
/* $Id: ac.c,v 1.5 2002/11/14 18:21:04 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -6,8 +6,8 @@
* PURPOSE: ACL/ACE functions
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#define NTOS_MODE_USER
#include <ntos.h>
#include <windows.h>
@ -346,7 +346,7 @@ FindFirstFreeAce (
)
{
return RtlFirstFreeAce (pAcl,
(PACE*)pAce);
(PACE_HEADER*)pAce);
}
@ -362,7 +362,7 @@ GetAce (
Status = RtlGetAce (pAcl,
dwAceIndex,
(PACE*)pAce);
(PACE_HEADER*)pAce);
if (!NT_SUCCESS(Status))
{
SetLastError (RtlNtStatusToDosError (Status));

View file

@ -1,8 +1,8 @@
/*
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#define NTOS_MODE_USER
#include <ntos.h>
#include <windows.h>

View file

@ -8,8 +8,8 @@
* Created 01/11/98
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#define NTOS_MODE_USER
#include <ntos.h>
#include <windows.h>

View file

@ -1,4 +1,4 @@
/* $Id: sid.c,v 1.6 2002/09/08 10:22:37 chorns Exp $
/* $Id: sid.c,v 1.7 2002/11/14 18:21:04 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -6,8 +6,8 @@
* PURPOSE: Security ID functions
*/
#include <ddk/ntddk.h>
#include <ntdll/rtl.h>
#define NTOS_MODE_USER
#include <ntos.h>
#include <windows.h>

View file

@ -1,4 +1,4 @@
/* $Id: scm.c,v 1.12 2002/09/08 10:22:37 chorns Exp $
/* $Id: scm.c,v 1.13 2002/11/14 18:21:04 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -12,8 +12,10 @@
/* INCLUDES ******************************************************************/
#define NTOS_MODE_USER
#include <ntos.h>
#include <windows.h>
#include <ddk/ntddk.h>
#include <tchar.h>
/* FUNCTIONS *****************************************************************/
@ -245,7 +247,17 @@ EnumServicesStatusA (
*/
BOOL
STDCALL
EnumServicesStatusExA(VOID)
EnumServicesStatusExA(SC_HANDLE hSCManager,
SC_ENUM_TYPE InfoLevel,
DWORD dwServiceType,
DWORD dwServiceState,
LPBYTE lpServices,
DWORD cbBufSize,
LPDWORD pcbBytesNeeded,
LPDWORD lpServicesReturned,
LPDWORD lpResumeHandle,
LPCSTR pszGroupName
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
@ -257,7 +269,17 @@ EnumServicesStatusExA(VOID)
*/
BOOL
STDCALL
EnumServicesStatusExW(VOID)
EnumServicesStatusExW(SC_HANDLE hSCManager,
SC_ENUM_TYPE InfoLevel,
DWORD dwServiceType,
DWORD dwServiceState,
LPBYTE lpServices,
DWORD cbBufSize,
LPDWORD pcbBytesNeeded,
LPDWORD lpServicesReturned,
LPDWORD lpResumeHandle,
LPCWSTR pszGroupName
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;
@ -691,7 +713,12 @@ QueryServiceStatus(
*/
BOOL
STDCALL
QueryServiceStatusEx(VOID)
QueryServiceStatusEx(SC_HANDLE hService,
SC_STATUS_TYPE InfoLevel,
LPBYTE lpBuffer,
DWORD cbBufSize,
LPDWORD pcbBytesNeeded
)
{
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
return FALSE;

View file

@ -1,4 +1,4 @@
/* $Id: sctrl.c,v 1.7 2002/09/08 10:22:37 chorns Exp $
/* $Id: sctrl.c,v 1.8 2002/11/14 18:21:04 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -12,8 +12,9 @@
/* INCLUDES ******************************************************************/
#define NTOS_MODE_USER
#include <ntos.h>
#include <windows.h>
#include <ddk/ntddk.h>
#define NDEBUG
#include <debug.h>

View file

@ -8,8 +8,9 @@
* Created 01/11/98
*/
#define NTOS_MODE_USER
#include <ntos.h>
#include <windows.h>
#include <ddk/ntddk.h>
WINBOOL
STDCALL

View file

@ -1,4 +1,4 @@
/* $Id: dllmain.c,v 1.23 2002/09/08 10:22:43 chorns Exp $
/* $Id: dllmain.c,v 1.24 2002/11/14 18:21:05 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -11,10 +11,8 @@
/* INCLUDES ******************************************************************/
#include <ddk/ntddk.h>
#include <ntdll/csr.h>
#include <ntdll/ldr.h>
#include <windows.h>
#define NTOS_MODE_USER
#include <ntos.h>
#include <wchar.h>
#define NDEBUG

View file

@ -1,4 +1,4 @@
/* $Id: ppb.c,v 1.16 2002/10/20 11:56:00 chorns Exp $
/* $Id: ppb.c,v 1.17 2002/11/14 18:21:05 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
@ -97,10 +97,10 @@ RtlCreateProcessParameters(PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
if (Environment == NULL)
Environment = NtCurrentPeb()->ProcessParameters->Environment;
if (CurrentDirectory == NULL)
CurrentDirectory = &NtCurrentPeb()->ProcessParameters->CurrentDirectoryName;
CurrentDirectoryHandle = NtCurrentPeb()->ProcessParameters->CurrentDirectoryHandle;
ConsoleHandle = NtCurrentPeb()->ProcessParameters->hConsole;
ConsoleFlags = NtCurrentPeb()->ProcessParameters->ProcessGroup;
CurrentDirectory = &NtCurrentPeb()->ProcessParameters->CurrentDirectoryName;
CurrentDirectoryHandle = NtCurrentPeb()->ProcessParameters->CurrentDirectoryHandle;
ConsoleHandle = NtCurrentPeb()->ProcessParameters->hConsole;
ConsoleFlags = NtCurrentPeb()->ProcessParameters->ProcessGroup;
}
else
{
@ -156,33 +156,33 @@ RtlCreateProcessParameters(PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
DPRINT ("Process parameters allocated\n");
Param->AllocationSize = RegionSize;
Param->Size = Length;
Param->AllocationSize = RegionSize;
Param->Size = Length;
Param->Flags = PPF_NORMALIZED;
Param->Environment = Environment;
Param->CurrentDirectoryHandle = CurrentDirectoryHandle;
Param->hConsole = ConsoleHandle;
Param->ProcessGroup = ConsoleFlags;
Param->CurrentDirectoryHandle = CurrentDirectoryHandle;
Param->hConsole = ConsoleHandle;
Param->ProcessGroup = ConsoleFlags;
Dest = (PWCHAR)(((PBYTE)Param) + sizeof(RTL_USER_PROCESS_PARAMETERS));
/* copy current directory */
RtlpCopyParameterString(&Dest,
&Param->CurrentDirectoryName,
&Param->CurrentDirectoryName,
CurrentDirectory,
MAX_PATH * sizeof(WCHAR));
/* make sure the current directory has a trailing backslash */
if (Param->CurrentDirectoryName.Length > 0)
if (Param->CurrentDirectoryName.Length > 0)
{
ULONG Length;
Length = Param->CurrentDirectoryName.Length / sizeof(WCHAR);
if (Param->CurrentDirectoryName.Buffer[Length-1] != L'\\')
Length = Param->CurrentDirectoryName.Length / sizeof(WCHAR);
if (Param->CurrentDirectoryName.Buffer[Length-1] != L'\\')
{
Param->CurrentDirectoryName.Buffer[Length] = L'\\';
Param->CurrentDirectoryName.Buffer[Length + 1] = 0;
Param->CurrentDirectoryName.Length += sizeof(WCHAR);
Param->CurrentDirectoryName.Buffer[Length] = L'\\';
Param->CurrentDirectoryName.Buffer[Length + 1] = 0;
Param->CurrentDirectoryName.Length += sizeof(WCHAR);
}
}
@ -235,12 +235,12 @@ RtlCreateProcessParameters(PRTL_USER_PROCESS_PARAMETERS *ProcessParameters,
return STATUS_SUCCESS;
}
VOID STDCALL
NTSTATUS STDCALL
RtlDestroyProcessParameters(PRTL_USER_PROCESS_PARAMETERS ProcessParameters)
{
ULONG RegionSize = 0;
NtFreeVirtualMemory (NtCurrentProcess (),
return NtFreeVirtualMemory (NtCurrentProcess (),
(PVOID)ProcessParameters,
&RegionSize,
MEM_RELEASE);
@ -254,7 +254,7 @@ RtlDeNormalizeProcessParams(PRTL_USER_PROCESS_PARAMETERS Params)
{
if (Params && (Params->Flags & PPF_NORMALIZED))
{
DENORMALIZE(Params->CurrentDirectoryName.Buffer, Params);
DENORMALIZE(Params->CurrentDirectoryName.Buffer, Params);
DENORMALIZE(Params->DllPath.Buffer, Params);
DENORMALIZE(Params->ImagePathName.Buffer, Params);
DENORMALIZE(Params->CommandLine.Buffer, Params);
@ -277,7 +277,7 @@ RtlNormalizeProcessParams(PRTL_USER_PROCESS_PARAMETERS Params)
{
if (Params && !(Params->Flags & PPF_NORMALIZED))
{
NORMALIZE(Params->CurrentDirectoryName.Buffer, Params);
NORMALIZE(Params->CurrentDirectoryName.Buffer, Params);
NORMALIZE(Params->DllPath.Buffer, Params);
NORMALIZE(Params->ImagePathName.Buffer, Params);
NORMALIZE(Params->CommandLine.Buffer, Params);

View file

@ -257,11 +257,11 @@ DbgGetErrorText(NTSTATUS ErrorCode, PUNICODE_STRING ErrorText, ULONG Flags)
{
if (Flags & DBG_GET_SHOW_FACILITY)
{
sprintf(NumBuf, "%08lx", ErrorCode);
sprintf(NumBuf, "%08x", ErrorCode);
strcat(TempBuf, NumBuf);
strcat(TempBuf, " ");
}
sprintf(NumBuf, "Unknown Message #%08lx", ErrorCode);
sprintf(NumBuf, "Unknown Message #%08x", ErrorCode);
strcat(TempBuf, NumBuf);
}
RtlInitAnsiString(&AnsiString, TempBuf);

View file

@ -8,8 +8,7 @@
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <napi/lpc.h>
#include <ntos.h>
#include <internal/debug.h>
/* GLOBALS ******************************************************************/

View file

@ -19,6 +19,10 @@
#ifndef __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H
#define __NTOSKRNL_INCLUDE_INTERNAL_I386_KE_H
#if __GNUC__ >=3
#pragma GCC system_header
#endif
#define KTRAP_FRAME_DEBUGEBP (0x0)
#define KTRAP_FRAME_DEBUGEIP (0x4)
#define KTRAP_FRAME_DEBUGARGMARK (0x8)

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: arcname.c,v 1.9 2002/09/08 10:23:24 chorns Exp $
/* $Id: arcname.c,v 1.10 2002/11/14 18:21:07 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -296,7 +296,7 @@ IoCreateSystemRootLink(PCHAR ParameterLine)
return(Status);
}
sprintf(p, "cdrom(%lu)", DeviceNumber);
sprintf(p, "cdrom(%u)", DeviceNumber);
DPRINT("New ARC name: %s\n", ParamBuffer);
@ -313,7 +313,7 @@ IoCreateSystemRootLink(PCHAR ParameterLine)
q++;
strcpy(temp, q);
sprintf(p, "cdrom(%lu)", DeviceNumber);
sprintf(p, "cdrom(%u)", DeviceNumber);
strcat(p, temp);
}
}

View file

@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $Id: main.c,v 1.141 2002/11/13 06:01:12 robd Exp $
/* $Id: main.c,v 1.142 2002/11/14 18:21:07 chorns Exp $
*
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/ke/main.c
@ -399,14 +399,14 @@ ExpInitializeExecutive(VOID)
if (KeNumberProcessors > 1)
{
sprintf(str,
"Found %d system processors. [%lu MB Memory]\n",
"Found %d system processors. [%u MB Memory]\n",
KeNumberProcessors,
(KeLoaderBlock.MemHigher + 1088)/ 1024);
}
else
{
sprintf(str,
"Found 1 system processor. [%lu MB Memory]\n",
"Found 1 system processor. [%u MB Memory]\n",
(KeLoaderBlock.MemHigher + 1088)/ 1024);
}
HalDisplayString(str);
@ -695,7 +695,7 @@ _main (ULONG MultiBootMagic, PLOADER_PARAMETER_BLOCK _LoaderBlock)
}
}
sprintf(KeLoaderCommandLine,
"multi(0)disk(0)rdisk(%ld)partition(%ld)%s %s",
"multi(0)disk(0)rdisk(%d)partition(%d)%s %s",
DiskNumber, PartNumber + 1, Temp, options);
p = KeLoaderCommandLine;

View file

@ -1,4 +1,4 @@
/* $Id: exception.c,v 1.3 2002/11/10 18:17:42 chorns Exp $
/* $Id: exception.c,v 1.4 2002/11/14 18:21:07 chorns Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@ -9,7 +9,7 @@
/* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <ntos.h>
#include <internal/ke.h>
#include <internal/ps.h>
@ -58,8 +58,8 @@ __ret_label:
/* Implemented in except.s */
VOID
RtlpCaptureContext(PCONTEXT pContext);
VOID
RtlpCaptureContext(PCONTEXT pContext);
/* Macros that will help streamline the SEH implementations for
kernel mode and user mode */