mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
214 lines
4.9 KiB
214 lines
4.9 KiB
/*** BASEDEF.H
|
|
*
|
|
* Basic constants and types for the VMM and VxDs
|
|
* Copyright (c) 1988,1989 Microsoft Corporation
|
|
*
|
|
* NOBASEDEFS turns off the base definations
|
|
*/
|
|
|
|
#ifndef NOBASEDEFS
|
|
#define NOBASEDEFS
|
|
|
|
/*
|
|
* No warnings generated on non-standard usuage such as double
|
|
* slash for comments
|
|
*/
|
|
#pragma warning (disable:4206)
|
|
#pragma warning (disable:4214)
|
|
#pragma warning (disable:4201)
|
|
#pragma warning (disable:4505)
|
|
#pragma warning (disable:4514)
|
|
#pragma warning (disable:4001)
|
|
|
|
#ifndef FALSE
|
|
#define FALSE 0
|
|
#endif
|
|
#ifndef TRUE
|
|
#define TRUE 1
|
|
#endif
|
|
#ifndef NULL
|
|
#define NULL '\0' // Null pointer
|
|
#endif
|
|
|
|
#define CDECL _cdecl
|
|
#define PASCAL _pascal
|
|
#define VOID void
|
|
#define CONST const
|
|
#define VOLATILE volatile
|
|
|
|
typedef int INT; // i
|
|
typedef unsigned int UINT; // u
|
|
typedef int BOOL; // f
|
|
|
|
typedef unsigned char BYTE; // b
|
|
typedef unsigned short WORD; // w
|
|
typedef unsigned long DWORD; // dw
|
|
|
|
#ifndef _H2INC
|
|
|
|
typedef struct qword_s { /* qword */
|
|
DWORD qword_lo;
|
|
DWORD qword_hi;
|
|
} QWORD; // qw
|
|
|
|
#endif
|
|
|
|
#ifndef _NTDEF_
|
|
|
|
typedef char CHAR; // ch
|
|
typedef unsigned char UCHAR; // uch
|
|
typedef short SHORT; // s
|
|
typedef unsigned short USHORT; // us
|
|
typedef long LONG; // l
|
|
typedef unsigned long ULONG; // ul
|
|
|
|
typedef UCHAR *PSZ; // psz
|
|
typedef VOID *PVOID; // p
|
|
typedef PVOID *PPVOID; // pp
|
|
|
|
/*XLATOFF*/
|
|
|
|
#if (_MSC_VER >= 900)
|
|
|
|
#if (!defined(MIDL_PASS) || defined(__midl))
|
|
typedef __int64 LONGLONG;
|
|
typedef unsigned __int64 ULONGLONG;
|
|
|
|
#define MAXLONGLONG (0x7fffffffffffffff)
|
|
#else
|
|
typedef double LONGLONG;
|
|
typedef double ULONGLONG;
|
|
#endif
|
|
|
|
typedef LONGLONG *PLONGLONG;
|
|
typedef ULONGLONG *PULONGLONG;
|
|
|
|
// Update Sequence Number
|
|
|
|
typedef LONGLONG USN;
|
|
|
|
#if defined(MIDL_PASS)
|
|
struct _LARGE_INTEGER {
|
|
#else // MIDL_PASS
|
|
union _LARGE_INTEGER {
|
|
struct _LARGE_INTERGER1 {
|
|
ULONG LowPart;
|
|
LONG HighPart;
|
|
};
|
|
struct _LARGE_INTERGER2 {
|
|
ULONG LowPart;
|
|
LONG HighPart;
|
|
} u;
|
|
#endif //MIDL_PASS
|
|
LONGLONG QuadPart;
|
|
};
|
|
|
|
#if defined(MIDL_PASS)
|
|
typedef struct _LARGE_INTEGER LARGE_INTEGER;
|
|
#else
|
|
typedef union _LARGE_INTEGER LARGE_INTEGER;
|
|
#endif
|
|
|
|
typedef LARGE_INTEGER *PLARGE_INTEGER;
|
|
|
|
#if defined(MIDL_PASS)
|
|
struct _ULARGE_INTEGER {
|
|
#else // MIDL_PASS
|
|
union _ULARGE_INTEGER {
|
|
struct _LARGE_INTERGER3 {
|
|
ULONG LowPart;
|
|
ULONG HighPart;
|
|
};
|
|
struct _LARGE_INTERGER4 {
|
|
ULONG LowPart;
|
|
ULONG HighPart;
|
|
} u;
|
|
#endif //MIDL_PASS
|
|
ULONGLONG QuadPart;
|
|
};
|
|
|
|
#if defined(MIDL_PASS)
|
|
typedef struct _ULARGE_INTEGER ULARGE_INTEGER;
|
|
#else
|
|
typedef union _ULARGE_INTEGER ULARGE_INTEGER;
|
|
#endif
|
|
|
|
typedef ULARGE_INTEGER *PULARGE_INTEGER;
|
|
|
|
#else // of MSC_VER > 900
|
|
|
|
#ifndef _H2INC
|
|
|
|
typedef struct _LARGE_INTEGER {
|
|
ULONG LowPart;
|
|
LONG HighPart;
|
|
} LARGE_INTEGER, *PLARGE_INTEGER;
|
|
|
|
typedef struct _ULARGE_INTEGER {
|
|
ULONG LowPart;
|
|
ULONG HighPart;
|
|
} ULARGE_INTEGER;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
/*XLATON*/
|
|
|
|
#else
|
|
|
|
typedef PVOID *PPVOID; // pp
|
|
|
|
#endif
|
|
|
|
typedef INT *PINT; // pi
|
|
typedef UINT *PUINT; // pu
|
|
typedef BYTE *PBYTE; // pb
|
|
typedef WORD *PWORD; // pw
|
|
typedef DWORD *PDWORD; // pdw
|
|
typedef CHAR *PCHAR; // pch
|
|
typedef SHORT *PSHORT; // ps
|
|
typedef LONG *PLONG; // pl
|
|
typedef UCHAR *PUCHAR; // puch
|
|
typedef USHORT *PUSHORT; // pus
|
|
typedef ULONG *PULONG; // pul
|
|
typedef BOOL *PBOOL; // pf
|
|
|
|
typedef UCHAR SZ[]; // sz
|
|
typedef UCHAR SZZ[]; // szz
|
|
typedef UCHAR *PSZZ; // pszz
|
|
|
|
typedef USHORT SEL; // sel
|
|
typedef SEL *PSEL; // psel
|
|
|
|
typedef ULONG PPHYS; // pphys
|
|
|
|
typedef (*PFN)(); // pfn
|
|
typedef PFN *PPFN; // ppfn
|
|
|
|
typedef PVOID HANDLE; // h
|
|
typedef HANDLE *PHANDLE; // ph
|
|
|
|
typedef ULONG HTIMEOUT; // timeout handle
|
|
typedef ULONG CMS; // count of milliseconds
|
|
|
|
#ifndef NOMINMAX
|
|
|
|
#ifndef max
|
|
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#ifndef min
|
|
#define min(a,b) (((a) < (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#endif // NOMINMAX
|
|
|
|
#define MAKEWORD(a, b) ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b))) << 8))
|
|
#define MAKELONG(a, b) ((LONG)(((WORD)(a)) | ((DWORD)((WORD)(b))) << 16))
|
|
#define LOWORD(l) ((WORD)(l))
|
|
#define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
|
|
#define LOBYTE(w) ((BYTE)(w))
|
|
#define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))
|
|
|
|
#endif // NOBASEDEFS
|