#ifndef __INCLUDE_TYPES_H
#define __INCLUDE_TYPES_H
+#define EXPORTED __declspec(dllexport)
+#define IMPORTED __declspec(dllimport)
+
#include <basetsd.h>
#ifdef __GNUC__
#ifndef __USE_W32API
#ifdef i386
+#ifdef __GNUC__
#define STDCALL __attribute__ ((stdcall))
#define CDECL __attribute__ ((cdecl))
+#else
+#define STDCALL __stdcall
+#define CDECL __cdecl
+#endif
#define CALLBACK WINAPI
#define PASCAL WINAPI
#else
#endif /* wchar_t not already defined */
-//#ifndef __cplusplus
-//#ifndef _WCHAR_T_DEFINED
-//#define _WCHAR_T_DEFINED
-//typedef unsigned short wchar_t;
-//#endif
-//#endif
+/* #ifndef __cplusplus
+#ifndef _WCHAR_T_DEFINED
+#define _WCHAR_T_DEFINED
+typedef unsigned short wchar_t;
+#endif
+#endif
+*/
typedef unsigned char UCHAR;
typedef unsigned short USHORT;
typedef wchar_t *PWCH;
typedef unsigned short *PWORD;
-#include <msvcrt/crttypes.h> // for definition of LONGLONG, PLONGLONG etc
+#include <msvcrt/crttypes.h> /* for definition of LONGLONG, PLONGLONG etc */
typedef const void *LPCVOID;
typedef BYTE *LPBYTE, *PBYTE;
ULONGLONG QuadPart;
} ULARGE_INTEGER, *PULARGE_INTEGER;
+
+/*
+ * Moved here by AG
+ * typedef ULARGE_INTEGER TIME, *PTIME;
+ */
+
typedef struct _FILETIME
{
DWORD dwLowDateTime;
struct _SINGLE_LIST_ENTRY *Next;
} SINGLE_LIST_ENTRY, *PSINGLE_LIST_ENTRY;
+#define SLIST_ENTRY SINGLE_LIST_ENTRY
+#define PSLIST_ENTRY PSINGLE_LIST_ENTRY
+
typedef struct _UNICODE_STRING
{
USHORT Length;
PWSTR Buffer;
} UNICODE_STRING, *PUNICODE_STRING;
+typedef const UNICODE_STRING* PCUNICODE_STRING;
+
+#define UNICODE_NULL ((WCHAR)0)
+
typedef struct _FLOATING_SAVE_AREA
{
DWORD ControlWord;
DWORD ve_type;
} WVALENT, *PWVALENT;
-//#include "except.h"
+/* #include "except.h" */
#ifndef __USE_W32API
#endif /* __USE_W32API */
+typedef struct _ADDRESS_RANGE
+{
+ ULONG BaseAddrLow;
+ ULONG BaseAddrHigh;
+ ULONG LengthLow;
+ ULONG LengthHigh;
+ ULONG Type;
+} ADDRESS_RANGE, *PADDRESS_RANGE;
+
+#define MB_FLAGS_MEM_INFO (0x1)
+#define MB_FLAGS_BOOT_DEVICE (0x2)
+#define MB_FLAGS_COMMAND_LINE (0x4)
+#define MB_FLAGS_MODULE_INFO (0x8)
+#define MB_FLAGS_AOUT_SYMS (0x10)
+#define MB_FLAGS_ELF_SYMS (0x20)
+#define MB_FLAGS_MMAP_INFO (0x40)
+#define MB_FLAGS_DRIVES_INFO (0x80)
+#define MB_FLAGS_CONFIG_TABLE (0x100)
+#define MB_FLAGS_BOOT_LOADER_NAME (0x200)
+#define MB_FLAGS_APM_TABLE (0x400)
+#define MB_FLAGS_GRAPHICS_TABLE (0x800)
+
+typedef struct _LOADER_MODULE
+{
+ ULONG ModStart;
+ ULONG ModEnd;
+ ULONG String;
+ ULONG Reserved;
+} LOADER_MODULE, *PLOADER_MODULE;
+
+typedef struct _LOADER_PARAMETER_BLOCK
+{
+ ULONG Flags;
+ ULONG MemLower;
+ ULONG MemHigher;
+ ULONG BootDevice;
+ ULONG CommandLine;
+ ULONG ModsCount;
+ ULONG ModsAddr;
+ UCHAR Syms[12];
+ ULONG MmapLength;
+ ULONG MmapAddr;
+ ULONG DrivesCount;
+ ULONG DrivesAddr;
+ ULONG ConfigTable;
+ ULONG BootLoaderName;
+} LOADER_PARAMETER_BLOCK, *PLOADER_PARAMETER_BLOCK;
+
+typedef enum _KAPC_ENVIRONMENT
+{
+ OriginalApcEnvironment,
+ AttachedApcEnvironment,
+ CurrentApcEnvironment
+} KAPC_ENVIRONMENT;
+
+/* FIXME: Are these official values ?? */
+#define STATUS_FS_QUERY_REQUIRED ((NTSTATUS)0xC1000001)
+#define STATUS_HANDLE_NOT_WAITABLE ((NTSTATUS)0xC1000002)
+#define STATUS_OBJECT_FILE_MISMATCH ((NTSTATUS)0xC1000003)
+#define STATUS_INVALID_PARAMETER_MAX ((NTSTATUS)0xC1000004)
+#define STATUS_CONFLICTING_ADDRESS ((NTSTATUS)0xC1000005)
+#define STATUS_NO_MEDIA_IN_DRIVE ((NTSTATUS)0xC1000006)
+
+#define NTSTAT_SEVERITY_SHIFT 30
+#define NTSTAT_SEVERITY_MASK 0x00000003
+#define NTSTAT_FACILITY_SHIFT 16
+#define NTSTAT_FACILITY_MASK 0x00000FFF
+#define NTSTAT_CUSTOMER_MASK 0x20000000
+
+#define NT_SEVERITY(StatCode) (((StatCode) >> NTSTAT_SEVERITY_SHIFT) & NTSTAT_SEVERITY_MASK)
+#define NT_FACILITY(StatCode) (((StatCode) >> NTSTAT_FACILITY_SHIFT) & NTSTAT_FACILITY_MASK)
+#define NT_CUSTOMER(StatCode) ((StatCode) & NTSTAT_CUSTOMER_MASK)
+
#endif /* __INCLUDE_TYPES_H */