module win32.winnt;
// Translated from Microsoft Platform SDK August 2001 Edition
// by Y.Tomino (demoonlit@inter7.jp)
import win32.windef;
alias void _TEB;
alias void _EXCEPTION_REGISTRATION_RECORD;
private extern(C) {
int memcmp(void*, void*, uint);
void* memmove(void*, void*, uint);
void* memcpy(void*, void*, uint);
void* memset(void*, uint, uint);
}
// #ifndef _WINNT_
// #define _WINNT_
// #ifdef __cplusplus
// extern "C" {
// #endif
// #include <ctype.h>
enum : uint { ANYSIZE_ARRAY = 1 }
// #if defined(_M_MRX000) && !(defined(MIDL_PASS) || defined(RC_INVOKED)) && defined(ENABLE_RESTRICTED)
// #...
// #else
// #define RESTRICTED_POINTER
// #endif
// #if defined(_M_MRX000) || defined(_M_ALPHA) || defined(_M_PPC) || defined(_M_IA64) || defined(_M_AMD64)
// #...
// #if defined(_WIN64)
// #...
// #else
// #...
// #endif
// #else
// #define UNALIGNED
// #define UNALIGNED64
// #endif
// #if defined(_WIN64) || defined(_M_ALPHA)
// #...
// #...
// #else
const uint MAX_NATURAL_ALIGNMENT = DWORD.sizeof;
enum : uint { MEMORY_ALLOCATION_ALIGNMENT = 8 }
// #endif
// #ifdef __cplusplus
// #if _MSC_VER >= 1300
// #define TYPE_ALIGNMENT( t ) __alignof(t)
// #endif
// #else
// #...
// ...
// #endif
// #if defined(_WIN64)
// #...
// ...
// #...
// #else
// #define PROBE_ALIGNMENT( _s ) TYPE_ALIGNMENT( DWORD )
// #endif
// #define C_ASSERT(e) typedef char __C_ASSERT__[(e)?1:-1]
// #if !defined(_MAC) && (defined(_M_MRX000) || defined(_M_AMD64) || defined(_M_IA64)) && (_MSC_VER >= 1100) && !(defined(MIDL_PASS) || defined(RC_INVOKED))
// #...
// ...
// #if defined(_WIN64)
// #...
// #else
// #...
// #endif
// #else
// #if defined(_MAC) && defined(_MAC_INT_64)
// #...
// ...
// #else
// #define POINTER_64
alias uint POINTER_64_INT;
// #endif
alias void* POINTER_32;
// #endif
// #if defined(_IA64_) || defined(_AMD64_)
// #...
// #else
alias POINTER_32 FIRMWARE_PTR;
// #endif
// #include <basetsd.h>
// #if (defined(_M_IX86) || defined(_M_IA64) || defined(_M_AMD64)) && !defined(MIDL_PASS)
// #define DECLSPEC_IMPORT __declspec(dllimport)
// #else
// #...
// #endif
// #ifndef DECLSPEC_NORETURN
// #if (_MSC_VER >= 1200) && !defined(MIDL_PASS)
// #define DECLSPEC_NORETURN __declspec(noreturn)
// #else
// #...
// #endif
// #endif
// #ifndef DECLSPEC_ALIGN
// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS)
// #define DECLSPEC_ALIGN(x) __declspec(align(x))
// #else
// #...
// #endif
// #endif
// #ifndef DECLSPEC_CACHEALIGN
// #define DECLSPEC_CACHEALIGN DECLSPEC_ALIGN(128)
// #endif
// #ifndef DECLSPEC_UUID
// #if (_MSC_VER >= 1100) && defined (__cplusplus)
// #define DECLSPEC_UUID(x) __declspec(uuid(x))
// #else
// #...
// #endif
// #endif
// #ifndef DECLSPEC_NOVTABLE
// #if (_MSC_VER >= 1100) && defined(__cplusplus)
// #define DECLSPEC_NOVTABLE __declspec(novtable)
// #else
// #...
// #endif
// #endif
// #ifndef DECLSPEC_SELECTANY
// #if (_MSC_VER >= 1100)
// #define DECLSPEC_SELECTANY __declspec(selectany)
// #else
// #...
// #endif
// #endif
// #ifndef NOP_FUNCTION
// #if (_MSC_VER >= 1210)
// #...
// #else
// #...
// #endif
// #endif
// #ifndef DECLSPEC_ADDRSAFE
// #if (_MSC_VER >= 1200) && (defined(_M_ALPHA) || defined(_M_AXP64))
// #...
// #else
// #define DECLSPEC_ADDRSAFE
// #endif
// #endif
// #ifndef FORCEINLINE
// #if (_MSC_VER >= 1200)
// #define FORCEINLINE __forceinline
// #else
// #...
// #endif
// #endif
// #ifndef DECLSPEC_DEPRECATED
// #if (_MSC_VER >= 1300) && !defined(MIDL_PASS)
// #define DECLSPEC_DEPRECATED __declspec(deprecated)
// #define DEPRECATE_SUPPORTED
// #else
// #...
// #...
// #endif
// #endif
alias void* PVOID;
deprecated alias void* PVOID64; /* warning: 64-bit */
// #if ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) && !defined(_M_AMD64)
// #define NTAPI __stdcall
// #else
// #...
// #...
// #endif
// #if !defined(_NTSYSTEM_)
// #define NTSYSAPI DECLSPEC_IMPORT
// #define NTSYSCALLAPI DECLSPEC_IMPORT
// #else
// #...
// #if defined(_NTDLLBUILD_)
// #...
// #else
// #...
// #endif
// #endif
// #ifndef VOID
alias void VOID;
alias char CHAR;
alias short SHORT;
alias int LONG;
// #endif
// #ifndef _MAC
alias wchar WCHAR;
// #else
// ...
// #endif
alias WCHAR* PWCHAR;
alias WCHAR* LPWCH;
alias WCHAR* PWCH;
alias WCHAR* LPCWCH;
alias WCHAR* PCWCH;
alias WCHAR* NWPSTR;
alias WCHAR* LPWSTR;
alias WCHAR* PWSTR;
alias WCHAR* LPUWSTR;
alias WCHAR* PUWSTR;
alias WCHAR* LPCWSTR;
alias WCHAR* PCWSTR;
alias WCHAR* LPCUWSTR;
alias WCHAR* PCUWSTR;
alias CHAR* PCHAR;
alias CHAR* LPCH;
alias CHAR* PCH;
alias CHAR* LPCCH;
alias CHAR* PCCH;
alias CHAR* NPSTR;
alias CHAR* LPSTR;
alias CHAR* PSTR;
alias CHAR* LPCSTR;
alias CHAR* PCSTR;
// #ifdef UNICODE // r_winnt
// #ifndef _TCHAR_DEFINED
alias WCHAR TCHAR;
alias WCHAR* PTCHAR;
alias WCHAR TBYTE;
alias WCHAR* PTBYTE;
// #define _TCHAR_DEFINED
// #endif /* !_TCHAR_DEFINED */
alias LPWSTR LPTCH;
alias LPWSTR PTCH;
alias LPWSTR PTSTR;
alias LPWSTR LPTSTR;
alias LPCWSTR PCTSTR;
alias LPCWSTR LPCTSTR;
alias LPUWSTR PUTSTR;
alias LPUWSTR LPUTSTR;
alias LPCUWSTR PCUTSTR;
alias LPCUWSTR LPCUTSTR;
alias LPWSTR LP;
// #define __TEXT(quote) L##quote
// #else /* UNICODE */ // r_winnt
// #ifndef _TCHAR_DEFINED
// ...
// #...
// #endif /* !_TCHAR_DEFINED */
// ...
// #...
// #endif /* UNICODE */ // r_winnt
TCHAR[] TEXT(TCHAR[] quote){ return quote; }
alias SHORT* PSHORT;
alias LONG* PLONG;
// #ifdef STRICT
alias void* HANDLE;
// #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
// #else
// ...
// #...
// #endif
alias HANDLE* PHANDLE;
alias BYTE FCHAR;
alias WORD FSHORT;
alias DWORD FLONG;
// #ifndef _HRESULT_DEFINED
// #define _HRESULT_DEFINED
alias LONG HRESULT;
// #endif // !_HRESULT_DEFINED
// #ifdef __cplusplus
// #define EXTERN_C extern "C"
// #else
// #...
// #endif
// #if defined(_WIN32) || defined(_MPPC_)
// #ifdef _68K_
// #...
// #else
// #define STDMETHODCALLTYPE __stdcall
// #endif
// #define STDMETHODVCALLTYPE __cdecl
// #define STDAPICALLTYPE __stdcall
// #define STDAPIVCALLTYPE __cdecl
// #else
// #...
// #...
// #...
// #...
// #endif
// #define STDAPI EXTERN_C HRESULT STDAPICALLTYPE
// #define STDAPI_(type) EXTERN_C type STDAPICALLTYPE
// #define STDMETHODIMP HRESULT STDMETHODCALLTYPE
// #define STDMETHODIMP_(type) type STDMETHODCALLTYPE
// #define STDAPIV EXTERN_C HRESULT STDAPIVCALLTYPE
// #define STDAPIV_(type) EXTERN_C type STDAPIVCALLTYPE
// #define STDMETHODIMPV HRESULT STDMETHODVCALLTYPE
// #define STDMETHODIMPV_(type) type STDMETHODVCALLTYPE
alias char CCHAR;
alias DWORD LCID;
alias PDWORD PLCID;
alias WORD LANGID;
enum : uint { APPLICATION_ERROR_MASK = 0x20000000 }
enum : uint { ERROR_SEVERITY_SUCCESS = 0x00000000 }
enum : uint { ERROR_SEVERITY_INFORMATIONAL = 0x40000000 }
enum : uint { ERROR_SEVERITY_WARNING = 0x80000000 }
enum : uint { ERROR_SEVERITY_ERROR = 0xC0000000 }
// #if defined(_M_IA64) && !defined(MIDL_PASS)
// ...
// #endif
struct _FLOAT128 {
__int64 LowPart;
__int64 HighPart;
}
alias _FLOAT128 FLOAT128;
alias FLOAT128* PFLOAT128;
// #define _ULONGLONG_
// #if (!defined (_MAC) && (!defined(MIDL_PASS) || defined(__midl)) && (!defined(_M_IX86) || (defined(_INTEGRAL_MAX_BITS) && _INTEGRAL_MAX_BITS >= 64)))
// ...
// #...
// #else
// #if defined(_MAC) && defined(_MAC_INT_64)
// ...
// #...
// #else
alias double LONGLONG;
alias double ULONGLONG;
// #endif //_MAC and int64
// #endif
alias LONGLONG* PLONGLONG;
alias ULONGLONG* PULONGLONG;
alias LONGLONG USN;
// #if defined(MIDL_PASS)
// ...
// #else // MIDL_PASS
union _LARGE_INTEGER {
struct _0 {
DWORD LowPart;
LONG HighPart;
}
_0 _;
struct _1 {
DWORD LowPart;
LONG HighPart;
}
_1 u;
// #endif //MIDL_PASS
LONGLONG QuadPart;
}
alias _LARGE_INTEGER LARGE_INTEGER;
alias LARGE_INTEGER* PLARGE_INTEGER;
// #if defined(MIDL_PASS)
// ...
// #else // MIDL_PASS
union _ULARGE_INTEGER {
struct _2 {
DWORD LowPart;
DWORD HighPart;
}
_2 _;
struct _3 {
DWORD LowPart;
DWORD HighPart;
}
_3 u;
// #endif //MIDL_PASS
ULONGLONG QuadPart;
}
alias _ULARGE_INTEGER ULARGE_INTEGER;
alias ULARGE_INTEGER* PULARGE_INTEGER;
struct _LUID {
DWORD LowPart;
LONG HighPart;
}
alias _LUID LUID;
alias _LUID* PLUID;
// #define _DWORDLONG_
alias ULONGLONG DWORDLONG;
alias DWORDLONG* PDWORDLONG;
// #if defined(MIDL_PASS) || defined(RC_INVOKED)
// #...
// #...
// #...
// #...
// #...
// #elif defined(_M_MRX000)
// #...
// #...
// #...
// #...
// #...
// #if defined (__cplusplus)
// ...
// #endif
// ...
// ...
// ...
// ...
// ...
// #if defined (__cplusplus)
// ...
// #endif
// #...
// #...
// #...
// #...
// #...
// #elif defined(_M_IX86)
long Int32x32To64(int a, int b) { return (cast(long)a) * b; }
ulong UInt32x32To64(uint a, uint b) { return (cast(ulong)a) * b; }
extern(Windows) export ULONGLONG Int64ShllMod32(
ULONGLONG Value,
DWORD ShiftCount);
extern(Windows) export LONGLONG Int64ShraMod32(
LONGLONG Value,
DWORD ShiftCount);
extern(Windows) export ULONGLONG Int64ShrlMod32(
ULONGLONG Value,
DWORD ShiftCount);
// #if _MSC_VER >= 1200
// #pragma warning(push)
// #endif
// #pragma warning(disable:4035) // re-enable below
// __inline ULONGLONG Int64ShllMod32( ULONGLONG Value, DWORD ShiftCount );
// __inline LONGLONG Int64ShraMod32( LONGLONG Value, DWORD ShiftCount );
// __inline ULONGLONG Int64ShrlMod32( ULONGLONG Value, DWORD ShiftCount );
// #if _MSC_VER >= 1200
// #pragma warning(pop)
// #else
// #...
// #endif
// #elif defined(_M_ALPHA)
// #...
// #...
// #...
// #...
// #...
// #elif defined(_M_PPC)
// #...
// #...
// #...
// #...
// #...
// #elif defined(_68K_) || defined(_MPPC_)
// #...
// #...
// #...
// #...
// #...
// #elif defined(_M_IA64) || defined(_M_AMD64)
// #...
// #...
// #...
// #...
// #...
// #else
// #...
// #endif
enum : CHAR { ANSI_NULL = 0 }
enum : WCHAR { UNICODE_NULL = 0 }
enum : WORD { UNICODE_STRING_MAX_BYTES = 65534 }
enum : uint { UNICODE_STRING_MAX_CHARS = 32767 }
alias BYTE BOOLEAN;
alias BOOLEAN* PBOOLEAN;
struct _LIST_ENTRY {
_LIST_ENTRY *Flink;
_LIST_ENTRY *Blink;
}
alias _LIST_ENTRY LIST_ENTRY;
alias _LIST_ENTRY* PLIST_ENTRY;
alias _LIST_ENTRY* RESTRICTED_POINTERPRLIST_ENTRY;
struct _SINGLE_LIST_ENTRY {
_SINGLE_LIST_ENTRY *Next;
}
alias _SINGLE_LIST_ENTRY SINGLE_LIST_ENTRY;
alias _SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY;
struct LIST_ENTRY32 {
DWORD Flink;
DWORD Blink;
}
alias LIST_ENTRY32* PLIST_ENTRY32;
struct LIST_ENTRY64 {
ULONGLONG Flink;
ULONGLONG Blink;
}
alias LIST_ENTRY64* PLIST_ENTRY64;
import win32.guiddef;
// #ifndef __OBJECTID_DEFINED
// #define __OBJECTID_DEFINED
struct _OBJECTID {
GUID Lineage;
DWORD Uniquifier;
}
alias _OBJECTID OBJECTID;
// #endif // !_OBJECTID_DEFINED
enum : uint { MINCHAR = 0x80 }
enum : uint { MAXCHAR = 0x7f }
enum : uint { MINSHORT = 0x8000 }
enum : uint { MAXSHORT = 0x7fff }
enum : uint { MINLONG = 0x80000000 }
enum : uint { MAXLONG = 0x7fffffff }
enum : uint { MAXBYTE = 0xff }
enum : uint { MAXWORD = 0xffff }
enum : uint { MAXDWORD = 0xffffffff }
// #define FIELD_OFFSET(type, field) ((LONG)(LONG_PTR)&(((type *)0)->field))
// #if(_WIN32_WINNT > 0x0500)
// #define RTL_FIELD_SIZE(type, field) (sizeof(((type *)0)->field))
// #define RTL_SIZEOF_THROUGH_FIELD(type, field) (FIELD_OFFSET(type, field) + RTL_FIELD_SIZE(type, field))
// #define RTL_CONTAINS_FIELD(Struct, Size, Field) ( (((PCHAR)(&(Struct)->Field)) + sizeof((Struct)->Field)) <= (((PCHAR)(Struct))+(Size)) )
// #define RTL_NUMBER_OF(A) (sizeof(A)/sizeof((A)[0]))
// #define RTL_FIELD_TYPE(type, field) (((type*)0)->field)
// #define RTL_NUMBER_OF_FIELD(type, field) (RTL_NUMBER_OF(RTL_FIELD_TYPE(type, field)))
// #define RTL_PADDING_BETWEEN_FIELDS(T, F1, F2) ((FIELD_OFFSET(T, F2) > FIELD_OFFSET(T, F1)) ? (FIELD_OFFSET(T, F2) - FIELD_OFFSET(T, F1) - RTL_FIELD_SIZE(T, F1)) : (FIELD_OFFSET(T, F1) - FIELD_OFFSET(T, F2) - RTL_FIELD_SIZE(T, F2)))
// #if defined(__cplusplus)
// #define RTL_CONST_CAST(type) const_cast<type>
// #else
// #...
// #endif
// #define RTL_BITS_OF(sizeOfArg) (sizeof(sizeOfArg) * 8)
// #define RTL_BITS_OF_FIELD(type, field) (RTL_BITS_OF(RTL_FIELD_TYPE(type, field)))
// #endif /* _WIN32_WINNT > 0x0500 */
// #define CONTAINING_RECORD(address, type, field) ((type *)( (PCHAR)(address) - (ULONG_PTR)(&((type *)0)->field)))
enum : uint { VER_SERVER_NT = 0x80000000 }
enum : uint { VER_WORKSTATION_NT = 0x40000000 }
enum : uint { VER_SUITE_SMALLBUSINESS = 0x00000001 }
enum : uint { VER_SUITE_ENTERPRISE = 0x00000002 }
enum : uint { VER_SUITE_BACKOFFICE = 0x00000004 }
enum : uint { VER_SUITE_COMMUNICATIONS = 0x00000008 }
enum : uint { VER_SUITE_TERMINAL = 0x00000010 }
enum : uint { VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x00000020 }
enum : uint { VER_SUITE_EMBEDDEDNT = 0x00000040 }
enum : uint { VER_SUITE_DATACENTER = 0x00000080 }
enum : uint { VER_SUITE_SINGLEUSERTS = 0x00000100 }
enum : uint { VER_SUITE_PERSONAL = 0x00000200 }
enum : uint { VER_SUITE_BLADE = 0x00000400 }
enum : uint { LANG_NEUTRAL = 0x00 }
enum : uint { LANG_INVARIANT = 0x7f }
enum : uint { LANG_AFRIKAANS = 0x36 }
enum : uint { LANG_ALBANIAN = 0x1c }
enum : uint { LANG_ARABIC = 0x01 }
enum : uint { LANG_ARMENIAN = 0x2b }
enum : uint { LANG_ASSAMESE = 0x4d }
enum : uint { LANG_AZERI = 0x2c }
enum : uint { LANG_BASQUE = 0x2d }
enum : uint { LANG_BELARUSIAN = 0x23 }
enum : uint { LANG_BENGALI = 0x45 }
enum : uint { LANG_BULGARIAN = 0x02 }
enum : uint { LANG_CATALAN = 0x03 }
enum : uint { LANG_CHINESE = 0x04 }
enum : uint { LANG_CROATIAN = 0x1a }
enum : uint { LANG_CZECH = 0x05 }
enum : uint { LANG_DANISH = 0x06 }
enum : uint { LANG_DIVEHI = 0x65 }
enum : uint { LANG_DUTCH = 0x13 }
enum : uint { LANG_ENGLISH = 0x09 }
enum : uint { LANG_ESTONIAN = 0x25 }
enum : uint { LANG_FAEROESE = 0x38 }
enum : uint { LANG_FARSI = 0x29 }
enum : uint { LANG_FINNISH = 0x0b }
enum : uint { LANG_FRENCH = 0x0c }
enum : uint { LANG_GALICIAN = 0x56 }
enum : uint { LANG_GEORGIAN = 0x37 }
enum : uint { LANG_GERMAN = 0x07 }
enum : uint { LANG_GREEK = 0x08 }
enum : uint { LANG_GUJARATI = 0x47 }
enum : uint { LANG_HEBREW = 0x0d }
enum : uint { LANG_HINDI = 0x39 }
enum : uint { LANG_HUNGARIAN = 0x0e }
enum : uint { LANG_ICELANDIC = 0x0f }
enum : uint { LANG_INDONESIAN = 0x21 }
enum : uint { LANG_ITALIAN = 0x10 }
enum : uint { LANG_JAPANESE = 0x11 }
enum : uint { LANG_KANNADA = 0x4b }
enum : uint { LANG_KASHMIRI = 0x60 }
enum : uint { LANG_KAZAK = 0x3f }
enum : uint { LANG_KONKANI = 0x57 }
enum : uint { LANG_KOREAN = 0x12 }
enum : uint { LANG_KYRGYZ = 0x40 }
enum : uint { LANG_LATVIAN = 0x26 }
enum : uint { LANG_LITHUANIAN = 0x27 }
enum : uint { LANG_MACEDONIAN = 0x2f }
enum : uint { LANG_MALAY = 0x3e }
enum : uint { LANG_MALAYALAM = 0x4c }
enum : uint { LANG_MANIPURI = 0x58 }
enum : uint { LANG_MARATHI = 0x4e }
enum : uint { LANG_MONGOLIAN = 0x50 }
enum : uint { LANG_NEPALI = 0x61 }
enum : uint { LANG_NORWEGIAN = 0x14 }
enum : uint { LANG_ORIYA = 0x48 }
enum : uint { LANG_POLISH = 0x15 }
enum : uint { LANG_PORTUGUESE = 0x16 }
enum : uint { LANG_PUNJABI = 0x46 }
enum : uint { LANG_ROMANIAN = 0x18 }
enum : uint { LANG_RUSSIAN = 0x19 }
enum : uint { LANG_SANSKRIT = 0x4f }
enum : uint { LANG_SERBIAN = 0x1a }
enum : uint { LANG_SINDHI = 0x59 }
enum : uint { LANG_SLOVAK = 0x1b }
enum : uint { LANG_SLOVENIAN = 0x24 }
enum : uint { LANG_SPANISH = 0x0a }
enum : uint { LANG_SWAHILI = 0x41 }
enum : uint { LANG_SWEDISH = 0x1d }
enum : uint { LANG_SYRIAC = 0x5a }
enum : uint { LANG_TAMIL = 0x49 }
enum : uint { LANG_TATAR = 0x44 }
enum : uint { LANG_TELUGU = 0x4a }
enum : uint { LANG_THAI = 0x1e }
enum : uint { LANG_TURKISH = 0x1f }
enum : uint { LANG_UKRAINIAN = 0x22 }
enum : uint { LANG_URDU = 0x20 }
enum : uint { LANG_UZBEK = 0x43 }
enum : uint { LANG_VIETNAMESE = 0x2a }
enum : uint { SUBLANG_NEUTRAL = 0x00 }
enum : uint { SUBLANG_DEFAULT = 0x01 }
enum : uint { SUBLANG_SYS_DEFAULT = 0x02 }
enum : uint { SUBLANG_ARABIC_SAUDI_ARABIA = 0x01 }
enum : uint { SUBLANG_ARABIC_IRAQ = 0x02 }
enum : uint { SUBLANG_ARABIC_EGYPT = 0x03 }
enum : uint { SUBLANG_ARABIC_LIBYA = 0x04 }
enum : uint { SUBLANG_ARABIC_ALGERIA = 0x05 }
enum : uint { SUBLANG_ARABIC_MOROCCO = 0x06 }
enum : uint { SUBLANG_ARABIC_TUNISIA = 0x07 }
enum : uint { SUBLANG_ARABIC_OMAN = 0x08 }
enum : uint { SUBLANG_ARABIC_YEMEN = 0x09 }
enum : uint { SUBLANG_ARABIC_SYRIA = 0x0a }
enum : uint { SUBLANG_ARABIC_JORDAN = 0x0b }
enum : uint { SUBLANG_ARABIC_LEBANON = 0x0c }
enum : uint { SUBLANG_ARABIC_KUWAIT = 0x0d }
enum : uint { SUBLANG_ARABIC_UAE = 0x0e }
enum : uint { SUBLANG_ARABIC_BAHRAIN = 0x0f }
enum : uint { SUBLANG_ARABIC_QATAR = 0x10 }
enum : uint { SUBLANG_AZERI_LATIN = 0x01 }
enum : uint { SUBLANG_AZERI_CYRILLIC = 0x02 }
enum : uint { SUBLANG_CHINESE_TRADITIONAL = 0x01 }
enum : uint { SUBLANG_CHINESE_SIMPLIFIED = 0x02 }
enum : uint { SUBLANG_CHINESE_HONGKONG = 0x03 }
enum : uint { SUBLANG_CHINESE_SINGAPORE = 0x04 }
enum : uint { SUBLANG_CHINESE_MACAU = 0x05 }
enum : uint { SUBLANG_DUTCH = 0x01 }
enum : uint { SUBLANG_DUTCH_BELGIAN = 0x02 }
enum : uint { SUBLANG_ENGLISH_US = 0x01 }
enum : uint { SUBLANG_ENGLISH_UK = 0x02 }
enum : uint { SUBLANG_ENGLISH_AUS = 0x03 }
enum : uint { SUBLANG_ENGLISH_CAN = 0x04 }
enum : uint { SUBLANG_ENGLISH_NZ = 0x05 }
enum : uint { SUBLANG_ENGLISH_EIRE = 0x06 }
enum : uint { SUBLANG_ENGLISH_SOUTH_AFRICA = 0x07 }
enum : uint { SUBLANG_ENGLISH_JAMAICA = 0x08 }
enum : uint { SUBLANG_ENGLISH_CARIBBEAN = 0x09 }
enum : uint { SUBLANG_ENGLISH_BELIZE = 0x0a }
enum : uint { SUBLANG_ENGLISH_TRINIDAD = 0x0b }
enum : uint { SUBLANG_ENGLISH_ZIMBABWE = 0x0c }
enum : uint { SUBLANG_ENGLISH_PHILIPPINES = 0x0d }
enum : uint { SUBLANG_FRENCH = 0x01 }
enum : uint { SUBLANG_FRENCH_BELGIAN = 0x02 }
enum : uint { SUBLANG_FRENCH_CANADIAN = 0x03 }
enum : uint { SUBLANG_FRENCH_SWISS = 0x04 }
enum : uint { SUBLANG_FRENCH_LUXEMBOURG = 0x05 }
enum : uint { SUBLANG_FRENCH_MONACO = 0x06 }
enum : uint { SUBLANG_GERMAN = 0x01 }
enum : uint { SUBLANG_GERMAN_SWISS = 0x02 }
enum : uint { SUBLANG_GERMAN_AUSTRIAN = 0x03 }
enum : uint { SUBLANG_GERMAN_LUXEMBOURG = 0x04 }
enum : uint { SUBLANG_GERMAN_LIECHTENSTEIN = 0x05 }
enum : uint { SUBLANG_ITALIAN = 0x01 }
enum : uint { SUBLANG_ITALIAN_SWISS = 0x02 }
// #if _WIN32_WINNT >= 0x0501
enum : uint { SUBLANG_KASHMIRI_SASIA = 0x02 }
// #endif
enum : uint { SUBLANG_KASHMIRI_INDIA = 0x02 }
enum : uint { SUBLANG_KOREAN = 0x01 }
enum : uint { SUBLANG_LITHUANIAN = 0x01 }
enum : uint { SUBLANG_MALAY_MALAYSIA = 0x01 }
enum : uint { SUBLANG_MALAY_BRUNEI_DARUSSALAM = 0x02 }
enum : uint { SUBLANG_NEPALI_INDIA = 0x02 }
enum : uint { SUBLANG_NORWEGIAN_BOKMAL = 0x01 }
enum : uint { SUBLANG_NORWEGIAN_NYNORSK = 0x02 }
enum : uint { SUBLANG_PORTUGUESE = 0x02 }
enum : uint { SUBLANG_PORTUGUESE_BRAZILIAN = 0x01 }
enum : uint { SUBLANG_SERBIAN_LATIN = 0x02 }
enum : uint { SUBLANG_SERBIAN_CYRILLIC = 0x03 }
enum : uint { SUBLANG_SPANISH = 0x01 }
enum : uint { SUBLANG_SPANISH_MEXICAN = 0x02 }
enum : uint { SUBLANG_SPANISH_MODERN = 0x03 }
enum : uint { SUBLANG_SPANISH_GUATEMALA = 0x04 }
enum : uint { SUBLANG_SPANISH_COSTA_RICA = 0x05 }
enum : uint { SUBLANG_SPANISH_PANAMA = 0x06 }
enum : uint { SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 0x07 }
enum : uint { SUBLANG_SPANISH_VENEZUELA = 0x08 }
enum : uint { SUBLANG_SPANISH_COLOMBIA = 0x09 }
enum : uint { SUBLANG_SPANISH_PERU = 0x0a }
enum : uint { SUBLANG_SPANISH_ARGENTINA = 0x0b }
enum : uint { SUBLANG_SPANISH_ECUADOR = 0x0c }
enum : uint { SUBLANG_SPANISH_CHILE = 0x0d }
enum : uint { SUBLANG_SPANISH_URUGUAY = 0x0e }
enum : uint { SUBLANG_SPANISH_PARAGUAY = 0x0f }
enum : uint { SUBLANG_SPANISH_BOLIVIA = 0x10 }
enum : uint { SUBLANG_SPANISH_EL_SALVADOR = 0x11 }
enum : uint { SUBLANG_SPANISH_HONDURAS = 0x12 }
enum : uint { SUBLANG_SPANISH_NICARAGUA = 0x13 }
enum : uint { SUBLANG_SPANISH_PUERTO_RICO = 0x14 }
enum : uint { SUBLANG_SWEDISH = 0x01 }
enum : uint { SUBLANG_SWEDISH_FINLAND = 0x02 }
enum : uint { SUBLANG_URDU_PAKISTAN = 0x01 }
enum : uint { SUBLANG_URDU_INDIA = 0x02 }
enum : uint { SUBLANG_UZBEK_LATIN = 0x01 }
enum : uint { SUBLANG_UZBEK_CYRILLIC = 0x02 }
enum : uint { SORT_DEFAULT = 0x0 }
enum : uint { SORT_JAPANESE_XJIS = 0x0 }
enum : uint { SORT_JAPANESE_UNICODE = 0x1 }
enum : uint { SORT_CHINESE_BIG5 = 0x0 }
enum : uint { SORT_CHINESE_PRCP = 0x0 }
enum : uint { SORT_CHINESE_UNICODE = 0x1 }
enum : uint { SORT_CHINESE_PRC = 0x2 }
enum : uint { SORT_CHINESE_BOPOMOFO = 0x3 }
enum : uint { SORT_KOREAN_KSC = 0x0 }
enum : uint { SORT_KOREAN_UNICODE = 0x1 }
enum : uint { SORT_GERMAN_PHONE_BOOK = 0x1 }
enum : uint { SORT_HUNGARIAN_DEFAULT = 0x0 }
enum : uint { SORT_HUNGARIAN_TECHNICAL = 0x1 }
enum : uint { SORT_GEORGIAN_TRADITIONAL = 0x0 }
enum : uint { SORT_GEORGIAN_MODERN = 0x1 }
WORD MAKELANGID(USHORT p, USHORT s) { return (((cast(WORD)(s)) << 10) | cast(WORD)(p)); }
WORD PRIMARYLANGID(WORD lgid) { return lgid & 0x3ff; }
WORD SUBLANGID(WORD lgid) { return lgid >>> 10; }
enum : uint { NLS_VALID_LOCALE_MASK = 0x000fffff }
DWORD MAKELCID(WORD lgid, WORD srtid) { return ((cast(DWORD)srtid) << 16) | (cast(DWORD)lgid); }
DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srtid)) | ((cast(DWORD)ver) << 20); }
WORD LANGIDFROMLCID(LCID lcid) { return lcid; }
WORD SORTIDFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 16) & 0xf; }
WORD SORTVERSIONFROMLCID(LCID lcid) { return (cast(DWORD)lcid >>> 20) & 0xf; }
enum : uint { LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL }
enum : uint { LANG_USER_DEFAULT = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL }
enum : uint { LOCALE_SYSTEM_DEFAULT = (SORT_DEFAULT << 16) | LANG_SYSTEM_DEFAULT }
enum : uint { LOCALE_USER_DEFAULT = (SORT_DEFAULT << 16) | LANG_USER_DEFAULT }
enum : uint { LOCALE_NEUTRAL = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL }
enum : uint { LOCALE_INVARIANT = (SORT_DEFAULT << 16) | (SUBLANG_NEUTRAL << 10) | LANG_INVARIANT }
// #if ! defined(lint)
// #...
// #...
// #...
// #else // lint
// #define UNREFERENCED_PARAMETER(P) { (P) = (P); }
// #define DBG_UNREFERENCED_PARAMETER(P) { (P) = (P); }
// #define DBG_UNREFERENCED_LOCAL_VARIABLE(V) { (V) = (V); }
// #endif // lint
// #if (_MSC_VER > 1200)
// #define DEFAULT_UNREACHABLE default: __assume(0)
// #else
// #...
// #endif
// #ifndef WIN32_NO_STATUS
enum : DWORD { STATUS_WAIT_0 = 0x00000000 }
enum : DWORD { STATUS_ABANDONED_WAIT_0 = 0x00000080 }
enum : DWORD { STATUS_USER_APC = 0x000000C0 }
enum : DWORD { STATUS_TIMEOUT = 0x00000102 }
enum : DWORD { STATUS_PENDING = 0x00000103 }
enum : DWORD { DBG_EXCEPTION_HANDLED = 0x00010001 }
enum : DWORD { DBG_CONTINUE = 0x00010002 }
enum : DWORD { STATUS_SEGMENT_NOTIFICATION = 0x40000005 }
enum : DWORD { DBG_TERMINATE_THREAD = 0x40010003 }
enum : DWORD { DBG_TERMINATE_PROCESS = 0x40010004 }
enum : DWORD { DBG_CONTROL_C = 0x40010005 }
enum : DWORD { DBG_CONTROL_BREAK = 0x40010008 }
enum : DWORD { STATUS_GUARD_PAGE_VIOLATION = 0x80000001 }
enum : DWORD { STATUS_DATATYPE_MISALIGNMENT = 0x80000002 }
enum : DWORD { STATUS_BREAKPOINT = 0x80000003 }
enum : DWORD { STATUS_SINGLE_STEP = 0x80000004 }
enum : DWORD { DBG_EXCEPTION_NOT_HANDLED = 0x80010001 }
enum : DWORD { STATUS_ACCESS_VIOLATION = 0xC0000005 }
enum : DWORD { STATUS_IN_PAGE_ERROR = 0xC0000006 }
enum : DWORD { STATUS_INVALID_HANDLE = 0xC0000008 }
enum : DWORD { STATUS_NO_MEMORY = 0xC0000017 }
enum : DWORD { STATUS_ILLEGAL_INSTRUCTION = 0xC000001D }
enum : DWORD { STATUS_NONCONTINUABLE_EXCEPTION = 0xC0000025 }
enum : DWORD { STATUS_INVALID_DISPOSITION = 0xC0000026 }
enum : DWORD { STATUS_ARRAY_BOUNDS_EXCEEDED = 0xC000008C }
enum : DWORD { STATUS_FLOAT_DENORMAL_OPERAND = 0xC000008D }
enum : DWORD { STATUS_FLOAT_DIVIDE_BY_ZERO = 0xC000008E }
enum : DWORD { STATUS_FLOAT_INEXACT_RESULT = 0xC000008F }
enum : DWORD { STATUS_FLOAT_INVALID_OPERATION = 0xC0000090 }
enum : DWORD { STATUS_FLOAT_OVERFLOW = 0xC0000091 }
enum : DWORD { STATUS_FLOAT_STACK_CHECK = 0xC0000092 }
enum : DWORD { STATUS_FLOAT_UNDERFLOW = 0xC0000093 }
enum : DWORD { STATUS_INTEGER_DIVIDE_BY_ZERO = 0xC0000094 }
enum : DWORD { STATUS_INTEGER_OVERFLOW = 0xC0000095 }
enum : DWORD { STATUS_PRIVILEGED_INSTRUCTION = 0xC0000096 }
enum : DWORD { STATUS_STACK_OVERFLOW = 0xC00000FD }
enum : DWORD { STATUS_CONTROL_C_EXIT = 0xC000013A }
enum : DWORD { STATUS_FLOAT_MULTIPLE_FAULTS = 0xC00002B4 }
enum : DWORD { STATUS_FLOAT_MULTIPLE_TRAPS = 0xC00002B5 }
enum : DWORD { STATUS_REG_NAT_CONSUMPTION = 0xC00002C9 }
// #if defined(STATUS_SUCCESS) || (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100)
enum : DWORD { STATUS_SXS_EARLY_DEACTIVATION = 0xC015000F }
enum : DWORD { STATUS_SXS_INVALID_DEACTIVATION = 0xC0150010 }
// #endif
// #endif
enum : uint { MAXIMUM_WAIT_OBJECTS = 64 }
alias MAXCHAR MAXIMUM_SUSPEND_COUNT;
alias ULONG_PTR KSPIN_LOCK;
alias KSPIN_LOCK* PKSPIN_LOCK;
// #if defined(_AMD64_)
// #if defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS)
// #...
// ...
// #...
// #...
// ...
// #...
// ...
// ...
// ...
// ...
// #...
// #...
// #...
// #...
// #...
// #...
// ...
// ...
// #...
// #...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// #...
// #...
// #...
// #...
// #...
// #...
// #...
// #...
// #endif // defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS)
// #if !defined(RC_INVOKED)
// #...
// #...
// #...
// #...
// #...
// #...
// #...
// #endif // !defined(RC_INVOKED)
// ...
// ...
// #...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// #endif // _AMD64_
// #ifdef _ALPHA_ // winnt
// ...
// #if defined(_M_ALPHA) // winnt
// #...
// #endif // winnt
// #endif // winnt
// #if defined(_M_ALPHA)
// #...
// #else
extern(Windows) export _TEB NtCurrentTeb();
// #endif
// #ifdef _ALPHA_
// #...
// #...
// #if !defined(RC_INVOKED)
// #...
// #...
// #...
// #...
// #...
// #endif
// #ifndef _PORTABLE_32BIT_CONTEXT
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// #else
// #...
// #endif // _PORTABLE_32BIT_CONTEXT
// #endif // _ALPHA_
// #ifdef _ALPHA_
// ...
// #endif // _ALPHA_
// #ifdef _X86_
// #if !defined(MIDL_PASS)
// #if !defined(RC_INVOKED)
// #if _MSC_VER >= 1200
// #pragma warning(push)
// #endif
// #pragma warning(disable:4164) // disable C4164 warning so that apps that
// #ifdef _M_IX86
// #pragma function(_enable)
// #pragma function(_disable)
// #endif
// #if _MSC_VER >= 1200
// #pragma warning(pop)
// #else
// #...
// #endif
// #endif
// #endif
// #if !defined(MIDL_PASS) && defined(_M_IX86)
// #if _MSC_VER >= 1200
// #pragma warning(push)
// #endif
// #pragma warning (disable:4035) // disable 4035 (function must return something)
PVOID GetFiberData() { asm { mov EAX, FS:[0x10]; mov EAX, [EAX]; } }
PVOID GetCurrentFiber() { asm { mov EAX, FS:[0x10]; } }
// #if _MSC_VER >= 1200
// #pragma warning(pop)
// #else
// #...
// #endif
// #endif
enum : uint { SIZE_OF_80387_REGISTERS = 80 }
// #if !defined(RC_INVOKED)
enum : uint { CONTEXT_i386 = 0x00010000 }
enum : uint { CONTEXT_i486 = 0x00010000 }
enum : uint { CONTEXT_CONTROL = CONTEXT_i386 | 0x00000001L }
enum : uint { CONTEXT_INTEGER = CONTEXT_i386 | 0x00000002L }
enum : uint { CONTEXT_SEGMENTS = CONTEXT_i386 | 0x00000004L }
enum : uint { CONTEXT_FLOATING_POINT = CONTEXT_i386 | 0x00000008L }
enum : uint { CONTEXT_DEBUG_REGISTERS = CONTEXT_i386 | 0x00000010L }
enum : uint { CONTEXT_EXTENDED_REGISTERS = CONTEXT_i386 | 0x00000020L }
enum : uint { CONTEXT_FULL = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS }
// #endif
enum : uint { MAXIMUM_SUPPORTED_EXTENSION = 512 }
struct _FLOATING_SAVE_AREA {
DWORD ControlWord;
DWORD StatusWord;
DWORD TagWord;
DWORD ErrorOffset;
DWORD ErrorSelector;
DWORD DataOffset;
DWORD DataSelector;
BYTE RegisterArea[SIZE_OF_80387_REGISTERS];
DWORD Cr0NpxState;
}
alias _FLOATING_SAVE_AREA FLOATING_SAVE_AREA;
alias FLOATING_SAVE_AREA* PFLOATING_SAVE_AREA;
struct _CONTEXT {
DWORD ContextFlags;
DWORD Dr0;
DWORD Dr1;
DWORD Dr2;
DWORD Dr3;
DWORD Dr6;
DWORD Dr7;
FLOATING_SAVE_AREA FloatSave;
DWORD SegGs;
DWORD SegFs;
DWORD SegEs;
DWORD SegDs;
DWORD Edi;
DWORD Esi;
DWORD Ebx;
DWORD Edx;
DWORD Ecx;
DWORD Eax;
DWORD Ebp;
DWORD Eip;
DWORD SegCs;
DWORD EFlags;
DWORD Esp;
DWORD SegSs;
BYTE ExtendedRegisters[MAXIMUM_SUPPORTED_EXTENSION];
}
alias _CONTEXT CONTEXT;
alias CONTEXT* PCONTEXT;
// #endif //_X86_
// #ifndef _LDT_ENTRY_DEFINED
// #define _LDT_ENTRY_DEFINED
struct _LDT_ENTRY {
WORD LimitLow;
WORD BaseLow;
union {
struct {
BYTE BaseMid;
BYTE Flags1;
BYTE Flags2;
BYTE BaseHi;
}
struct {
// DWORD BaseMid : 8;
// DWORD Type : 5;
// DWORD Dpl : 2;
// DWORD Pres : 1;
// DWORD LimitHi : 4;
// DWORD Sys : 1;
// DWORD Reserved_0 : 1;
// DWORD Default_Big : 1;
// DWORD Granularity : 1;
// DWORD BaseHi : 8;
}
}
}
alias _LDT_ENTRY LDT_ENTRY;
alias _LDT_ENTRY* PLDT_ENTRY;
// #endif
// #if defined(_MIPS_)
// #...
// #...
// #if !defined(RC_INVOKED)
// #...
// #...
// #...
// #...
// #...
// #...
// #...
// ...
// #endif
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// #...
// #endif // MIPS
// #if defined(_MIPS_)
// ...
// #endif // MIPS
// #if defined(_PPC_)
// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000)
// ...
// #...
// #elif defined(_M_PPC)
// ...
// #...
// #endif
// #...
// #...
// #if !defined(RC_INVOKED)
// #...
// #...
// #...
// #...
// #...
// #endif
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// #endif // defined(_PPC_)
// #if defined(_MPPC_)
// #if defined(_M_PPC) && defined(_MSC_VER) && (_MSC_VER>=1000)
// ...
// #...
// #elif defined(_M_PPC)
// ...
// #...
// #endif
// #...
// #...
// #if !defined(RC_INVOKED)
// #...
// #...
// #...
// #...
// #...
// #endif
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// #endif // defined(_MPPC_)
// #if !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_IA64_)
// ...
// #if defined(_M_IA64) // winnt
// #...
// #endif // winnt
// #if defined(_M_IA64)
// #...
// #else
// ...
// #endif
// #...
// #...
// #endif // !defined(__midl) && !defined(GENUTIL) && !defined(_GENIA64_) && defined(_M_IA64)
// #ifdef _IA64_
// #if !defined(RC_INVOKED)
// #...
// #...
// #...
// #...
// #...
// #...
// #...
// #...
// #...
// #endif // !defined(RC_INVOKED)
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// ...
// #endif // _IA64_
// #ifdef _IA64_
// ...
// #endif // _IA64_
enum : uint { EXCEPTION_NONCONTINUABLE = 0x1 }
enum : uint { EXCEPTION_MAXIMUM_PARAMETERS = 15 }
struct _EXCEPTION_RECORD {
DWORD ExceptionCode;
DWORD ExceptionFlags;
_EXCEPTION_RECORD *ExceptionRecord;
PVOID ExceptionAddress;
DWORD NumberParameters;
ULONG_PTR ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
}
alias _EXCEPTION_RECORD EXCEPTION_RECORD;
alias EXCEPTION_RECORD* PEXCEPTION_RECORD;
struct _EXCEPTION_RECORD32 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD ExceptionRecord;
DWORD ExceptionAddress;
DWORD NumberParameters;
DWORD ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
}
alias _EXCEPTION_RECORD32 EXCEPTION_RECORD32;
alias _EXCEPTION_RECORD32* PEXCEPTION_RECORD32;
struct _EXCEPTION_RECORD64 {
DWORD ExceptionCode;
DWORD ExceptionFlags;
DWORD64 ExceptionRecord;
DWORD64 ExceptionAddress;
DWORD NumberParameters;
DWORD __unusedAlignment;
DWORD64 ExceptionInformation[EXCEPTION_MAXIMUM_PARAMETERS];
}
alias _EXCEPTION_RECORD64 EXCEPTION_RECORD64;
alias _EXCEPTION_RECORD64* PEXCEPTION_RECORD64;
struct _EXCEPTION_POINTERS {
PEXCEPTION_RECORD ExceptionRecord;
PCONTEXT ContextRecord;
}
alias _EXCEPTION_POINTERS EXCEPTION_POINTERS;
alias _EXCEPTION_POINTERS* PEXCEPTION_POINTERS;
alias PVOID PACCESS_TOKEN;
alias PVOID PSECURITY_DESCRIPTOR;
alias PVOID PSID;
alias DWORD ACCESS_MASK;
alias ACCESS_MASK* PACCESS_MASK;
enum : uint { DELETE = 0x00010000 }
enum : uint { READ_CONTROL = 0x00020000 }
enum : uint { WRITE_DAC = 0x00040000 }
enum : uint { WRITE_OWNER = 0x00080000 }
enum : uint { SYNCHRONIZE = 0x00100000 }
enum : uint { STANDARD_RIGHTS_REQUIRED = 0x000F0000 }
enum : uint { STANDARD_RIGHTS_READ = READ_CONTROL }
enum : uint { STANDARD_RIGHTS_WRITE = READ_CONTROL }
enum : uint { STANDARD_RIGHTS_EXECUTE = READ_CONTROL }
enum : uint { STANDARD_RIGHTS_ALL = 0x001F0000 }
enum : uint { SPECIFIC_RIGHTS_ALL = 0x0000FFFF }
enum : uint { ACCESS_SYSTEM_SECURITY = 0x01000000 }
enum : uint { MAXIMUM_ALLOWED = 0x02000000 }
enum : uint { GENERIC_READ = 0x80000000 }
enum : uint { GENERIC_WRITE = 0x40000000 }
enum : uint { GENERIC_EXECUTE = 0x20000000 }
enum : uint { GENERIC_ALL = 0x10000000 }
struct _GENERIC_MAPPING {
ACCESS_MASK GenericRead;
ACCESS_MASK GenericWrite;
ACCESS_MASK GenericExecute;
ACCESS_MASK GenericAll;
}
alias _GENERIC_MAPPING GENERIC_MAPPING;
alias GENERIC_MAPPING* PGENERIC_MAPPING;
align(4):
struct _LUID_AND_ATTRIBUTES {
LUID Luid;
DWORD Attributes;
}
alias _LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES;
alias _LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES;
alias LUID_AND_ATTRIBUTES LUID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
alias LUID_AND_ATTRIBUTES_ARRAY* PLUID_AND_ATTRIBUTES_ARRAY;
align:
// #ifndef SID_IDENTIFIER_AUTHORITY_DEFINED
// #define SID_IDENTIFIER_AUTHORITY_DEFINED
struct _SID_IDENTIFIER_AUTHORITY {
BYTE Value[6];
}
alias _SID_IDENTIFIER_AUTHORITY SID_IDENTIFIER_AUTHORITY;
alias _SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY;
// #endif
// #ifndef SID_DEFINED
// #define SID_DEFINED
struct _SID {
BYTE Revision;
BYTE SubAuthorityCount;
SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
// #ifdef MIDL_PASS
// ...
// #else // MIDL_PASS
DWORD SubAuthority[ANYSIZE_ARRAY];
// #endif // MIDL_PASS
}
alias _SID SID;
alias _SID* PISID;
// #endif
enum : uint { SID_REVISION = 1 }
enum : uint { SID_MAX_SUB_AUTHORITIES = 15 }
enum : uint { SID_RECOMMENDED_SUB_AUTHORITIES = 1 }
// #ifndef MIDL_PASS
const uint SECURITY_MAX_SID_SIZE = SID.sizeof - DWORD.sizeof + (SID_MAX_SUB_AUTHORITIES * DWORD.sizeof);
// #endif // MIDL_PASS
alias int _SID_NAME_USE;
enum {
SidTypeUser = 1,
SidTypeGroup,
SidTypeDomain,
SidTypeAlias,
SidTypeWellKnownGroup,
SidTypeDeletedAccount,
SidTypeInvalid,
SidTypeUnknown,
SidTypeComputer,
}
alias _SID_NAME_USE SID_NAME_USE;
alias _SID_NAME_USE* PSID_NAME_USE;
struct _SID_AND_ATTRIBUTES {
PSID Sid;
DWORD Attributes;
}
alias _SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES;
alias _SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES;
alias SID_AND_ATTRIBUTES SID_AND_ATTRIBUTES_ARRAY[ANYSIZE_ARRAY];
alias SID_AND_ATTRIBUTES_ARRAY* PSID_AND_ATTRIBUTES_ARRAY;
// #define SECURITY_NULL_SID_AUTHORITY {0,0,0,0,0,0}
// #define SECURITY_WORLD_SID_AUTHORITY {0,0,0,0,0,1}
// #define SECURITY_LOCAL_SID_AUTHORITY {0,0,0,0,0,2}
// #define SECURITY_CREATOR_SID_AUTHORITY {0,0,0,0,0,3}
// #define SECURITY_NON_UNIQUE_AUTHORITY {0,0,0,0,0,4}
// #define SECURITY_RESOURCE_MANAGER_AUTHORITY {0,0,0,0,0,9}
enum : uint { SECURITY_NULL_RID = 0x00000000 }
enum : uint { SECURITY_WORLD_RID = 0x00000000 }
enum : uint { SECURITY_LOCAL_RID = 0x00000000 }
enum : uint { SECURITY_CREATOR_OWNER_RID = 0x00000000 }
enum : uint { SECURITY_CREATOR_GROUP_RID = 0x00000001 }
enum : uint { SECURITY_CREATOR_OWNER_SERVER_RID = 0x00000002 }
enum : uint { SECURITY_CREATOR_GROUP_SERVER_RID = 0x00000003 }
// #define SECURITY_NT_AUTHORITY {0,0,0,0,0,5}
enum : uint { SECURITY_DIALUP_RID = 0x00000001 }
enum : uint { SECURITY_NETWORK_RID = 0x00000002 }
enum : uint { SECURITY_BATCH_RID = 0x00000003 }
enum : uint { SECURITY_INTERACTIVE_RID = 0x00000004 }
enum : uint { SECURITY_SERVICE_RID = 0x00000006 }
enum : uint { SECURITY_ANONYMOUS_LOGON_RID = 0x00000007 }
enum : uint { SECURITY_PROXY_RID = 0x00000008 }
enum : uint { SECURITY_ENTERPRISE_CONTROLLERS_RID = 0x00000009 }
alias SECURITY_ENTERPRISE_CONTROLLERS_RID SECURITY_SERVER_LOGON_RID;
enum : uint { SECURITY_PRINCIPAL_SELF_RID = 0x0000000A }
enum : uint { SECURITY_AUTHENTICATED_USER_RID = 0x0000000B }
enum : uint { SECURITY_RESTRICTED_CODE_RID = 0x0000000C }
enum : uint { SECURITY_TERMINAL_SERVER_RID = 0x0000000D }
enum : uint { SECURITY_REMOTE_LOGON_RID = 0x0000000E }
enum : uint { SECURITY_LOGON_IDS_RID = 0x00000005 }
enum : uint { SECURITY_LOGON_IDS_RID_COUNT = 3 }
enum : uint { SECURITY_LOCAL_SYSTEM_RID = 0x00000012 }
enum : uint { SECURITY_LOCAL_SERVICE_RID = 0x00000013 }
enum : uint { SECURITY_NETWORK_SERVICE_RID = 0x00000014 }
enum : uint { SECURITY_NT_NON_UNIQUE = 0x00000015 }
enum : uint { SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT = 3 }
enum : uint { SECURITY_BUILTIN_DOMAIN_RID = 0x00000020 }
enum : uint { DOMAIN_USER_RID_ADMIN = 0x000001F4 }
enum : uint { DOMAIN_USER_RID_GUEST = 0x000001F5 }
enum : uint { DOMAIN_USER_RID_KRBTGT = 0x000001F6 }
enum : uint { DOMAIN_GROUP_RID_ADMINS = 0x00000200 }
enum : uint { DOMAIN_GROUP_RID_USERS = 0x00000201 }
enum : uint { DOMAIN_GROUP_RID_GUESTS = 0x00000202 }
enum : uint { DOMAIN_GROUP_RID_COMPUTERS = 0x00000203 }
enum : uint { DOMAIN_GROUP_RID_CONTROLLERS = 0x00000204 }
enum : uint { DOMAIN_GROUP_RID_CERT_ADMINS = 0x00000205 }
enum : uint { DOMAIN_GROUP_RID_SCHEMA_ADMINS = 0x00000206 }
enum : uint { DOMAIN_GROUP_RID_ENTERPRISE_ADMINS = 0x00000207 }
enum : uint { DOMAIN_GROUP_RID_POLICY_ADMINS = 0x00000208 }
enum : uint { DOMAIN_ALIAS_RID_ADMINS = 0x00000220 }
enum : uint { DOMAIN_ALIAS_RID_USERS = 0x00000221 }
enum : uint { DOMAIN_ALIAS_RID_GUESTS = 0x00000222 }
enum : uint { DOMAIN_ALIAS_RID_POWER_USERS = 0x00000223 }
enum : uint { DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x00000224 }
enum : uint { DOMAIN_ALIAS_RID_SYSTEM_OPS = 0x00000225 }
enum : uint { DOMAIN_ALIAS_RID_PRINT_OPS = 0x00000226 }
enum : uint { DOMAIN_ALIAS_RID_BACKUP_OPS = 0x00000227 }
enum : uint { DOMAIN_ALIAS_RID_REPLICATOR = 0x00000228 }
enum : uint { DOMAIN_ALIAS_RID_RAS_SERVERS = 0x00000229 }
enum : uint { DOMAIN_ALIAS_RID_PREW2KCOMPACCESS = 0x0000022A }
enum : uint { DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS = 0x0000022B }
enum : uint { DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS = 0x0000022C }
const LUID SYSTEM_LUID = {LowPart: 0x3e7, HighPart: 0x0};
const LUID ANONYMOUS_LOGON_LUID = {LowPart: 0x3e6, HighPart: 0x0};
const LUID LOCALSERVICE_LUID = {LowPart: 0x3e5, HighPart: 0x0};
const LUID NETWORKSERVICE_LUID = {LowPart: 0x3e4, HighPart: 0x0};
enum : uint { SE_GROUP_MANDATORY = 0x00000001 }
enum : uint { SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002 }
enum : uint { SE_GROUP_ENABLED = 0x00000004 }
enum : uint { SE_GROUP_OWNER = 0x00000008 }
enum : uint { SE_GROUP_USE_FOR_DENY_ONLY = 0x00000010 }
enum : uint { SE_GROUP_LOGON_ID = 0xC0000000 }
enum : uint { SE_GROUP_RESOURCE = 0x20000000 }
enum : uint { ACL_REVISION = 2 }
enum : uint { ACL_REVISION_DS = 4 }
enum : uint { ACL_REVISION1 = 1 }
enum { MIN_ACL_REVISION = 2 }
enum : uint { ACL_REVISION2 = 2 }
enum : uint { ACL_REVISION3 = 3 }
enum : uint { ACL_REVISION4 = 4 }
alias ACL_REVISION4 MAX_ACL_REVISION;
struct _ACL {
BYTE AclRevision;
BYTE Sbz1;
WORD AclSize;
WORD AceCount;
WORD Sbz2;
}
alias _ACL ACL;
alias ACL* PACL;
struct _ACE_HEADER {
BYTE AceType;
BYTE AceFlags;
WORD AceSize;
}
alias _ACE_HEADER ACE_HEADER;
alias ACE_HEADER* PACE_HEADER;
enum : uint { ACCESS_MIN_MS_ACE_TYPE = 0x0 }
enum : uint { ACCESS_ALLOWED_ACE_TYPE = 0x0 }
enum : uint { ACCESS_DENIED_ACE_TYPE = 0x1 }
enum : uint { SYSTEM_AUDIT_ACE_TYPE = 0x2 }
enum : uint { SYSTEM_ALARM_ACE_TYPE = 0x3 }
enum : uint { ACCESS_MAX_MS_V2_ACE_TYPE = 0x3 }
enum : uint { ACCESS_ALLOWED_COMPOUND_ACE_TYPE = 0x4 }
enum : uint { ACCESS_MAX_MS_V3_ACE_TYPE = 0x4 }
enum : uint { ACCESS_MIN_MS_OBJECT_ACE_TYPE = 0x5 }
enum : uint { ACCESS_ALLOWED_OBJECT_ACE_TYPE = 0x5 }
enum : uint { ACCESS_DENIED_OBJECT_ACE_TYPE = 0x6 }
enum : uint { SYSTEM_AUDIT_OBJECT_ACE_TYPE = 0x7 }
enum : uint { SYSTEM_ALARM_OBJECT_ACE_TYPE = 0x8 }
enum : uint { ACCESS_MAX_MS_OBJECT_ACE_TYPE = 0x8 }
enum : uint { ACCESS_MAX_MS_V4_ACE_TYPE = 0x8 }
enum : uint { ACCESS_MAX_MS_ACE_TYPE = 0x8 }
enum : uint { ACCESS_ALLOWED_CALLBACK_ACE_TYPE = 0x9 }
enum : uint { ACCESS_DENIED_CALLBACK_ACE_TYPE = 0xA }
enum : uint { ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE = 0xB }
enum : uint { ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE = 0xC }
enum : uint { SYSTEM_AUDIT_CALLBACK_ACE_TYPE = 0xD }
enum : uint { SYSTEM_ALARM_CALLBACK_ACE_TYPE = 0xE }
enum : uint { SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE = 0xF }
enum : uint { SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE = 0x10 }
enum : uint { ACCESS_MAX_MS_V5_ACE_TYPE = 0x10 }
enum : uint { OBJECT_INHERIT_ACE = 0x1 }
enum : uint { CONTAINER_INHERIT_ACE = 0x2 }
enum : uint { NO_PROPAGATE_INHERIT_ACE = 0x4 }
enum : uint { INHERIT_ONLY_ACE = 0x8 }
enum : uint { INHERITED_ACE = 0x10 }
enum : uint { VALID_INHERIT_FLAGS = 0x1F }
enum : uint { SUCCESSFUL_ACCESS_ACE_FLAG = 0x40 }
enum : uint { FAILED_ACCESS_ACE_FLAG = 0x80 }
struct _ACCESS_ALLOWED_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _ACCESS_ALLOWED_ACE ACCESS_ALLOWED_ACE;
alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE;
struct _ACCESS_DENIED_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _ACCESS_DENIED_ACE ACCESS_DENIED_ACE;
alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE;
struct _SYSTEM_AUDIT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _SYSTEM_AUDIT_ACE SYSTEM_AUDIT_ACE;
alias SYSTEM_AUDIT_ACE* PSYSTEM_AUDIT_ACE;
struct _SYSTEM_ALARM_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _SYSTEM_ALARM_ACE SYSTEM_ALARM_ACE;
alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE;
struct _ACCESS_ALLOWED_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _ACCESS_ALLOWED_OBJECT_ACE ACCESS_ALLOWED_OBJECT_ACE;
alias _ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE;
struct _ACCESS_DENIED_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _ACCESS_DENIED_OBJECT_ACE ACCESS_DENIED_OBJECT_ACE;
alias _ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE;
struct _SYSTEM_AUDIT_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _SYSTEM_AUDIT_OBJECT_ACE SYSTEM_AUDIT_OBJECT_ACE;
alias _SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE;
struct _SYSTEM_ALARM_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _SYSTEM_ALARM_OBJECT_ACE SYSTEM_ALARM_OBJECT_ACE;
alias _SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE;
struct _ACCESS_ALLOWED_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _ACCESS_ALLOWED_CALLBACK_ACE ACCESS_ALLOWED_CALLBACK_ACE;
alias _ACCESS_ALLOWED_CALLBACK_ACE* PACCESS_ALLOWED_CALLBACK_ACE;
struct _ACCESS_DENIED_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _ACCESS_DENIED_CALLBACK_ACE ACCESS_DENIED_CALLBACK_ACE;
alias _ACCESS_DENIED_CALLBACK_ACE* PACCESS_DENIED_CALLBACK_ACE;
struct _SYSTEM_AUDIT_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _SYSTEM_AUDIT_CALLBACK_ACE SYSTEM_AUDIT_CALLBACK_ACE;
alias _SYSTEM_AUDIT_CALLBACK_ACE* PSYSTEM_AUDIT_CALLBACK_ACE;
struct _SYSTEM_ALARM_CALLBACK_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD SidStart;
}
alias _SYSTEM_ALARM_CALLBACK_ACE SYSTEM_ALARM_CALLBACK_ACE;
alias _SYSTEM_ALARM_CALLBACK_ACE* PSYSTEM_ALARM_CALLBACK_ACE;
struct _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
alias _ACCESS_ALLOWED_CALLBACK_OBJECT_ACE* PACCESS_ALLOWED_CALLBACK_OBJECT_ACE;
struct _ACCESS_DENIED_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE ACCESS_DENIED_CALLBACK_OBJECT_ACE;
alias _ACCESS_DENIED_CALLBACK_OBJECT_ACE* PACCESS_DENIED_CALLBACK_OBJECT_ACE;
struct _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE SYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
alias _SYSTEM_AUDIT_CALLBACK_OBJECT_ACE* PSYSTEM_AUDIT_CALLBACK_OBJECT_ACE;
struct _SYSTEM_ALARM_CALLBACK_OBJECT_ACE {
ACE_HEADER Header;
ACCESS_MASK Mask;
DWORD Flags;
GUID ObjectType;
GUID InheritedObjectType;
DWORD SidStart;
}
alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE SYSTEM_ALARM_CALLBACK_OBJECT_ACE;
alias _SYSTEM_ALARM_CALLBACK_OBJECT_ACE* PSYSTEM_ALARM_CALLBACK_OBJECT_ACE;
enum : uint { ACE_OBJECT_TYPE_PRESENT = 0x1 }
enum : uint { ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x2 }
alias int _ACL_INFORMATION_CLASS;
enum {
AclRevisionInformation = 1,
AclSizeInformation,
}
alias _ACL_INFORMATION_CLASS ACL_INFORMATION_CLASS;
struct _ACL_REVISION_INFORMATION {
DWORD AclRevision;
}
alias _ACL_REVISION_INFORMATION ACL_REVISION_INFORMATION;
alias ACL_REVISION_INFORMATION* PACL_REVISION_INFORMATION;
struct _ACL_SIZE_INFORMATION {
DWORD AceCount;
DWORD AclBytesInUse;
DWORD AclBytesFree;
}
alias _ACL_SIZE_INFORMATION ACL_SIZE_INFORMATION;
alias ACL_SIZE_INFORMATION* PACL_SIZE_INFORMATION;
enum : uint { SECURITY_DESCRIPTOR_REVISION = 1 }
enum : uint { SECURITY_DESCRIPTOR_REVISION1 = 1 }
const uint SECURITY_DESCRIPTOR_MIN_LENGTH = SECURITY_DESCRIPTOR.sizeof;
alias WORD SECURITY_DESCRIPTOR_CONTROL;
alias WORD* PSECURITY_DESCRIPTOR_CONTROL;
enum : uint { SE_OWNER_DEFAULTED = 0x0001 }
enum : uint { SE_GROUP_DEFAULTED = 0x0002 }
enum : uint { SE_DACL_PRESENT = 0x0004 }
enum : uint { SE_DACL_DEFAULTED = 0x0008 }
enum : uint { SE_SACL_PRESENT = 0x0010 }
enum : uint { SE_SACL_DEFAULTED = 0x0020 }
enum : uint { SE_DACL_AUTO_INHERIT_REQ = 0x0100 }
enum : uint { SE_SACL_AUTO_INHERIT_REQ = 0x0200 }
enum : uint { SE_DACL_AUTO_INHERITED = 0x0400 }
enum : uint { SE_SACL_AUTO_INHERITED = 0x0800 }
enum : uint { SE_DACL_PROTECTED = 0x1000 }
enum : uint { SE_SACL_PROTECTED = 0x2000 }
enum : uint { SE_RM_CONTROL_VALID = 0x4000 }
enum : uint { SE_SELF_RELATIVE = 0x8000 }
struct _SECURITY_DESCRIPTOR_RELATIVE {
BYTE Revision;
BYTE Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
DWORD Owner;
DWORD Group;
DWORD Sacl;
DWORD Dacl;
}
alias _SECURITY_DESCRIPTOR_RELATIVE SECURITY_DESCRIPTOR_RELATIVE;
alias _SECURITY_DESCRIPTOR_RELATIVE* PISECURITY_DESCRIPTOR_RELATIVE;
struct _SECURITY_DESCRIPTOR {
BYTE Revision;
BYTE Sbz1;
SECURITY_DESCRIPTOR_CONTROL Control;
PSID Owner;
PSID Group;
PACL Sacl;
PACL Dacl;
}
alias _SECURITY_DESCRIPTOR SECURITY_DESCRIPTOR;
alias _SECURITY_DESCRIPTOR* PISECURITY_DESCRIPTOR;
struct _OBJECT_TYPE_LIST {
WORD Level;
WORD Sbz;
GUID *ObjectType;
}
alias _OBJECT_TYPE_LIST OBJECT_TYPE_LIST;
alias _OBJECT_TYPE_LIST* POBJECT_TYPE_LIST;
enum : uint { ACCESS_OBJECT_GUID = 0 }
enum : uint { ACCESS_PROPERTY_SET_GUID = 1 }
enum : uint { ACCESS_PROPERTY_GUID = 2 }
enum : uint { ACCESS_MAX_LEVEL = 4 }
alias int _AUDIT_EVENT_TYPE;
enum {
AuditEventObjectAccess,
AuditEventDirectoryServiceAccess,
}
alias _AUDIT_EVENT_TYPE AUDIT_EVENT_TYPE;
alias _AUDIT_EVENT_TYPE* PAUDIT_EVENT_TYPE;
enum : uint { AUDIT_ALLOW_NO_PRIVILEGE = 0x1 }
const char[] ACCESS_DS_SOURCE_A = "DS";
const wchar[] ACCESS_DS_SOURCE_W = "DS";
const char[] ACCESS_DS_OBJECT_TYPE_NAME_A = "Directory Service Object";
const wchar[] ACCESS_DS_OBJECT_TYPE_NAME_W = "Directory Service Object";
enum : uint { SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001 }
enum : uint { SE_PRIVILEGE_ENABLED = 0x00000002 }
enum : uint { SE_PRIVILEGE_USED_FOR_ACCESS = 0x80000000 }
enum : uint { PRIVILEGE_SET_ALL_NECESSARY = 1 }
struct _PRIVILEGE_SET {
DWORD PrivilegeCount;
DWORD Control;
LUID_AND_ATTRIBUTES Privilege[ANYSIZE_ARRAY];
}
alias _PRIVILEGE_SET PRIVILEGE_SET;
alias _PRIVILEGE_SET* PPRIVILEGE_SET;
const TCHAR[] SE_CREATE_TOKEN_NAME = "SeCreateTokenPrivilege";
const TCHAR[] SE_ASSIGNPRIMARYTOKEN_NAME = "SeAssignPrimaryTokenPrivilege";
const TCHAR[] SE_LOCK_MEMORY_NAME = "SeLockMemoryPrivilege";
const TCHAR[] SE_INCREASE_QUOTA_NAME = "SeIncreaseQuotaPrivilege";
const TCHAR[] SE_UNSOLICITED_INPUT_NAME = "SeUnsolicitedInputPrivilege";
const TCHAR[] SE_MACHINE_ACCOUNT_NAME = "SeMachineAccountPrivilege";
const TCHAR[] SE_TCB_NAME = "SeTcbPrivilege";
const TCHAR[] SE_SECURITY_NAME = "SeSecurityPrivilege";
const TCHAR[] SE_TAKE_OWNERSHIP_NAME = "SeTakeOwnershipPrivilege";
const TCHAR[] SE_LOAD_DRIVER_NAME = "SeLoadDriverPrivilege";
const TCHAR[] SE_SYSTEM_PROFILE_NAME = "SeSystemProfilePrivilege";
const TCHAR[] SE_SYSTEMTIME_NAME = "SeSystemtimePrivilege";
const TCHAR[] SE_PROF_SINGLE_PROCESS_NAME = "SeProfileSingleProcessPrivilege";
const TCHAR[] SE_INC_BASE_PRIORITY_NAME = "SeIncreaseBasePriorityPrivilege";
const TCHAR[] SE_CREATE_PAGEFILE_NAME = "SeCreatePagefilePrivilege";
const TCHAR[] SE_CREATE_PERMANENT_NAME = "SeCreatePermanentPrivilege";
const TCHAR[] SE_BACKUP_NAME = "SeBackupPrivilege";
const TCHAR[] SE_RESTORE_NAME = "SeRestorePrivilege";
const TCHAR[] SE_SHUTDOWN_NAME = "SeShutdownPrivilege";
const TCHAR[] SE_DEBUG_NAME = "SeDebugPrivilege";
const TCHAR[] SE_AUDIT_NAME = "SeAuditPrivilege";
const TCHAR[] SE_SYSTEM_ENVIRONMENT_NAME = "SeSystemEnvironmentPrivilege";
const TCHAR[] SE_CHANGE_NOTIFY_NAME = "SeChangeNotifyPrivilege";
const TCHAR[] SE_REMOTE_SHUTDOWN_NAME = "SeRemoteShutdownPrivilege";
const TCHAR[] SE_UNDOCK_NAME = "SeUndockPrivilege";
const TCHAR[] SE_SYNC_AGENT_NAME = "SeSyncAgentPrivilege";
const TCHAR[] SE_ENABLE_DELEGATION_NAME = "SeEnableDelegationPrivilege";
const TCHAR[] SE_MANAGE_VOLUME_NAME = "SeManageVolumePrivilege";
alias int _SECURITY_IMPERSONATION_LEVEL;
enum {
SecurityAnonymous,
SecurityIdentification,
SecurityImpersonation,
SecurityDelegation,
}
alias _SECURITY_IMPERSONATION_LEVEL SECURITY_IMPERSONATION_LEVEL;
alias _SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL;
alias SecurityDelegation SECURITY_MAX_IMPERSONATION_LEVEL;
alias SecurityAnonymous SECURITY_MIN_IMPERSONATION_LEVEL;
alias SecurityImpersonation DEFAULT_IMPERSONATION_LEVEL;
bit VALID_IMPERSONATION_LEVEL(SECURITY_IMPERSONATION_LEVEL L){ return (L >= SECURITY_MIN_IMPERSONATION_LEVEL) && (L <= SECURITY_MAX_IMPERSONATION_LEVEL); }
enum : uint { TOKEN_ASSIGN_PRIMARY = 0x0001 }
enum : uint { TOKEN_DUPLICATE = 0x0002 }
enum : uint { TOKEN_IMPERSONATE = 0x0004 }
enum : uint { TOKEN_QUERY = 0x0008 }
enum : uint { TOKEN_QUERY_SOURCE = 0x0010 }
enum : uint { TOKEN_ADJUST_PRIVILEGES = 0x0020 }
enum : uint { TOKEN_ADJUST_GROUPS = 0x0040 }
enum : uint { TOKEN_ADJUST_DEFAULT = 0x0080 }
enum : uint { TOKEN_ADJUST_SESSIONID = 0x0100 }
enum : uint { TOKEN_ALL_ACCESS_P = STANDARD_RIGHTS_REQUIRED | TOKEN_ASSIGN_PRIMARY | TOKEN_DUPLICATE | TOKEN_IMPERSONATE | TOKEN_QUERY | TOKEN_QUERY_SOURCE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT }
// #if ((defined(_WIN32_WINNT) && (_WIN32_WINNT > 0x0400)) || (!defined(_WIN32_WINNT)))
enum : uint { TOKEN_ALL_ACCESS = TOKEN_ALL_ACCESS_P | TOKEN_ADJUST_SESSIONID }
// #else
// #...
// #endif
enum : uint { TOKEN_READ = STANDARD_RIGHTS_READ | TOKEN_QUERY }
enum : uint { TOKEN_WRITE = STANDARD_RIGHTS_WRITE | TOKEN_ADJUST_PRIVILEGES | TOKEN_ADJUST_GROUPS | TOKEN_ADJUST_DEFAULT }
enum : uint { TOKEN_EXECUTE = STANDARD_RIGHTS_EXECUTE }
alias int _TOKEN_TYPE;
enum {
TokenPrimary = 1,
TokenImpersonation,
}
alias _TOKEN_TYPE TOKEN_TYPE;
alias TOKEN_TYPE* PTOKEN_TYPE;
alias int _TOKEN_INFORMATION_CLASS;
enum {
TokenUser = 1,
TokenGroups,
TokenPrivileges,
TokenOwner,
TokenPrimaryGroup,
TokenDefaultDacl,
TokenSource,
TokenType,
TokenImpersonationLevel,
TokenStatistics,
TokenRestrictedSids,
TokenSessionId,
TokenGroupsAndPrivileges,
TokenSessionReference,
TokenSandBoxInert,
}
alias _TOKEN_INFORMATION_CLASS TOKEN_INFORMATION_CLASS;
alias _TOKEN_INFORMATION_CLASS* PTOKEN_INFORMATION_CLASS;
struct _TOKEN_USER {
SID_AND_ATTRIBUTES User;
}
alias _TOKEN_USER TOKEN_USER;
alias _TOKEN_USER* PTOKEN_USER;
struct _TOKEN_GROUPS {
DWORD GroupCount;
SID_AND_ATTRIBUTES Groups[ANYSIZE_ARRAY];
}
alias _TOKEN_GROUPS TOKEN_GROUPS;
alias _TOKEN_GROUPS* PTOKEN_GROUPS;
struct _TOKEN_PRIVILEGES {
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
}
alias _TOKEN_PRIVILEGES TOKEN_PRIVILEGES;
alias _TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES;
struct _TOKEN_OWNER {
PSID Owner;
}
alias _TOKEN_OWNER TOKEN_OWNER;
alias _TOKEN_OWNER* PTOKEN_OWNER;
struct _TOKEN_PRIMARY_GROUP {
PSID PrimaryGroup;
}
alias _TOKEN_PRIMARY_GROUP TOKEN_PRIMARY_GROUP;
alias _TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP;
struct _TOKEN_DEFAULT_DACL {
PACL DefaultDacl;
}
alias _TOKEN_DEFAULT_DACL TOKEN_DEFAULT_DACL;
alias _TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL;
struct _TOKEN_GROUPS_AND_PRIVILEGES {
DWORD SidCount;
DWORD SidLength;
PSID_AND_ATTRIBUTES Sids;
DWORD RestrictedSidCount;
DWORD RestrictedSidLength;
PSID_AND_ATTRIBUTES RestrictedSids;
DWORD PrivilegeCount;
DWORD PrivilegeLength;
PLUID_AND_ATTRIBUTES Privileges;
LUID AuthenticationId;
}
alias _TOKEN_GROUPS_AND_PRIVILEGES TOKEN_GROUPS_AND_PRIVILEGES;
alias _TOKEN_GROUPS_AND_PRIVILEGES* PTOKEN_GROUPS_AND_PRIVILEGES;
enum : uint { TOKEN_SOURCE_LENGTH = 8 }
struct _TOKEN_SOURCE {
CHAR SourceName[TOKEN_SOURCE_LENGTH];
LUID SourceIdentifier;
}
alias _TOKEN_SOURCE TOKEN_SOURCE;
alias _TOKEN_SOURCE* PTOKEN_SOURCE;
struct _TOKEN_STATISTICS {
LUID TokenId;
LUID AuthenticationId;
LARGE_INTEGER ExpirationTime;
TOKEN_TYPE TokenType;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
DWORD DynamicCharged;
DWORD DynamicAvailable;
DWORD GroupCount;
DWORD PrivilegeCount;
LUID ModifiedId;
}
alias _TOKEN_STATISTICS TOKEN_STATISTICS;
alias _TOKEN_STATISTICS* PTOKEN_STATISTICS;
struct _TOKEN_CONTROL {
LUID TokenId;
LUID AuthenticationId;
LUID ModifiedId;
TOKEN_SOURCE TokenSource;
}
alias _TOKEN_CONTROL TOKEN_CONTROL;
alias _TOKEN_CONTROL* PTOKEN_CONTROL;
enum : uint { SECURITY_DYNAMIC_TRACKING = TRUE }
enum : uint { SECURITY_STATIC_TRACKING = FALSE }
alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;
alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE;
struct _SECURITY_QUALITY_OF_SERVICE {
DWORD Length;
SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
BOOLEAN EffectiveOnly;
}
alias _SECURITY_QUALITY_OF_SERVICE SECURITY_QUALITY_OF_SERVICE;
alias _SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;
struct _SE_IMPERSONATION_STATE {
PACCESS_TOKEN Token;
BOOLEAN CopyOnOpen;
BOOLEAN EffectiveOnly;
SECURITY_IMPERSONATION_LEVEL Level;
}
alias _SE_IMPERSONATION_STATE SE_IMPERSONATION_STATE;
alias _SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE;
enum : uint { DISABLE_MAX_PRIVILEGE = 0x1 }
enum : uint { SANDBOX_INERT = 0x2 }
alias DWORD SECURITY_INFORMATION;
alias DWORD* PSECURITY_INFORMATION;
enum : uint { OWNER_SECURITY_INFORMATION = 0x00000001 }
enum : uint { GROUP_SECURITY_INFORMATION = 0x00000002 }
enum : uint { DACL_SECURITY_INFORMATION = 0x00000004 }
enum : uint { SACL_SECURITY_INFORMATION = 0x00000008 }
enum : uint { PROTECTED_DACL_SECURITY_INFORMATION = 0x80000000 }
enum : uint { PROTECTED_SACL_SECURITY_INFORMATION = 0x40000000 }
enum : uint { UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000 }
enum : uint { UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000 }
enum : uint { PROCESS_TERMINATE = 0x0001 }
enum : uint { PROCESS_CREATE_THREAD = 0x0002 }
enum : uint { PROCESS_SET_SESSIONID = 0x0004 }
enum : uint { PROCESS_VM_OPERATION = 0x0008 }
enum : uint { PROCESS_VM_READ = 0x0010 }
enum : uint { PROCESS_VM_WRITE = 0x0020 }
enum : uint { PROCESS_DUP_HANDLE = 0x0040 }
enum : uint { PROCESS_CREATE_PROCESS = 0x0080 }
enum : uint { PROCESS_SET_QUOTA = 0x0100 }
enum : uint { PROCESS_SET_INFORMATION = 0x0200 }
enum : uint { PROCESS_QUERY_INFORMATION = 0x0400 }
enum : uint { PROCESS_SUSPEND_RESUME = 0x0800 }
enum : uint { PROCESS_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0xFFF }
// #if defined(_WIN64)
// #...
// #else
enum : uint { MAXIMUM_PROCESSORS = 32 }
// #endif
enum : uint { THREAD_TERMINATE = 0x0001 }
enum : uint { THREAD_SUSPEND_RESUME = 0x0002 }
enum : uint { THREAD_GET_CONTEXT = 0x0008 }
enum : uint { THREAD_SET_CONTEXT = 0x0010 }
enum : uint { THREAD_SET_INFORMATION = 0x0020 }
enum : uint { THREAD_QUERY_INFORMATION = 0x0040 }
enum : uint { THREAD_SET_THREAD_TOKEN = 0x0080 }
enum : uint { THREAD_IMPERSONATE = 0x0100 }
enum : uint { THREAD_DIRECT_IMPERSONATION = 0x0200 }
enum : uint { THREAD_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x3FF }
enum : uint { JOB_OBJECT_ASSIGN_PROCESS = 0x0001 }
enum : uint { JOB_OBJECT_SET_ATTRIBUTES = 0x0002 }
enum : uint { JOB_OBJECT_QUERY = 0x0004 }
enum : uint { JOB_OBJECT_TERMINATE = 0x0008 }
enum : uint { JOB_OBJECT_SET_SECURITY_ATTRIBUTES = 0x0010 }
enum : uint { JOB_OBJECT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1F }
struct _JOB_SET_ARRAY {
HANDLE JobHandle;
DWORD MemberLevel;
DWORD Flags;
}
alias _JOB_SET_ARRAY JOB_SET_ARRAY;
alias _JOB_SET_ARRAY* PJOB_SET_ARRAY;
enum : uint { TLS_MINIMUM_AVAILABLE = 64 }
struct _NT_TIB {
_EXCEPTION_REGISTRATION_RECORD *ExceptionList;
PVOID StackBase;
PVOID StackLimit;
PVOID SubSystemTib;
union {
PVOID FiberData;
DWORD Version;
}
PVOID ArbitraryUserPointer;
_NT_TIB *Self;
}
alias _NT_TIB NT_TIB;
alias NT_TIB* PNT_TIB;
struct _NT_TIB32 {
DWORD ExceptionList;
DWORD StackBase;
DWORD StackLimit;
DWORD SubSystemTib;
union {
DWORD FiberData;
DWORD Version;
}
DWORD ArbitraryUserPointer;
DWORD Self;
}
alias _NT_TIB32 NT_TIB32;
alias _NT_TIB32* PNT_TIB32;
struct _NT_TIB64 {
DWORD64 ExceptionList;
DWORD64 StackBase;
DWORD64 StackLimit;
DWORD64 SubSystemTib;
union {
DWORD64 FiberData;
DWORD Version;
}
DWORD64 ArbitraryUserPointer;
DWORD64 Self;
}
alias _NT_TIB64 NT_TIB64;
alias _NT_TIB64* PNT_TIB64;
// #if !defined(_X86_) && !defined(_IA64_) && !defined(_AMD64_)
// #...
// #endif
enum : uint { THREAD_BASE_PRIORITY_LOWRT = 15 }
enum : uint { THREAD_BASE_PRIORITY_MAX = 2 }
enum { THREAD_BASE_PRIORITY_MIN = -2 }
enum { THREAD_BASE_PRIORITY_IDLE = -15 }
struct _QUOTA_LIMITS {
SIZE_T PagedPoolLimit;
SIZE_T NonPagedPoolLimit;
SIZE_T MinimumWorkingSetSize;
SIZE_T MaximumWorkingSetSize;
SIZE_T PagefileLimit;
LARGE_INTEGER TimeLimit;
}
alias _QUOTA_LIMITS QUOTA_LIMITS;
alias QUOTA_LIMITS* PQUOTA_LIMITS;
struct _IO_COUNTERS {
ULONGLONG ReadOperationCount;
ULONGLONG WriteOperationCount;
ULONGLONG OtherOperationCount;
ULONGLONG ReadTransferCount;
ULONGLONG WriteTransferCount;
ULONGLONG OtherTransferCount;
}
alias _IO_COUNTERS IO_COUNTERS;
alias IO_COUNTERS* PIO_COUNTERS;
struct _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
LARGE_INTEGER TotalUserTime;
LARGE_INTEGER TotalKernelTime;
LARGE_INTEGER ThisPeriodTotalUserTime;
LARGE_INTEGER ThisPeriodTotalKernelTime;
DWORD TotalPageFaultCount;
DWORD TotalProcesses;
DWORD ActiveProcesses;
DWORD TotalTerminatedProcesses;
}
alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
alias _JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
struct _JOBOBJECT_BASIC_LIMIT_INFORMATION {
LARGE_INTEGER PerProcessUserTimeLimit;
LARGE_INTEGER PerJobUserTimeLimit;
DWORD LimitFlags;
SIZE_T MinimumWorkingSetSize;
SIZE_T MaximumWorkingSetSize;
DWORD ActiveProcessLimit;
ULONG_PTR Affinity;
DWORD PriorityClass;
DWORD SchedulingClass;
}
alias _JOBOBJECT_BASIC_LIMIT_INFORMATION JOBOBJECT_BASIC_LIMIT_INFORMATION;
alias _JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION;
struct _JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation;
IO_COUNTERS IoInfo;
SIZE_T ProcessMemoryLimit;
SIZE_T JobMemoryLimit;
SIZE_T PeakProcessMemoryUsed;
SIZE_T PeakJobMemoryUsed;
}
alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION JOBOBJECT_EXTENDED_LIMIT_INFORMATION;
alias _JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION;
struct _JOBOBJECT_BASIC_PROCESS_ID_LIST {
DWORD NumberOfAssignedProcesses;
DWORD NumberOfProcessIdsInList;
ULONG_PTR ProcessIdList[1];
}
alias _JOBOBJECT_BASIC_PROCESS_ID_LIST JOBOBJECT_BASIC_PROCESS_ID_LIST;
alias _JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST;
struct _JOBOBJECT_BASIC_UI_RESTRICTIONS {
DWORD UIRestrictionsClass;
}
alias _JOBOBJECT_BASIC_UI_RESTRICTIONS JOBOBJECT_BASIC_UI_RESTRICTIONS;
alias _JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS;
struct _JOBOBJECT_SECURITY_LIMIT_INFORMATION {
DWORD SecurityLimitFlags ;
HANDLE JobToken ;
PTOKEN_GROUPS SidsToDisable ;
PTOKEN_PRIVILEGES PrivilegesToDelete ;
PTOKEN_GROUPS RestrictedSids ;
}
alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION JOBOBJECT_SECURITY_LIMIT_INFORMATION;
alias _JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATION;
struct _JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
DWORD EndOfJobTimeAction;
}
alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION JOBOBJECT_END_OF_JOB_TIME_INFORMATION;
alias _JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMATION;
struct _JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
PVOID CompletionKey;
HANDLE CompletionPort;
}
alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT JOBOBJECT_ASSOCIATE_COMPLETION_PORT;
alias _JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT;
struct _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo;
IO_COUNTERS IoInfo;
}
alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
alias _JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
struct _JOBOBJECT_JOBSET_INFORMATION {
DWORD MemberLevel;
}
alias _JOBOBJECT_JOBSET_INFORMATION JOBOBJECT_JOBSET_INFORMATION;
alias _JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION;
enum : uint { JOB_OBJECT_TERMINATE_AT_END_OF_JOB = 0 }
enum : uint { JOB_OBJECT_POST_AT_END_OF_JOB = 1 }
enum : uint { JOB_OBJECT_MSG_END_OF_JOB_TIME = 1 }
enum : uint { JOB_OBJECT_MSG_END_OF_PROCESS_TIME = 2 }
enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT = 3 }
enum : uint { JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO = 4 }
enum : uint { JOB_OBJECT_MSG_NEW_PROCESS = 6 }
enum : uint { JOB_OBJECT_MSG_EXIT_PROCESS = 7 }
enum : uint { JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS = 8 }
enum : uint { JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT = 9 }
enum : uint { JOB_OBJECT_MSG_JOB_MEMORY_LIMIT = 10 }
enum : uint { JOB_OBJECT_LIMIT_WORKINGSET = 0x00000001 }
enum : uint { JOB_OBJECT_LIMIT_PROCESS_TIME = 0x00000002 }
enum : uint { JOB_OBJECT_LIMIT_JOB_TIME = 0x00000004 }
enum : uint { JOB_OBJECT_LIMIT_ACTIVE_PROCESS = 0x00000008 }
enum : uint { JOB_OBJECT_LIMIT_AFFINITY = 0x00000010 }
enum : uint { JOB_OBJECT_LIMIT_PRIORITY_CLASS = 0x00000020 }
enum : uint { JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME = 0x00000040 }
enum : uint { JOB_OBJECT_LIMIT_SCHEDULING_CLASS = 0x00000080 }
enum : uint { JOB_OBJECT_LIMIT_PROCESS_MEMORY = 0x00000100 }
enum : uint { JOB_OBJECT_LIMIT_JOB_MEMORY = 0x00000200 }
enum : uint { JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x00000400 }
enum : uint { JOB_OBJECT_LIMIT_BREAKAWAY_OK = 0x00000800 }
enum : uint { JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK = 0x00001000 }
enum : uint { JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE = 0x00002000 }
enum : uint { JOB_OBJECT_LIMIT_RESERVED2 = 0x00004000 }
enum : uint { JOB_OBJECT_LIMIT_RESERVED3 = 0x00008000 }
enum : uint { JOB_OBJECT_LIMIT_RESERVED4 = 0x00010000 }
enum : uint { JOB_OBJECT_LIMIT_RESERVED5 = 0x00020000 }
enum : uint { JOB_OBJECT_LIMIT_RESERVED6 = 0x00040000 }
enum : uint { JOB_OBJECT_LIMIT_VALID_FLAGS = 0x0007ffff }
enum : uint { JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS = 0x000000ff }
enum : uint { JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS = 0x00003fff }
enum : uint { JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS = 0x0007ffff }
enum : uint { JOB_OBJECT_UILIMIT_NONE = 0x00000000 }
enum : uint { JOB_OBJECT_UILIMIT_HANDLES = 0x00000001 }
enum : uint { JOB_OBJECT_UILIMIT_READCLIPBOARD = 0x00000002 }
enum : uint { JOB_OBJECT_UILIMIT_WRITECLIPBOARD = 0x00000004 }
enum : uint { JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x00000008 }
enum : uint { JOB_OBJECT_UILIMIT_DISPLAYSETTINGS = 0x00000010 }
enum : uint { JOB_OBJECT_UILIMIT_GLOBALATOMS = 0x00000020 }
enum : uint { JOB_OBJECT_UILIMIT_DESKTOP = 0x00000040 }
enum : uint { JOB_OBJECT_UILIMIT_EXITWINDOWS = 0x00000080 }
enum : uint { JOB_OBJECT_UILIMIT_ALL = 0x000000FF }
enum : uint { JOB_OBJECT_UI_VALID_FLAGS = 0x000000FF }
enum : uint { JOB_OBJECT_SECURITY_NO_ADMIN = 0x00000001 }
enum : uint { JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x00000002 }
enum : uint { JOB_OBJECT_SECURITY_ONLY_TOKEN = 0x00000004 }
enum : uint { JOB_OBJECT_SECURITY_FILTER_TOKENS = 0x00000008 }
enum : uint { JOB_OBJECT_SECURITY_VALID_FLAGS = 0x0000000f }
alias int _JOBOBJECTINFOCLASS;
enum {
JobObjectBasicAccountingInformation = 1,
JobObjectBasicLimitInformation,
JobObjectBasicProcessIdList,
JobObjectBasicUIRestrictions,
JobObjectSecurityLimitInformation,
JobObjectEndOfJobTimeInformation,
JobObjectAssociateCompletionPortInformation,
JobObjectBasicAndIoAccountingInformation,
JobObjectExtendedLimitInformation,
JobObjectJobSetInformation,
MaxJobObjectInfoClass,
}
alias _JOBOBJECTINFOCLASS JOBOBJECTINFOCLASS;
enum : uint { EVENT_MODIFY_STATE = 0x0002 }
enum : uint { EVENT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 }
enum : uint { MUTANT_QUERY_STATE = 0x0001 }
enum : uint { MUTANT_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| MUTANT_QUERY_STATE }
enum : uint { SEMAPHORE_MODIFY_STATE = 0x0002 }
enum : uint { SEMAPHORE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 }
enum : uint { TIMER_QUERY_STATE = 0x0001 }
enum : uint { TIMER_MODIFY_STATE = 0x0002 }
enum : uint { TIMER_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE| TIMER_QUERY_STATE|TIMER_MODIFY_STATE }
enum : uint { TIME_ZONE_ID_UNKNOWN = 0 }
enum : uint { TIME_ZONE_ID_STANDARD = 1 }
enum : uint { TIME_ZONE_ID_DAYLIGHT = 2 }
enum : uint { MAXIMUM_NUMA_NODES = 16 }
struct _SYSTEM_NUMA_INFORMATION {
DWORD HighestNodeNumber;
DWORD Reserved;
union {
ULONGLONG ActiveProcessorsAffinityMask[MAXIMUM_NUMA_NODES];
ULONGLONG AvailableMemory[MAXIMUM_NUMA_NODES];
}
}
alias _SYSTEM_NUMA_INFORMATION SYSTEM_NUMA_INFORMATION;
alias _SYSTEM_NUMA_INFORMATION* PSYSTEM_NUMA_INFORMATION;
enum : uint { PROCESSOR_INTEL_386 = 386 }
enum : uint { PROCESSOR_INTEL_486 = 486 }
enum : uint { PROCESSOR_INTEL_PENTIUM = 586 }
enum : uint { PROCESSOR_INTEL_IA64 = 2200 }
enum : uint { PROCESSOR_MIPS_R4000 = 4000 }
enum : uint { PROCESSOR_ALPHA_21064 = 21064 }
enum : uint { PROCESSOR_PPC_601 = 601 }
enum : uint { PROCESSOR_PPC_603 = 603 }
enum : uint { PROCESSOR_PPC_604 = 604 }
enum : uint { PROCESSOR_PPC_620 = 620 }
enum : uint { PROCESSOR_HITACHI_SH3 = 10003 }
enum : uint { PROCESSOR_HITACHI_SH3E = 10004 }
enum : uint { PROCESSOR_HITACHI_SH4 = 10005 }
enum : uint { PROCESSOR_MOTOROLA_821 = 821 }
enum : uint { PROCESSOR_SHx_SH3 = 103 }
enum : uint { PROCESSOR_SHx_SH4 = 104 }
enum : uint { PROCESSOR_STRONGARM = 2577 }
enum : uint { PROCESSOR_ARM720 = 1824 }
enum : uint { PROCESSOR_ARM820 = 2080 }
enum : uint { PROCESSOR_ARM920 = 2336 }
enum : uint { PROCESSOR_ARM_7TDMI = 70001 }
enum : uint { PROCESSOR_OPTIL = 0x494f }
enum : uint { PROCESSOR_ARCHITECTURE_INTEL = 0 }
enum : uint { PROCESSOR_ARCHITECTURE_MIPS = 1 }
enum : uint { PROCESSOR_ARCHITECTURE_ALPHA = 2 }
enum : uint { PROCESSOR_ARCHITECTURE_PPC = 3 }
enum : uint { PROCESSOR_ARCHITECTURE_SHX = 4 }
enum : uint { PROCESSOR_ARCHITECTURE_ARM = 5 }
enum : uint { PROCESSOR_ARCHITECTURE_IA64 = 6 }
enum : uint { PROCESSOR_ARCHITECTURE_ALPHA64 = 7 }
enum : uint { PROCESSOR_ARCHITECTURE_MSIL = 8 }
enum : uint { PROCESSOR_ARCHITECTURE_AMD64 = 9 }
enum : uint { PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 = 10 }
enum : uint { PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF }
enum : uint { PF_FLOATING_POINT_PRECISION_ERRATA = 0 }
enum : uint { PF_FLOATING_POINT_EMULATED = 1 }
enum : uint { PF_COMPARE_EXCHANGE_DOUBLE = 2 }
enum : uint { PF_MMX_INSTRUCTIONS_AVAILABLE = 3 }
enum : uint { PF_PPC_MOVEMEM_64BIT_OK = 4 }
enum : uint { PF_ALPHA_BYTE_INSTRUCTIONS = 5 }
enum : uint { PF_XMMI_INSTRUCTIONS_AVAILABLE = 6 }
enum : uint { PF_3DNOW_INSTRUCTIONS_AVAILABLE = 7 }
enum : uint { PF_RDTSC_INSTRUCTION_AVAILABLE = 8 }
enum : uint { PF_PAE_ENABLED = 9 }
enum : uint { PF_XMMI64_INSTRUCTIONS_AVAILABLE = 10 }
struct _MEMORY_BASIC_INFORMATION {
PVOID BaseAddress;
PVOID AllocationBase;
DWORD AllocationProtect;
SIZE_T RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
}
alias _MEMORY_BASIC_INFORMATION MEMORY_BASIC_INFORMATION;
alias _MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION;
struct _MEMORY_BASIC_INFORMATION32 {
DWORD BaseAddress;
DWORD AllocationBase;
DWORD AllocationProtect;
DWORD RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
}
alias _MEMORY_BASIC_INFORMATION32 MEMORY_BASIC_INFORMATION32;
alias _MEMORY_BASIC_INFORMATION32* PMEMORY_BASIC_INFORMATION32;
struct _MEMORY_BASIC_INFORMATION64 {
ULONGLONG BaseAddress;
ULONGLONG AllocationBase;
DWORD AllocationProtect;
DWORD __alignment1;
ULONGLONG RegionSize;
DWORD State;
DWORD Protect;
DWORD Type;
DWORD __alignment2;
}
alias _MEMORY_BASIC_INFORMATION64 MEMORY_BASIC_INFORMATION64;
alias _MEMORY_BASIC_INFORMATION64* PMEMORY_BASIC_INFORMATION64;
enum : uint { SECTION_QUERY = 0x0001 }
enum : uint { SECTION_MAP_WRITE = 0x0002 }
enum : uint { SECTION_MAP_READ = 0x0004 }
enum : uint { SECTION_MAP_EXECUTE = 0x0008 }
enum : uint { SECTION_EXTEND_SIZE = 0x0010 }
enum : uint { SECTION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SECTION_QUERY| SECTION_MAP_WRITE | SECTION_MAP_READ | SECTION_MAP_EXECUTE | SECTION_EXTEND_SIZE }
enum : uint { PAGE_NOACCESS = 0x01 }
enum : uint { PAGE_READONLY = 0x02 }
enum : uint { PAGE_READWRITE = 0x04 }
enum : uint { PAGE_WRITECOPY = 0x08 }
enum : uint { PAGE_EXECUTE = 0x10 }
enum : uint { PAGE_EXECUTE_READ = 0x20 }
enum : uint { PAGE_EXECUTE_READWRITE = 0x40 }
enum : uint { PAGE_EXECUTE_WRITECOPY = 0x80 }
enum : uint { PAGE_GUARD = 0x100 }
enum : uint { PAGE_NOCACHE = 0x200 }
enum : uint { PAGE_WRITECOMBINE = 0x400 }
enum : uint { MEM_COMMIT = 0x1000 }
enum : uint { MEM_RESERVE = 0x2000 }
enum : uint { MEM_DECOMMIT = 0x4000 }
enum : uint { MEM_RELEASE = 0x8000 }
enum : uint { MEM_FREE = 0x10000 }
enum : uint { MEM_PRIVATE = 0x20000 }
enum : uint { MEM_MAPPED = 0x40000 }
enum : uint { MEM_RESET = 0x80000 }
enum : uint { MEM_TOP_DOWN = 0x100000 }
enum : uint { MEM_WRITE_WATCH = 0x200000 }
enum : uint { MEM_PHYSICAL = 0x400000 }
enum : uint { MEM_4MB_PAGES = 0x80000000 }
enum : uint { SEC_FILE = 0x800000 }
enum : uint { SEC_IMAGE = 0x1000000 }
enum : uint { SEC_RESERVE = 0x4000000 }
enum : uint { SEC_COMMIT = 0x8000000 }
enum : uint { SEC_NOCACHE = 0x10000000 }
alias SEC_IMAGE MEM_IMAGE;
enum : uint { WRITE_WATCH_FLAG_RESET = 0x01 }
enum : uint { FILE_READ_DATA = 0x0001 }
enum : uint { FILE_LIST_DIRECTORY = 0x0001 }
enum : uint { FILE_WRITE_DATA = 0x0002 }
enum : uint { FILE_ADD_FILE = 0x0002 }
enum : uint { FILE_APPEND_DATA = 0x0004 }
enum : uint { FILE_ADD_SUBDIRECTORY = 0x0004 }
enum : uint { FILE_CREATE_PIPE_INSTANCE = 0x0004 }
enum : uint { FILE_READ_EA = 0x0008 }
enum : uint { FILE_WRITE_EA = 0x0010 }
enum : uint { FILE_EXECUTE = 0x0020 }
enum : uint { FILE_TRAVERSE = 0x0020 }
enum : uint { FILE_DELETE_CHILD = 0x0040 }
enum : uint { FILE_READ_ATTRIBUTES = 0x0080 }
enum : uint { FILE_WRITE_ATTRIBUTES = 0x0100 }
enum : uint { FILE_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF }
enum : uint { FILE_GENERIC_READ = STANDARD_RIGHTS_READ | FILE_READ_DATA | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE }
enum : uint { FILE_GENERIC_WRITE = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA | SYNCHRONIZE }
enum : uint { FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES | FILE_EXECUTE | SYNCHRONIZE }
enum : uint { FILE_SHARE_READ = 0x00000001 }
enum : uint { FILE_SHARE_WRITE = 0x00000002 }
enum : uint { FILE_SHARE_DELETE = 0x00000004 }
enum : uint { FILE_ATTRIBUTE_READONLY = 0x00000001 }
enum : uint { FILE_ATTRIBUTE_HIDDEN = 0x00000002 }
enum : uint { FILE_ATTRIBUTE_SYSTEM = 0x00000004 }
enum : uint { FILE_ATTRIBUTE_DIRECTORY = 0x00000010 }
enum : uint { FILE_ATTRIBUTE_ARCHIVE = 0x00000020 }
enum : uint { FILE_ATTRIBUTE_DEVICE = 0x00000040 }
enum : uint { FILE_ATTRIBUTE_NORMAL = 0x00000080 }
enum : uint { FILE_ATTRIBUTE_TEMPORARY = 0x00000100 }
enum : uint { FILE_ATTRIBUTE_SPARSE_FILE = 0x00000200 }
enum : uint { FILE_ATTRIBUTE_REPARSE_POINT = 0x00000400 }
enum : uint { FILE_ATTRIBUTE_COMPRESSED = 0x00000800 }
enum : uint { FILE_ATTRIBUTE_OFFLINE = 0x00001000 }
enum : uint { FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000 }
enum : uint { FILE_ATTRIBUTE_ENCRYPTED = 0x00004000 }
enum : uint { FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001 }
enum : uint { FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002 }
enum : uint { FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004 }
enum : uint { FILE_NOTIFY_CHANGE_SIZE = 0x00000008 }
enum : uint { FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010 }
enum : uint { FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020 }
enum : uint { FILE_NOTIFY_CHANGE_CREATION = 0x00000040 }
enum : uint { FILE_NOTIFY_CHANGE_SECURITY = 0x00000100 }
enum : uint { FILE_ACTION_ADDED = 0x00000001 }
enum : uint { FILE_ACTION_REMOVED = 0x00000002 }
enum : uint { FILE_ACTION_MODIFIED = 0x00000003 }
enum : uint { FILE_ACTION_RENAMED_OLD_NAME = 0x00000004 }
enum : uint { FILE_ACTION_RENAMED_NEW_NAME = 0x00000005 }
enum : DWORD { MAILSLOT_NO_MESSAGE = cast(DWORD)-1 }
enum : DWORD { MAILSLOT_WAIT_FOREVER = cast(DWORD)-1 }
enum : uint { FILE_CASE_SENSITIVE_SEARCH = 0x00000001 }
enum : uint { FILE_CASE_PRESERVED_NAMES = 0x00000002 }
enum : uint { FILE_UNICODE_ON_DISK = 0x00000004 }
enum : uint { FILE_PERSISTENT_ACLS = 0x00000008 }
enum : uint { FILE_FILE_COMPRESSION = 0x00000010 }
enum : uint { FILE_VOLUME_QUOTAS = 0x00000020 }
enum : uint { FILE_SUPPORTS_SPARSE_FILES = 0x00000040 }
enum : uint { FILE_SUPPORTS_REPARSE_POINTS = 0x00000080 }
enum : uint { FILE_SUPPORTS_REMOTE_STORAGE = 0x00000100 }
enum : uint { FILE_VOLUME_IS_COMPRESSED = 0x00008000 }
enum : uint { FILE_SUPPORTS_OBJECT_IDS = 0x00010000 }
enum : uint { FILE_SUPPORTS_ENCRYPTION = 0x00020000 }
enum : uint { FILE_NAMED_STREAMS = 0x00040000 }
enum : uint { FILE_READ_ONLY_VOLUME = 0x00080000 }
struct _FILE_NOTIFY_INFORMATION {
DWORD NextEntryOffset;
DWORD Action;
DWORD FileNameLength;
WCHAR FileName[1];
}
alias _FILE_NOTIFY_INFORMATION FILE_NOTIFY_INFORMATION;
alias _FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION;
union _FILE_SEGMENT_ELEMENT {
PVOID64 Buffer;
ULONGLONG Alignment;
}
alias _FILE_SEGMENT_ELEMENT FILE_SEGMENT_ELEMENT;
alias _FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT;
struct _REPARSE_GUID_DATA_BUFFER {
DWORD ReparseTag;
WORD ReparseDataLength;
WORD Reserved;
GUID ReparseGuid;
struct {
BYTE DataBuffer[1];
}
}
alias _REPARSE_GUID_DATA_BUFFER REPARSE_GUID_DATA_BUFFER;
alias _REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER;
// #define REPARSE_GUID_DATA_BUFFER_HEADER_SIZE FIELD_OFFSET(REPARSE_GUID_DATA_BUFFER, GenericReparseBuffer)
enum : uint { MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16 * 1024 }
enum : uint { IO_REPARSE_TAG_RESERVED_ZERO = 0 }
enum : uint { IO_REPARSE_TAG_RESERVED_ONE = 1 }
alias IO_REPARSE_TAG_RESERVED_ONE IO_REPARSE_TAG_RESERVED_RANGE;
// #define IsReparseTagMicrosoft(_tag) ( ((_tag) & 0x80000000) )
// #define IsReparseTagNameSurrogate(_tag) ( ((_tag) & 0x20000000) )
enum : uint { IO_REPARSE_TAG_MOUNT_POINT = 0xA0000003 }
enum : uint { IO_REPARSE_TAG_HSM = 0xC0000004 }
enum : uint { IO_REPARSE_TAG_SIS = 0x80000007 }
enum : uint { IO_REPARSE_TAG_FILTER_MANAGER = 0x8000000B }
enum : uint { IO_COMPLETION_MODIFY_STATE = 0x0002 }
enum : uint { IO_COMPLETION_ALL_ACCESS = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3 }
enum : uint { DUPLICATE_CLOSE_SOURCE = 0x00000001 }
enum : uint { DUPLICATE_SAME_ACCESS = 0x00000002 }
alias int _SYSTEM_POWER_STATE;
enum {
PowerSystemUnspecified = 0,
PowerSystemWorking = 1,
PowerSystemSleeping1 = 2,
PowerSystemSleeping2 = 3,
PowerSystemSleeping3 = 4,
PowerSystemHibernate = 5,
PowerSystemShutdown = 6,
PowerSystemMaximum = 7,
}
alias _SYSTEM_POWER_STATE SYSTEM_POWER_STATE;
alias _SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE;
enum : uint { POWER_SYSTEM_MAXIMUM = 7 }
enum _4 {
PowerActionNone = 0,
PowerActionReserved,
PowerActionSleep,
PowerActionHibernate,
PowerActionShutdown,
PowerActionShutdownReset,
PowerActionShutdownOff,
PowerActionWarmEject,
}
alias _4 POWER_ACTION;
alias _4* PPOWER_ACTION;
alias int _DEVICE_POWER_STATE;
enum {
PowerDeviceUnspecified = 0,
PowerDeviceD0,
PowerDeviceD1,
PowerDeviceD2,
PowerDeviceD3,
PowerDeviceMaximum,
}
alias _DEVICE_POWER_STATE DEVICE_POWER_STATE;
alias _DEVICE_POWER_STATE* PDEVICE_POWER_STATE;
enum : DWORD { ES_SYSTEM_REQUIRED = 0x00000001 }
enum : DWORD { ES_DISPLAY_REQUIRED = 0x00000002 }
enum : DWORD { ES_USER_PRESENT = 0x00000004 }
enum : DWORD { ES_CONTINUOUS = 0x80000000 }
alias DWORD EXECUTION_STATE;
enum _5 {
LT_DONT_CARE,
LT_LOWEST_LATENCY,
}
alias _5 LATENCY_TIME;
enum : uint { PDCAP_D0_SUPPORTED = 0x00000001 }
enum : uint { PDCAP_D1_SUPPORTED = 0x00000002 }
enum : uint { PDCAP_D2_SUPPORTED = 0x00000004 }
enum : uint { PDCAP_D3_SUPPORTED = 0x00000008 }
enum : uint { PDCAP_WAKE_FROM_D0_SUPPORTED = 0x00000010 }
enum : uint { PDCAP_WAKE_FROM_D1_SUPPORTED = 0x00000020 }
enum : uint { PDCAP_WAKE_FROM_D2_SUPPORTED = 0x00000040 }
enum : uint { PDCAP_WAKE_FROM_D3_SUPPORTED = 0x00000080 }
enum : uint { PDCAP_WARM_EJECT_SUPPORTED = 0x00000100 }
struct CM_Power_Data_s {
DWORD PD_Size;
DEVICE_POWER_STATE PD_MostRecentPowerState;
DWORD PD_Capabilities;
DWORD PD_D1Latency;
DWORD PD_D2Latency;
DWORD PD_D3Latency;
DEVICE_POWER_STATE PD_PowerStateMapping[POWER_SYSTEM_MAXIMUM];
SYSTEM_POWER_STATE PD_DeepestSystemWake;
}
alias CM_Power_Data_s CM_POWER_DATA;
alias CM_Power_Data_s* PCM_POWER_DATA;
enum _6 {
SystemPowerPolicyAc,
SystemPowerPolicyDc,
VerifySystemPolicyAc,
VerifySystemPolicyDc,
SystemPowerCapabilities,
SystemBatteryState,
SystemPowerStateHandler,
ProcessorStateHandler,
SystemPowerPolicyCurrent,
AdministratorPowerPolicy,
SystemReserveHiberFile,
ProcessorInformation,
SystemPowerInformation,
ProcessorStateHandler2,
LastWakeTime,
LastSleepTime,
SystemExecutionState,
SystemPowerStateNotifyHandler,
ProcessorPowerPolicyAc,
ProcessorPowerPolicyDc,
VerifyProcessorPowerPolicyAc,
VerifyProcessorPowerPolicyDc,
ProcessorPowerPolicyCurrent,
}
alias _6 POWER_INFORMATION_LEVEL;
struct _7 {
DWORD Granularity;
DWORD Capacity;
}
alias _7 BATTERY_REPORTING_SCALE;
alias _7* PBATTERY_REPORTING_SCALE;
struct _8 {
POWER_ACTION Action;
DWORD Flags;
DWORD EventCode;
}
alias _8 POWER_ACTION_POLICY;
alias _8* PPOWER_ACTION_POLICY;
enum : uint { POWER_ACTION_QUERY_ALLOWED = 0x00000001 }
enum : uint { POWER_ACTION_UI_ALLOWED = 0x00000002 }
enum : uint { POWER_ACTION_OVERRIDE_APPS = 0x00000004 }
enum : uint { POWER_ACTION_LIGHTEST_FIRST = 0x10000000 }
enum : uint { POWER_ACTION_LOCK_CONSOLE = 0x20000000 }
enum : uint { POWER_ACTION_DISABLE_WAKES = 0x40000000 }
enum : uint { POWER_ACTION_CRITICAL = 0x80000000 }
enum : uint { POWER_LEVEL_USER_NOTIFY_TEXT = 0x00000001 }
enum : uint { POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002 }
enum : uint { POWER_LEVEL_USER_NOTIFY_EXEC = 0x00000004 }
enum : uint { POWER_USER_NOTIFY_BUTTON = 0x00000008 }
enum : uint { POWER_USER_NOTIFY_SHUTDOWN = 0x00000010 }
enum : uint { POWER_FORCE_TRIGGER_RESET = 0x80000000 }
struct _9 {
BOOLEAN Enable;
BYTE Spare[3];
DWORD BatteryLevel;
POWER_ACTION_POLICY PowerPolicy;
SYSTEM_POWER_STATE MinSystemState;
}
alias _9 SYSTEM_POWER_LEVEL;
alias _9* PSYSTEM_POWER_LEVEL;
enum : uint { NUM_DISCHARGE_POLICIES = 4 }
enum : uint { DISCHARGE_POLICY_CRITICAL = 0 }
enum : uint { DISCHARGE_POLICY_LOW = 1 }
enum : uint { PO_THROTTLE_NONE = 0 }
enum : uint { PO_THROTTLE_CONSTANT = 1 }
enum : uint { PO_THROTTLE_DEGRADE = 2 }
enum : uint { PO_THROTTLE_ADAPTIVE = 3 }
enum : uint { PO_THROTTLE_MAXIMUM = 4 }
struct _SYSTEM_POWER_POLICY {
DWORD Revision;
POWER_ACTION_POLICY PowerButton;
POWER_ACTION_POLICY SleepButton;
POWER_ACTION_POLICY LidClose;
SYSTEM_POWER_STATE LidOpenWake;
DWORD Reserved;
POWER_ACTION_POLICY Idle;
DWORD IdleTimeout;
BYTE IdleSensitivity;
BYTE DynamicThrottle;
BYTE Spare2[2];
SYSTEM_POWER_STATE MinSleep;
SYSTEM_POWER_STATE MaxSleep;
SYSTEM_POWER_STATE ReducedLatencySleep;
DWORD WinLogonFlags;
DWORD Spare3;
DWORD DozeS4Timeout;
DWORD BroadcastCapacityResolution;
SYSTEM_POWER_LEVEL DischargePolicy[NUM_DISCHARGE_POLICIES];
DWORD VideoTimeout;
BOOLEAN VideoDimDisplay;
DWORD VideoReserved[3];
DWORD SpindownTimeout;
BOOLEAN OptimizeForPower;
BYTE FanThrottleTolerance;
BYTE ForcedThrottle;
BYTE MinThrottle;
POWER_ACTION_POLICY OverThrottled;
}
alias _SYSTEM_POWER_POLICY SYSTEM_POWER_POLICY;
alias _SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY;
struct _PROCESSOR_POWER_POLICY_INFO {
DWORD TimeCheck;
DWORD DemoteLimit;
DWORD PromoteLimit;
BYTE DemotePercent;
BYTE PromotePercent;
BYTE Spare[2];
// DWORD AllowDemotion:1;
// DWORD AllowPromotion:1;
// DWORD Reserved:30;
}
alias _PROCESSOR_POWER_POLICY_INFO PROCESSOR_POWER_POLICY_INFO;
alias _PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO;
struct _PROCESSOR_POWER_POLICY {
DWORD Revision;
BYTE DynamicThrottle;
BYTE Spare[3];
DWORD Reserved;
DWORD PolicyCount;
PROCESSOR_POWER_POLICY_INFO Policy[3];
}
alias _PROCESSOR_POWER_POLICY PROCESSOR_POWER_POLICY;
alias _PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY;
struct _ADMINISTRATOR_POWER_POLICY {
SYSTEM_POWER_STATE MinSleep;
SYSTEM_POWER_STATE MaxSleep;
DWORD MinVideoTimeout;
DWORD MaxVideoTimeout;
DWORD MinSpindownTimeout;
DWORD MaxSpindownTimeout;
}
alias _ADMINISTRATOR_POWER_POLICY ADMINISTRATOR_POWER_POLICY;
alias _ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY;
struct _10 {
BOOLEAN PowerButtonPresent;
BOOLEAN SleepButtonPresent;
BOOLEAN LidPresent;
BOOLEAN SystemS1;
BOOLEAN SystemS2;
BOOLEAN SystemS3;
BOOLEAN SystemS4;
BOOLEAN SystemS5;
BOOLEAN HiberFilePresent;
BOOLEAN FullWake;
BOOLEAN VideoDimPresent;
BOOLEAN ApmPresent;
BOOLEAN UpsPresent;
BOOLEAN ThermalControl;
BOOLEAN ProcessorThrottle;
BYTE ProcessorMinThrottle;
BYTE ProcessorMaxThrottle;
BYTE spare2[4];
BOOLEAN DiskSpinDown;
BYTE spare3[8];
BOOLEAN SystemBatteriesPresent;
BOOLEAN BatteriesAreShortTerm;
BATTERY_REPORTING_SCALE BatteryScale[3];
SYSTEM_POWER_STATE AcOnLineWake;
SYSTEM_POWER_STATE SoftLidWake;
SYSTEM_POWER_STATE RtcWake;
SYSTEM_POWER_STATE MinDeviceWakeState;
SYSTEM_POWER_STATE DefaultLowLatencyWake;
}
alias _10 SYSTEM_POWER_CAPABILITIES;
alias _10* PSYSTEM_POWER_CAPABILITIES;
struct _11 {
BOOLEAN AcOnLine;
BOOLEAN BatteryPresent;
BOOLEAN Charging;
BOOLEAN Discharging;
BOOLEAN Spare1[4];
DWORD MaxCapacity;
DWORD RemainingCapacity;
DWORD Rate;
DWORD EstimatedTime;
DWORD DefaultAlert1;
DWORD DefaultAlert2;
}
alias _11 SYSTEM_BATTERY_STATE;
alias _11* PSYSTEM_BATTERY_STATE;
// #ifndef _MAC
align(4):
enum : uint { IMAGE_DOS_SIGNATURE = 0x5A4D }
enum : uint { IMAGE_OS2_SIGNATURE = 0x454E }
enum : uint { IMAGE_OS2_SIGNATURE_LE = 0x454C }
enum : uint { IMAGE_VXD_SIGNATURE = 0x454C }
enum : uint { IMAGE_NT_SIGNATURE = 0x00004550 }
align(2):
// #else
// #...
// #...
// #...
// #...
// #...
// #endif
struct _IMAGE_DOS_HEADER {
WORD e_magic;
WORD e_cblp;
WORD e_cp;
WORD e_crlc;
WORD e_cparhdr;
WORD e_minalloc;
WORD e_maxalloc;
WORD e_ss;
WORD e_sp;
WORD e_csum;
WORD e_ip;
WORD e_cs;
WORD e_lfarlc;
WORD e_ovno;
WORD e_res[4];
WORD e_oemid;
WORD e_oeminfo;
WORD e_res2[10];
LONG e_lfanew;
}
alias _IMAGE_DOS_HEADER IMAGE_DOS_HEADER;
alias _IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER;
struct _IMAGE_OS2_HEADER {
WORD ne_magic;
CHAR ne_ver;
CHAR ne_rev;
WORD ne_enttab;
WORD ne_cbenttab;
LONG ne_crc;
WORD ne_flags;
WORD ne_autodata;
WORD ne_heap;
WORD ne_stack;
LONG ne_csip;
LONG ne_sssp;
WORD ne_cseg;
WORD ne_cmod;
WORD ne_cbnrestab;
WORD ne_segtab;
WORD ne_rsrctab;
WORD ne_restab;
WORD ne_modtab;
WORD ne_imptab;
LONG ne_nrestab;
WORD ne_cmovent;
WORD ne_align;
WORD ne_cres;
BYTE ne_exetyp;
BYTE ne_flagsothers;
WORD ne_pretthunks;
WORD ne_psegrefbytes;
WORD ne_swaparea;
WORD ne_expver;
}
alias _IMAGE_OS2_HEADER IMAGE_OS2_HEADER;
alias _IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER;
struct _IMAGE_VXD_HEADER {
WORD e32_magic;
BYTE e32_border;
BYTE e32_worder;
DWORD e32_level;
WORD e32_cpu;
WORD e32_os;
DWORD e32_ver;
DWORD e32_mflags;
DWORD e32_mpages;
DWORD e32_startobj;
DWORD e32_eip;
DWORD e32_stackobj;
DWORD e32_esp;
DWORD e32_pagesize;
DWORD e32_lastpagesize;
DWORD e32_fixupsize;
DWORD e32_fixupsum;
DWORD e32_ldrsize;
DWORD e32_ldrsum;
DWORD e32_objtab;
DWORD e32_objcnt;
DWORD e32_objmap;
DWORD e32_itermap;
DWORD e32_rsrctab;
DWORD e32_rsrccnt;
DWORD e32_restab;
DWORD e32_enttab;
DWORD e32_dirtab;
DWORD e32_dircnt;
DWORD e32_fpagetab;
DWORD e32_frectab;
DWORD e32_impmod;
DWORD e32_impmodcnt;
DWORD e32_impproc;
DWORD e32_pagesum;
DWORD e32_datapage;
DWORD e32_preload;
DWORD e32_nrestab;
DWORD e32_cbnrestab;
DWORD e32_nressum;
DWORD e32_autodata;
DWORD e32_debuginfo;
DWORD e32_debuglen;
DWORD e32_instpreload;
DWORD e32_instdemand;
DWORD e32_heapsize;
BYTE e32_res3[12];
DWORD e32_winresoff;
DWORD e32_winreslen;
WORD e32_devid;
WORD e32_ddkver;
}
alias _IMAGE_VXD_HEADER IMAGE_VXD_HEADER;
alias _IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER;
// #ifndef _MAC
align:
// #endif
struct _IMAGE_FILE_HEADER {
WORD Machine;
WORD NumberOfSections;
DWORD TimeDateStamp;
DWORD PointerToSymbolTable;
DWORD NumberOfSymbols;
WORD SizeOfOptionalHeader;
WORD Characteristics;
}
alias _IMAGE_FILE_HEADER IMAGE_FILE_HEADER;
alias _IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER;
enum : uint { IMAGE_SIZEOF_FILE_HEADER = 20 }
enum : uint { IMAGE_FILE_RELOCS_STRIPPED = 0x0001 }
enum : uint { IMAGE_FILE_EXECUTABLE_IMAGE = 0x0002 }
enum : uint { IMAGE_FILE_LINE_NUMS_STRIPPED = 0x0004 }
enum : uint { IMAGE_FILE_LOCAL_SYMS_STRIPPED = 0x0008 }
enum : uint { IMAGE_FILE_AGGRESIVE_WS_TRIM = 0x0010 }
enum : uint { IMAGE_FILE_LARGE_ADDRESS_AWARE = 0x0020 }
enum : uint { IMAGE_FILE_BYTES_REVERSED_LO = 0x0080 }
enum : uint { IMAGE_FILE_32BIT_MACHINE = 0x0100 }
enum : uint { IMAGE_FILE_DEBUG_STRIPPED = 0x0200 }
enum : uint { IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400 }
enum : uint { IMAGE_FILE_NET_RUN_FROM_SWAP = 0x0800 }
enum : uint { IMAGE_FILE_SYSTEM = 0x1000 }
enum : uint { IMAGE_FILE_DLL = 0x2000 }
enum : uint { IMAGE_FILE_UP_SYSTEM_ONLY = 0x4000 }
enum : uint { IMAGE_FILE_BYTES_REVERSED_HI = 0x8000 }
enum : uint { IMAGE_FILE_MACHINE_UNKNOWN = 0 }
enum : uint { IMAGE_FILE_MACHINE_I386 = 0x014c }
enum : uint { IMAGE_FILE_MACHINE_R3000 = 0x0162 }
enum : uint { IMAGE_FILE_MACHINE_R4000 = 0x0166 }
enum : uint { IMAGE_FILE_MACHINE_R10000 = 0x0168 }
enum : uint { IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169 }
enum : uint { IMAGE_FILE_MACHINE_ALPHA = 0x0184 }
enum : uint { IMAGE_FILE_MACHINE_SH3 = 0x01a2 }
enum : uint { IMAGE_FILE_MACHINE_SH3DSP = 0x01a3 }
enum : uint { IMAGE_FILE_MACHINE_SH3E = 0x01a4 }
enum : uint { IMAGE_FILE_MACHINE_SH4 = 0x01a6 }
enum : uint { IMAGE_FILE_MACHINE_SH5 = 0x01a8 }
enum : uint { IMAGE_FILE_MACHINE_ARM = 0x01c0 }
enum : uint { IMAGE_FILE_MACHINE_THUMB = 0x01c2 }
enum : uint { IMAGE_FILE_MACHINE_AM33 = 0x01d3 }
enum : uint { IMAGE_FILE_MACHINE_POWERPC = 0x01F0 }
enum : uint { IMAGE_FILE_MACHINE_POWERPCFP = 0x01f1 }
enum : uint { IMAGE_FILE_MACHINE_IA64 = 0x0200 }
enum : uint { IMAGE_FILE_MACHINE_MIPS16 = 0x0266 }
enum : uint { IMAGE_FILE_MACHINE_ALPHA64 = 0x0284 }
enum : uint { IMAGE_FILE_MACHINE_MIPSFPU = 0x0366 }
enum : uint { IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466 }
alias IMAGE_FILE_MACHINE_ALPHA64 IMAGE_FILE_MACHINE_AXP64;
enum : uint { IMAGE_FILE_MACHINE_TRICORE = 0x0520 }
enum : uint { IMAGE_FILE_MACHINE_CEF = 0x0CEF }
enum : uint { IMAGE_FILE_MACHINE_EBC = 0x0EBC }
enum : uint { IMAGE_FILE_MACHINE_AMD64 = 0x8664 }
enum : uint { IMAGE_FILE_MACHINE_M32R = 0x9041 }
enum : uint { IMAGE_FILE_MACHINE_CEE = 0xC0EE }
struct _IMAGE_DATA_DIRECTORY {
DWORD VirtualAddress;
DWORD Size;
}
alias _IMAGE_DATA_DIRECTORY IMAGE_DATA_DIRECTORY;
alias _IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY;
enum : uint { IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16 }
struct _IMAGE_OPTIONAL_HEADER {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint;
DWORD BaseOfCode;
DWORD BaseOfData;
DWORD ImageBase;
DWORD SectionAlignment;
DWORD FileAlignment;
WORD MajorOperatingSystemVersion;
WORD MinorOperatingSystemVersion;
WORD MajorImageVersion;
WORD MinorImageVersion;
WORD MajorSubsystemVersion;
WORD MinorSubsystemVersion;
DWORD Win32VersionValue;
DWORD SizeOfImage;
DWORD SizeOfHeaders;
DWORD CheckSum;
WORD Subsystem;
WORD DllCharacteristics;
DWORD SizeOfStackReserve;
DWORD SizeOfStackCommit;
DWORD SizeOfHeapReserve;
DWORD SizeOfHeapCommit;
DWORD LoaderFlags;
DWORD NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
}
alias _IMAGE_OPTIONAL_HEADER IMAGE_OPTIONAL_HEADER32;
alias _IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER32;
struct _IMAGE_ROM_OPTIONAL_HEADER {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint;
DWORD BaseOfCode;
DWORD BaseOfData;
DWORD BaseOfBss;
DWORD GprMask;
DWORD CprMask[4];
DWORD GpValue;
}
alias _IMAGE_ROM_OPTIONAL_HEADER IMAGE_ROM_OPTIONAL_HEADER;
alias _IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER;
struct _IMAGE_OPTIONAL_HEADER64 {
WORD Magic;
BYTE MajorLinkerVersion;
BYTE MinorLinkerVersion;
DWORD SizeOfCode;
DWORD SizeOfInitializedData;
DWORD SizeOfUninitializedData;
DWORD AddressOfEntryPoint;
DWORD BaseOfCode;
ULONGLONG ImageBase;
DWORD SectionAlignment;
DWORD FileAlignment;
WORD MajorOperatingSystemVersion;
WORD MinorOperatingSystemVersion;
WORD MajorImageVersion;
WORD MinorImageVersion;
WORD MajorSubsystemVersion;
WORD MinorSubsystemVersion;
DWORD Win32VersionValue;
DWORD SizeOfImage;
DWORD SizeOfHeaders;
DWORD CheckSum;
WORD Subsystem;
WORD DllCharacteristics;
ULONGLONG SizeOfStackReserve;
ULONGLONG SizeOfStackCommit;
ULONGLONG SizeOfHeapReserve;
ULONGLONG SizeOfHeapCommit;
DWORD LoaderFlags;
DWORD NumberOfRvaAndSizes;
IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
}
alias _IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER64;
alias _IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64;
enum : uint { IMAGE_SIZEOF_ROM_OPTIONAL_HEADER = 56 }
enum : uint { IMAGE_SIZEOF_STD_OPTIONAL_HEADER = 28 }
enum : uint { IMAGE_SIZEOF_NT_OPTIONAL32_HEADER = 224 }
enum : uint { IMAGE_SIZEOF_NT_OPTIONAL64_HEADER = 240 }
enum : uint { IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x10b }
enum : uint { IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x20b }
enum : uint { IMAGE_ROM_OPTIONAL_HDR_MAGIC = 0x107 }
// #ifdef _WIN64
// ...
// #...
// #...
// #else
alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;
alias PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER;
alias IMAGE_SIZEOF_NT_OPTIONAL32_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER;
alias IMAGE_NT_OPTIONAL_HDR32_MAGIC IMAGE_NT_OPTIONAL_HDR_MAGIC;
// #endif
struct _IMAGE_NT_HEADERS64 {
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER64 OptionalHeader;
}
alias _IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS64;
alias _IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64;
struct _IMAGE_NT_HEADERS {
DWORD Signature;
IMAGE_FILE_HEADER FileHeader;
IMAGE_OPTIONAL_HEADER32 OptionalHeader;
}
alias _IMAGE_NT_HEADERS IMAGE_NT_HEADERS32;
alias _IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS32;
struct _IMAGE_ROM_HEADERS {
IMAGE_FILE_HEADER FileHeader;
IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
}
alias _IMAGE_ROM_HEADERS IMAGE_ROM_HEADERS;
alias _IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS;
// #ifdef _WIN64
// ...
// #else
alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
alias PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
// #endif
// #define IMAGE_FIRST_SECTION( ntheader ) ((PIMAGE_SECTION_HEADER) ((ULONG_PTR)ntheader + FIELD_OFFSET( IMAGE_NT_HEADERS, OptionalHeader ) + ((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader ))
enum : uint { IMAGE_SUBSYSTEM_UNKNOWN = 0 }
enum : uint { IMAGE_SUBSYSTEM_NATIVE = 1 }
enum : uint { IMAGE_SUBSYSTEM_WINDOWS_GUI = 2 }
enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CUI = 3 }
enum : uint { IMAGE_SUBSYSTEM_OS2_CUI = 5 }
enum : uint { IMAGE_SUBSYSTEM_POSIX_CUI = 7 }
enum : uint { IMAGE_SUBSYSTEM_NATIVE_WINDOWS = 8 }
enum : uint { IMAGE_SUBSYSTEM_WINDOWS_CE_GUI = 9 }
enum : uint { IMAGE_SUBSYSTEM_EFI_APPLICATION = 10 }
enum : uint { IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER = 11 }
enum : uint { IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER = 12 }
enum : uint { IMAGE_SUBSYSTEM_EFI_ROM = 13 }
enum : uint { IMAGE_SUBSYSTEM_XBOX = 14 }
enum : uint { IMAGE_DLLCHARACTERISTICS_NO_BIND = 0x0800 }
enum : uint { IMAGE_DLLCHARACTERISTICS_WDM_DRIVER = 0x2000 }
enum : uint { IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000 }
enum : uint { IMAGE_DIRECTORY_ENTRY_EXPORT = 0 }
enum : uint { IMAGE_DIRECTORY_ENTRY_IMPORT = 1 }
enum : uint { IMAGE_DIRECTORY_ENTRY_RESOURCE = 2 }
enum : uint { IMAGE_DIRECTORY_ENTRY_EXCEPTION = 3 }
enum : uint { IMAGE_DIRECTORY_ENTRY_SECURITY = 4 }
enum : uint { IMAGE_DIRECTORY_ENTRY_BASERELOC = 5 }
enum : uint { IMAGE_DIRECTORY_ENTRY_DEBUG = 6 }
enum : uint { IMAGE_DIRECTORY_ENTRY_ARCHITECTURE = 7 }
enum : uint { IMAGE_DIRECTORY_ENTRY_GLOBALPTR = 8 }
enum : uint { IMAGE_DIRECTORY_ENTRY_TLS = 9 }
enum : uint { IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG = 10 }
enum : uint { IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT = 11 }
enum : uint { IMAGE_DIRECTORY_ENTRY_IAT = 12 }
enum : uint { IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT = 13 }
enum : uint { IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR = 14 }
struct ANON_OBJECT_HEADER {
WORD Sig1;
WORD Sig2;
WORD Version;
WORD Machine;
DWORD TimeDateStamp;
CLSID ClassID;
DWORD SizeOfData;
}
enum : uint { IMAGE_SIZEOF_SHORT_NAME = 8 }
struct _IMAGE_SECTION_HEADER {
BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
union {
DWORD PhysicalAddress;
DWORD VirtualSize;
}
DWORD VirtualAddress;
DWORD SizeOfRawData;
DWORD PointerToRawData;
DWORD PointerToRelocations;
DWORD PointerToLinenumbers;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD Characteristics;
}
alias _IMAGE_SECTION_HEADER IMAGE_SECTION_HEADER;
alias _IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER;
enum : uint { IMAGE_SIZEOF_SECTION_HEADER = 40 }
enum : uint { IMAGE_SCN_TYPE_NO_PAD = 0x00000008 }
enum : uint { IMAGE_SCN_CNT_CODE = 0x00000020 }
enum : uint { IMAGE_SCN_CNT_INITIALIZED_DATA = 0x00000040 }
enum : uint { IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080 }
enum : uint { IMAGE_SCN_LNK_OTHER = 0x00000100 }
enum : uint { IMAGE_SCN_LNK_INFO = 0x00000200 }
enum : uint { IMAGE_SCN_LNK_REMOVE = 0x00000800 }
enum : uint { IMAGE_SCN_LNK_COMDAT = 0x00001000 }
enum : uint { IMAGE_SCN_NO_DEFER_SPEC_EXC = 0x00004000 }
enum : uint { IMAGE_SCN_GPREL = 0x00008000 }
enum : uint { IMAGE_SCN_MEM_FARDATA = 0x00008000 }
enum : uint { IMAGE_SCN_MEM_PURGEABLE = 0x00020000 }
enum : uint { IMAGE_SCN_MEM_16BIT = 0x00020000 }
enum : uint { IMAGE_SCN_MEM_LOCKED = 0x00040000 }
enum : uint { IMAGE_SCN_MEM_PRELOAD = 0x00080000 }
enum : uint { IMAGE_SCN_ALIGN_1BYTES = 0x00100000 }
enum : uint { IMAGE_SCN_ALIGN_2BYTES = 0x00200000 }
enum : uint { IMAGE_SCN_ALIGN_4BYTES = 0x00300000 }
enum : uint { IMAGE_SCN_ALIGN_8BYTES = 0x00400000 }
enum : uint { IMAGE_SCN_ALIGN_16BYTES = 0x00500000 }
enum : uint { IMAGE_SCN_ALIGN_32BYTES = 0x00600000 }
enum : uint { IMAGE_SCN_ALIGN_64BYTES = 0x00700000 }
enum : uint { IMAGE_SCN_ALIGN_128BYTES = 0x00800000 }
enum : uint { IMAGE_SCN_ALIGN_256BYTES = 0x00900000 }
enum : uint { IMAGE_SCN_ALIGN_512BYTES = 0x00A00000 }
enum : uint { IMAGE_SCN_ALIGN_1024BYTES = 0x00B00000 }
enum : uint { IMAGE_SCN_ALIGN_2048BYTES = 0x00C00000 }
enum : uint { IMAGE_SCN_ALIGN_4096BYTES = 0x00D00000 }
enum : uint { IMAGE_SCN_ALIGN_8192BYTES = 0x00E00000 }
enum : uint { IMAGE_SCN_ALIGN_MASK = 0x00F00000 }
enum : uint { IMAGE_SCN_LNK_NRELOC_OVFL = 0x01000000 }
enum : uint { IMAGE_SCN_MEM_DISCARDABLE = 0x02000000 }
enum : uint { IMAGE_SCN_MEM_NOT_CACHED = 0x04000000 }
enum : uint { IMAGE_SCN_MEM_NOT_PAGED = 0x08000000 }
enum : uint { IMAGE_SCN_MEM_SHARED = 0x10000000 }
enum : uint { IMAGE_SCN_MEM_EXECUTE = 0x20000000 }
enum : uint { IMAGE_SCN_MEM_READ = 0x40000000 }
enum : uint { IMAGE_SCN_MEM_WRITE = 0x80000000 }
enum : uint { IMAGE_SCN_SCALE_INDEX = 0x00000001 }
// #ifndef _MAC
align(2):
// #endif
struct _IMAGE_SYMBOL {
union {
BYTE ShortName[8];
struct {
DWORD Short;
DWORD Long;
}
DWORD LongName[2];
}
DWORD Value;
SHORT SectionNumber;
WORD Type;
BYTE StorageClass;
BYTE NumberOfAuxSymbols;
}
alias _IMAGE_SYMBOL IMAGE_SYMBOL;
alias IMAGE_SYMBOL* PIMAGE_SYMBOL;
enum : uint { IMAGE_SIZEOF_SYMBOL = 18 }
enum : SHORT { IMAGE_SYM_UNDEFINED = 0 }
enum : SHORT { IMAGE_SYM_ABSOLUTE = -1 }
enum : SHORT { IMAGE_SYM_DEBUG = -2 }
enum : uint { IMAGE_SYM_SECTION_MAX = 0xFEFF }
enum : uint { IMAGE_SYM_TYPE_NULL = 0x0000 }
enum : uint { IMAGE_SYM_TYPE_VOID = 0x0001 }
enum : uint { IMAGE_SYM_TYPE_CHAR = 0x0002 }
enum : uint { IMAGE_SYM_TYPE_SHORT = 0x0003 }
enum : uint { IMAGE_SYM_TYPE_INT = 0x0004 }
enum : uint { IMAGE_SYM_TYPE_LONG = 0x0005 }
enum : uint { IMAGE_SYM_TYPE_FLOAT = 0x0006 }
enum : uint { IMAGE_SYM_TYPE_DOUBLE = 0x0007 }
enum : uint { IMAGE_SYM_TYPE_STRUCT = 0x0008 }
enum : uint { IMAGE_SYM_TYPE_UNION = 0x0009 }
enum : uint { IMAGE_SYM_TYPE_ENUM = 0x000A }
enum : uint { IMAGE_SYM_TYPE_MOE = 0x000B }
enum : uint { IMAGE_SYM_TYPE_BYTE = 0x000C }
enum : uint { IMAGE_SYM_TYPE_WORD = 0x000D }
enum : uint { IMAGE_SYM_TYPE_UINT = 0x000E }
enum : uint { IMAGE_SYM_TYPE_DWORD = 0x000F }
enum : uint { IMAGE_SYM_TYPE_PCODE = 0x8000 }
enum : uint { IMAGE_SYM_DTYPE_NULL = 0 }
enum : uint { IMAGE_SYM_DTYPE_POINTER = 1 }
enum : uint { IMAGE_SYM_DTYPE_FUNCTION = 2 }
enum : uint { IMAGE_SYM_DTYPE_ARRAY = 3 }
enum : BYTE { IMAGE_SYM_CLASS_END_OF_FUNCTION = cast(BYTE)-1 }
enum : uint { IMAGE_SYM_CLASS_NULL = 0x0000 }
enum : uint { IMAGE_SYM_CLASS_AUTOMATIC = 0x0001 }
enum : uint { IMAGE_SYM_CLASS_EXTERNAL = 0x0002 }
enum : uint { IMAGE_SYM_CLASS_STATIC = 0x0003 }
enum : uint { IMAGE_SYM_CLASS_REGISTER = 0x0004 }
enum : uint { IMAGE_SYM_CLASS_EXTERNAL_DEF = 0x0005 }
enum : uint { IMAGE_SYM_CLASS_LABEL = 0x0006 }
enum : uint { IMAGE_SYM_CLASS_UNDEFINED_LABEL = 0x0007 }
enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_STRUCT = 0x0008 }
enum : uint { IMAGE_SYM_CLASS_ARGUMENT = 0x0009 }
enum : uint { IMAGE_SYM_CLASS_STRUCT_TAG = 0x000A }
enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_UNION = 0x000B }
enum : uint { IMAGE_SYM_CLASS_UNION_TAG = 0x000C }
enum : uint { IMAGE_SYM_CLASS_TYPE_DEFINITION = 0x000D }
enum : uint { IMAGE_SYM_CLASS_UNDEFINED_STATIC = 0x000E }
enum : uint { IMAGE_SYM_CLASS_ENUM_TAG = 0x000F }
enum : uint { IMAGE_SYM_CLASS_MEMBER_OF_ENUM = 0x0010 }
enum : uint { IMAGE_SYM_CLASS_REGISTER_PARAM = 0x0011 }
enum : uint { IMAGE_SYM_CLASS_BIT_FIELD = 0x0012 }
enum : uint { IMAGE_SYM_CLASS_FAR_EXTERNAL = 0x0044 }
enum : uint { IMAGE_SYM_CLASS_BLOCK = 0x0064 }
enum : uint { IMAGE_SYM_CLASS_FUNCTION = 0x0065 }
enum : uint { IMAGE_SYM_CLASS_END_OF_STRUCT = 0x0066 }
enum : uint { IMAGE_SYM_CLASS_FILE = 0x0067 }
enum : uint { IMAGE_SYM_CLASS_SECTION = 0x0068 }
enum : uint { IMAGE_SYM_CLASS_WEAK_EXTERNAL = 0x0069 }
enum : uint { IMAGE_SYM_CLASS_CLR_TOKEN = 0x006B }
enum : uint { N_BTMASK = 0x000F }
enum : uint { N_TMASK = 0x0030 }
enum : uint { N_TMASK1 = 0x00C0 }
enum : uint { N_TMASK2 = 0x00F0 }
enum : uint { N_BTSHFT = 4 }
enum : uint { N_TSHIFT = 2 }
BYTE BTYPE(BYTE x){ return x & N_BTMASK; }
// #ifndef ISPTR
bit ISPTR(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); }
// #endif
// #ifndef ISFCN
bit ISFCN(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); }
// #endif
// #ifndef ISARY
bit ISARY(uint x){ return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); }
// #endif
// #ifndef ISTAG
bit ISTAG(uint x){ return x == IMAGE_SYM_CLASS_STRUCT_TAG || x == IMAGE_SYM_CLASS_UNION_TAG || x == IMAGE_SYM_CLASS_ENUM_TAG; }
// #endif
// #ifndef INCREF
uint INCREF(uint x){ return ((x&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)|(x&N_BTMASK); }
// #endif
// #ifndef DECREF
uint DECREF(uint x){ return ((x >>> N_TSHIFT) & ~N_BTMASK)|(x & N_BTMASK); }
// #endif
union _IMAGE_AUX_SYMBOL {
struct {
DWORD TagIndex;
union {
struct {
WORD Linenumber;
WORD Size;
}
DWORD TotalSize;
}
union {
struct {
DWORD PointerToLinenumber;
DWORD PointerToNextFunction;
}
struct {
WORD Dimension[4];
}
}
WORD TvIndex;
}
struct {
BYTE Name[IMAGE_SIZEOF_SYMBOL];
}
struct {
DWORD Length;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD CheckSum;
SHORT Number;
BYTE Selection;
}
}
alias _IMAGE_AUX_SYMBOL IMAGE_AUX_SYMBOL;
alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL;
enum : uint { IMAGE_SIZEOF_AUX_SYMBOL = 18 }
alias int IMAGE_AUX_SYMBOL_TYPE;
enum {
IMAGE_AUX_SYMBOL_TYPE_TOKEN_DEF = 1,
}
align(2):
struct IMAGE_AUX_SYMBOL_TOKEN_DEF {
BYTE bAuxType;
BYTE bReserved;
DWORD SymbolTableIndex;
BYTE rgbReserved[12];
}
alias IMAGE_AUX_SYMBOL_TOKEN_DEF* PIMAGE_AUX_SYMBOL_TOKEN_DEF;
align:
enum : uint { IMAGE_COMDAT_SELECT_NODUPLICATES = 1 }
enum : uint { IMAGE_COMDAT_SELECT_ANY = 2 }
enum : uint { IMAGE_COMDAT_SELECT_SAME_SIZE = 3 }
enum : uint { IMAGE_COMDAT_SELECT_EXACT_MATCH = 4 }
enum : uint { IMAGE_COMDAT_SELECT_ASSOCIATIVE = 5 }
enum : uint { IMAGE_COMDAT_SELECT_LARGEST = 6 }
enum : uint { IMAGE_COMDAT_SELECT_NEWEST = 7 }
enum : uint { IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1 }
enum : uint { IMAGE_WEAK_EXTERN_SEARCH_LIBRARY = 2 }
enum : uint { IMAGE_WEAK_EXTERN_SEARCH_ALIAS = 3 }
struct _IMAGE_RELOCATION {
union {
DWORD VirtualAddress;
DWORD RelocCount;
}
DWORD SymbolTableIndex;
WORD Type;
}
alias _IMAGE_RELOCATION IMAGE_RELOCATION;
alias IMAGE_RELOCATION* PIMAGE_RELOCATION;
enum : uint { IMAGE_SIZEOF_RELOCATION = 10 }
enum : uint { IMAGE_REL_I386_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_I386_DIR16 = 0x0001 }
enum : uint { IMAGE_REL_I386_REL16 = 0x0002 }
enum : uint { IMAGE_REL_I386_DIR32 = 0x0006 }
enum : uint { IMAGE_REL_I386_DIR32NB = 0x0007 }
enum : uint { IMAGE_REL_I386_SEG12 = 0x0009 }
enum : uint { IMAGE_REL_I386_SECTION = 0x000A }
enum : uint { IMAGE_REL_I386_SECREL = 0x000B }
enum : uint { IMAGE_REL_I386_TOKEN = 0x000C }
enum : uint { IMAGE_REL_I386_SECREL7 = 0x000D }
enum : uint { IMAGE_REL_I386_REL32 = 0x0014 }
enum : uint { IMAGE_REL_MIPS_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_MIPS_REFHALF = 0x0001 }
enum : uint { IMAGE_REL_MIPS_REFWORD = 0x0002 }
enum : uint { IMAGE_REL_MIPS_JMPADDR = 0x0003 }
enum : uint { IMAGE_REL_MIPS_REFHI = 0x0004 }
enum : uint { IMAGE_REL_MIPS_REFLO = 0x0005 }
enum : uint { IMAGE_REL_MIPS_GPREL = 0x0006 }
enum : uint { IMAGE_REL_MIPS_LITERAL = 0x0007 }
enum : uint { IMAGE_REL_MIPS_SECTION = 0x000A }
enum : uint { IMAGE_REL_MIPS_SECREL = 0x000B }
enum : uint { IMAGE_REL_MIPS_SECRELLO = 0x000C }
enum : uint { IMAGE_REL_MIPS_SECRELHI = 0x000D }
enum : uint { IMAGE_REL_MIPS_TOKEN = 0x000E }
enum : uint { IMAGE_REL_MIPS_JMPADDR16 = 0x0010 }
enum : uint { IMAGE_REL_MIPS_REFWORDNB = 0x0022 }
enum : uint { IMAGE_REL_MIPS_PAIR = 0x0025 }
enum : uint { IMAGE_REL_ALPHA_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_ALPHA_REFLONG = 0x0001 }
enum : uint { IMAGE_REL_ALPHA_REFQUAD = 0x0002 }
enum : uint { IMAGE_REL_ALPHA_GPREL32 = 0x0003 }
enum : uint { IMAGE_REL_ALPHA_LITERAL = 0x0004 }
enum : uint { IMAGE_REL_ALPHA_LITUSE = 0x0005 }
enum : uint { IMAGE_REL_ALPHA_GPDISP = 0x0006 }
enum : uint { IMAGE_REL_ALPHA_BRADDR = 0x0007 }
enum : uint { IMAGE_REL_ALPHA_HINT = 0x0008 }
enum : uint { IMAGE_REL_ALPHA_INLINE_REFLONG = 0x0009 }
enum : uint { IMAGE_REL_ALPHA_REFHI = 0x000A }
enum : uint { IMAGE_REL_ALPHA_REFLO = 0x000B }
enum : uint { IMAGE_REL_ALPHA_PAIR = 0x000C }
enum : uint { IMAGE_REL_ALPHA_MATCH = 0x000D }
enum : uint { IMAGE_REL_ALPHA_SECTION = 0x000E }
enum : uint { IMAGE_REL_ALPHA_SECREL = 0x000F }
enum : uint { IMAGE_REL_ALPHA_REFLONGNB = 0x0010 }
enum : uint { IMAGE_REL_ALPHA_SECRELLO = 0x0011 }
enum : uint { IMAGE_REL_ALPHA_SECRELHI = 0x0012 }
enum : uint { IMAGE_REL_ALPHA_REFQ3 = 0x0013 }
enum : uint { IMAGE_REL_ALPHA_REFQ2 = 0x0014 }
enum : uint { IMAGE_REL_ALPHA_REFQ1 = 0x0015 }
enum : uint { IMAGE_REL_ALPHA_GPRELLO = 0x0016 }
enum : uint { IMAGE_REL_ALPHA_GPRELHI = 0x0017 }
enum : uint { IMAGE_REL_PPC_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_PPC_ADDR64 = 0x0001 }
enum : uint { IMAGE_REL_PPC_ADDR32 = 0x0002 }
enum : uint { IMAGE_REL_PPC_ADDR24 = 0x0003 }
enum : uint { IMAGE_REL_PPC_ADDR16 = 0x0004 }
enum : uint { IMAGE_REL_PPC_ADDR14 = 0x0005 }
enum : uint { IMAGE_REL_PPC_REL24 = 0x0006 }
enum : uint { IMAGE_REL_PPC_REL14 = 0x0007 }
enum : uint { IMAGE_REL_PPC_TOCREL16 = 0x0008 }
enum : uint { IMAGE_REL_PPC_TOCREL14 = 0x0009 }
enum : uint { IMAGE_REL_PPC_ADDR32NB = 0x000A }
enum : uint { IMAGE_REL_PPC_SECREL = 0x000B }
enum : uint { IMAGE_REL_PPC_SECTION = 0x000C }
enum : uint { IMAGE_REL_PPC_IFGLUE = 0x000D }
enum : uint { IMAGE_REL_PPC_IMGLUE = 0x000E }
enum : uint { IMAGE_REL_PPC_SECREL16 = 0x000F }
enum : uint { IMAGE_REL_PPC_REFHI = 0x0010 }
enum : uint { IMAGE_REL_PPC_REFLO = 0x0011 }
enum : uint { IMAGE_REL_PPC_PAIR = 0x0012 }
enum : uint { IMAGE_REL_PPC_SECRELLO = 0x0013 }
enum : uint { IMAGE_REL_PPC_SECRELHI = 0x0014 }
enum : uint { IMAGE_REL_PPC_GPREL = 0x0015 }
enum : uint { IMAGE_REL_PPC_TOKEN = 0x0016 }
enum : uint { IMAGE_REL_PPC_TYPEMASK = 0x00FF }
enum : uint { IMAGE_REL_PPC_NEG = 0x0100 }
enum : uint { IMAGE_REL_PPC_BRTAKEN = 0x0200 }
enum : uint { IMAGE_REL_PPC_BRNTAKEN = 0x0400 }
enum : uint { IMAGE_REL_PPC_TOCDEFN = 0x0800 }
enum : uint { IMAGE_REL_SH3_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_SH3_DIRECT16 = 0x0001 }
enum : uint { IMAGE_REL_SH3_DIRECT32 = 0x0002 }
enum : uint { IMAGE_REL_SH3_DIRECT8 = 0x0003 }
enum : uint { IMAGE_REL_SH3_DIRECT8_WORD = 0x0004 }
enum : uint { IMAGE_REL_SH3_DIRECT8_LONG = 0x0005 }
enum : uint { IMAGE_REL_SH3_DIRECT4 = 0x0006 }
enum : uint { IMAGE_REL_SH3_DIRECT4_WORD = 0x0007 }
enum : uint { IMAGE_REL_SH3_DIRECT4_LONG = 0x0008 }
enum : uint { IMAGE_REL_SH3_PCREL8_WORD = 0x0009 }
enum : uint { IMAGE_REL_SH3_PCREL8_LONG = 0x000A }
enum : uint { IMAGE_REL_SH3_PCREL12_WORD = 0x000B }
enum : uint { IMAGE_REL_SH3_STARTOF_SECTION = 0x000C }
enum : uint { IMAGE_REL_SH3_SIZEOF_SECTION = 0x000D }
enum : uint { IMAGE_REL_SH3_SECTION = 0x000E }
enum : uint { IMAGE_REL_SH3_SECREL = 0x000F }
enum : uint { IMAGE_REL_SH3_DIRECT32_NB = 0x0010 }
enum : uint { IMAGE_REL_SH3_GPREL4_LONG = 0x0011 }
enum : uint { IMAGE_REL_SH3_TOKEN = 0x0012 }
enum : uint { IMAGE_REL_ARM_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_ARM_ADDR32 = 0x0001 }
enum : uint { IMAGE_REL_ARM_ADDR32NB = 0x0002 }
enum : uint { IMAGE_REL_ARM_BRANCH24 = 0x0003 }
enum : uint { IMAGE_REL_ARM_BRANCH11 = 0x0004 }
enum : uint { IMAGE_REL_ARM_TOKEN = 0x0005 }
enum : uint { IMAGE_REL_ARM_GPREL12 = 0x0006 }
enum : uint { IMAGE_REL_ARM_GPREL7 = 0x0007 }
enum : uint { IMAGE_REL_ARM_BLX24 = 0x0008 }
enum : uint { IMAGE_REL_ARM_BLX11 = 0x0009 }
enum : uint { IMAGE_REL_ARM_SECTION = 0x000E }
enum : uint { IMAGE_REL_ARM_SECREL = 0x000F }
enum : uint { IMAGE_REL_AM_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_AM_ADDR32 = 0x0001 }
enum : uint { IMAGE_REL_AM_ADDR32NB = 0x0002 }
enum : uint { IMAGE_REL_AM_CALL32 = 0x0003 }
enum : uint { IMAGE_REL_AM_FUNCINFO = 0x0004 }
enum : uint { IMAGE_REL_AM_REL32_1 = 0x0005 }
enum : uint { IMAGE_REL_AM_REL32_2 = 0x0006 }
enum : uint { IMAGE_REL_AM_SECREL = 0x0007 }
enum : uint { IMAGE_REL_AM_SECTION = 0x0008 }
enum : uint { IMAGE_REL_AM_TOKEN = 0x0009 }
enum : uint { IMAGE_REL_AMD64_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_AMD64_ADDR64 = 0x0001 }
enum : uint { IMAGE_REL_AMD64_ADDR32 = 0x0002 }
enum : uint { IMAGE_REL_AMD64_ADDR32NB = 0x0003 }
enum : uint { IMAGE_REL_AMD64_REL32 = 0x0004 }
enum : uint { IMAGE_REL_AMD64_REL32_1 = 0x0005 }
enum : uint { IMAGE_REL_AMD64_REL32_2 = 0x0006 }
enum : uint { IMAGE_REL_AMD64_REL32_3 = 0x0007 }
enum : uint { IMAGE_REL_AMD64_REL32_4 = 0x0008 }
enum : uint { IMAGE_REL_AMD64_REL32_5 = 0x0009 }
enum : uint { IMAGE_REL_AMD64_SECTION = 0x000A }
enum : uint { IMAGE_REL_AMD64_SECREL = 0x000B }
enum : uint { IMAGE_REL_AMD64_SECREL7 = 0x000C }
enum : uint { IMAGE_REL_AMD64_TOKEN = 0x000D }
enum : uint { IMAGE_REL_IA64_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_IA64_IMM14 = 0x0001 }
enum : uint { IMAGE_REL_IA64_IMM22 = 0x0002 }
enum : uint { IMAGE_REL_IA64_IMM64 = 0x0003 }
enum : uint { IMAGE_REL_IA64_DIR32 = 0x0004 }
enum : uint { IMAGE_REL_IA64_DIR64 = 0x0005 }
enum : uint { IMAGE_REL_IA64_PCREL21B = 0x0006 }
enum : uint { IMAGE_REL_IA64_PCREL21M = 0x0007 }
enum : uint { IMAGE_REL_IA64_PCREL21F = 0x0008 }
enum : uint { IMAGE_REL_IA64_GPREL22 = 0x0009 }
enum : uint { IMAGE_REL_IA64_LTOFF22 = 0x000A }
enum : uint { IMAGE_REL_IA64_SECTION = 0x000B }
enum : uint { IMAGE_REL_IA64_SECREL22 = 0x000C }
enum : uint { IMAGE_REL_IA64_SECREL64I = 0x000D }
enum : uint { IMAGE_REL_IA64_SECREL32 = 0x000E }
enum : uint { IMAGE_REL_IA64_DIR32NB = 0x0010 }
enum : uint { IMAGE_REL_IA64_SREL14 = 0x0011 }
enum : uint { IMAGE_REL_IA64_SREL22 = 0x0012 }
enum : uint { IMAGE_REL_IA64_SREL32 = 0x0013 }
enum : uint { IMAGE_REL_IA64_UREL32 = 0x0014 }
enum : uint { IMAGE_REL_IA64_PCREL60X = 0x0015 }
enum : uint { IMAGE_REL_IA64_PCREL60B = 0x0016 }
enum : uint { IMAGE_REL_IA64_PCREL60F = 0x0017 }
enum : uint { IMAGE_REL_IA64_PCREL60I = 0x0018 }
enum : uint { IMAGE_REL_IA64_PCREL60M = 0x0019 }
enum : uint { IMAGE_REL_IA64_IMMGPREL64 = 0x001A }
enum : uint { IMAGE_REL_IA64_TOKEN = 0x001B }
enum : uint { IMAGE_REL_IA64_GPREL32 = 0x001C }
enum : uint { IMAGE_REL_IA64_ADDEND = 0x001F }
enum : uint { IMAGE_REL_CEF_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_CEF_ADDR32 = 0x0001 }
enum : uint { IMAGE_REL_CEF_ADDR64 = 0x0002 }
enum : uint { IMAGE_REL_CEF_ADDR32NB = 0x0003 }
enum : uint { IMAGE_REL_CEF_SECTION = 0x0004 }
enum : uint { IMAGE_REL_CEF_SECREL = 0x0005 }
enum : uint { IMAGE_REL_CEF_TOKEN = 0x0006 }
enum : uint { IMAGE_REL_CEE_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_CEE_ADDR32 = 0x0001 }
enum : uint { IMAGE_REL_CEE_ADDR64 = 0x0002 }
enum : uint { IMAGE_REL_CEE_ADDR32NB = 0x0003 }
enum : uint { IMAGE_REL_CEE_SECTION = 0x0004 }
enum : uint { IMAGE_REL_CEE_SECREL = 0x0005 }
enum : uint { IMAGE_REL_CEE_TOKEN = 0x0006 }
enum : uint { IMAGE_REL_M32R_ABSOLUTE = 0x0000 }
enum : uint { IMAGE_REL_M32R_ADDR32 = 0x0001 }
enum : uint { IMAGE_REL_M32R_ADDR32NB = 0x0002 }
enum : uint { IMAGE_REL_M32R_ADDR24 = 0x0003 }
enum : uint { IMAGE_REL_M32R_GPREL16 = 0x0004 }
enum : uint { IMAGE_REL_M32R_PCREL24 = 0x0005 }
enum : uint { IMAGE_REL_M32R_PCREL16 = 0x0006 }
enum : uint { IMAGE_REL_M32R_PCREL8 = 0x0007 }
enum : uint { IMAGE_REL_M32R_REFHALF = 0x0008 }
enum : uint { IMAGE_REL_M32R_REFHI = 0x0009 }
enum : uint { IMAGE_REL_M32R_REFLO = 0x000A }
enum : uint { IMAGE_REL_M32R_PAIR = 0x000B }
enum : uint { IMAGE_REL_M32R_SECTION = 0x000C }
enum : uint { IMAGE_REL_M32R_SECREL32 = 0x000D }
enum : uint { IMAGE_REL_M32R_TOKEN = 0x000E }
// #define EXT_IMM64(Value, Address, Size, InstPos, ValPos) Value |= (((ULONGLONG)((*(Address) >> InstPos) & (((ULONGLONG)1 << Size) - 1))) << ValPos)
// #define INS_IMM64(Value, Address, Size, InstPos, ValPos) *(PDWORD)Address = (*(PDWORD)Address & ~(((1 << Size) - 1) << InstPos)) | ((DWORD)((((ULONGLONG)Value >> ValPos) & (((ULONGLONG)1 << Size) - 1))) << InstPos)
enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_X = 3 }
enum : uint { EMARCH_ENC_I17_IMM7B_SIZE_X = 7 }
enum : uint { EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X = 4 }
enum : uint { EMARCH_ENC_I17_IMM7B_VAL_POS_X = 0 }
enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_X = 3 }
enum : uint { EMARCH_ENC_I17_IMM9D_SIZE_X = 9 }
enum : uint { EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X = 18 }
enum : uint { EMARCH_ENC_I17_IMM9D_VAL_POS_X = 7 }
enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_X = 3 }
enum : uint { EMARCH_ENC_I17_IMM5C_SIZE_X = 5 }
enum : uint { EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X = 13 }
enum : uint { EMARCH_ENC_I17_IMM5C_VAL_POS_X = 16 }
enum : uint { EMARCH_ENC_I17_IC_INST_WORD_X = 3 }
enum : uint { EMARCH_ENC_I17_IC_SIZE_X = 1 }
enum : uint { EMARCH_ENC_I17_IC_INST_WORD_POS_X = 12 }
enum : uint { EMARCH_ENC_I17_IC_VAL_POS_X = 21 }
enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_X = 1 }
enum : uint { EMARCH_ENC_I17_IMM41a_SIZE_X = 10 }
enum : uint { EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X = 14 }
enum : uint { EMARCH_ENC_I17_IMM41a_VAL_POS_X = 22 }
enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_X = 1 }
enum : uint { EMARCH_ENC_I17_IMM41b_SIZE_X = 8 }
enum : uint { EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X = 24 }
enum : uint { EMARCH_ENC_I17_IMM41b_VAL_POS_X = 32 }
enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_X = 2 }
enum : uint { EMARCH_ENC_I17_IMM41c_SIZE_X = 23 }
enum : uint { EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X = 0 }
enum : uint { EMARCH_ENC_I17_IMM41c_VAL_POS_X = 40 }
enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_X = 3 }
enum : uint { EMARCH_ENC_I17_SIGN_SIZE_X = 1 }
enum : uint { EMARCH_ENC_I17_SIGN_INST_WORD_POS_X = 27 }
enum : uint { EMARCH_ENC_I17_SIGN_VAL_POS_X = 63 }
struct _IMAGE_LINENUMBER {
union {
DWORD SymbolTableIndex;
DWORD VirtualAddress;
}
WORD Linenumber;
}
alias _IMAGE_LINENUMBER IMAGE_LINENUMBER;
alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER;
enum : uint { IMAGE_SIZEOF_LINENUMBER = 6 }
// #ifndef _MAC
align:
// #endif
struct _IMAGE_BASE_RELOCATION {
DWORD VirtualAddress;
DWORD SizeOfBlock;
}
alias _IMAGE_BASE_RELOCATION IMAGE_BASE_RELOCATION;
alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION;
enum : uint { IMAGE_SIZEOF_BASE_RELOCATION = 8 }
enum : uint { IMAGE_REL_BASED_ABSOLUTE = 0 }
enum : uint { IMAGE_REL_BASED_HIGH = 1 }
enum : uint { IMAGE_REL_BASED_LOW = 2 }
enum : uint { IMAGE_REL_BASED_HIGHLOW = 3 }
enum : uint { IMAGE_REL_BASED_HIGHADJ = 4 }
enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR = 5 }
enum : uint { IMAGE_REL_BASED_MIPS_JMPADDR16 = 9 }
enum : uint { IMAGE_REL_BASED_IA64_IMM64 = 9 }
enum : uint { IMAGE_REL_BASED_DIR64 = 10 }
enum : uint { IMAGE_ARCHIVE_START_SIZE = 8 }
const char[] IMAGE_ARCHIVE_START = "!<arch>\n";
const char[] IMAGE_ARCHIVE_END = "`\n";
const char[] IMAGE_ARCHIVE_PAD = "\n";
const char[] IMAGE_ARCHIVE_LINKER_MEMBER = "/ ";
const char[] IMAGE_ARCHIVE_LONGNAMES_MEMBER = "// ";
struct _IMAGE_ARCHIVE_MEMBER_HEADER {
BYTE Name[16];
BYTE Date[12];
BYTE UserID[6];
BYTE GroupID[6];
BYTE Mode[8];
BYTE Size[10];
BYTE EndHeader[2];
}
alias _IMAGE_ARCHIVE_MEMBER_HEADER IMAGE_ARCHIVE_MEMBER_HEADER;
alias _IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER;
enum : uint { IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR = 60 }
struct _IMAGE_EXPORT_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD Name;
DWORD Base;
DWORD NumberOfFunctions;
DWORD NumberOfNames;
DWORD AddressOfFunctions;
DWORD AddressOfNames;
DWORD AddressOfNameOrdinals;
}
alias _IMAGE_EXPORT_DIRECTORY IMAGE_EXPORT_DIRECTORY;
alias _IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY;
struct _IMAGE_IMPORT_BY_NAME {
WORD Hint;
BYTE Name[1];
}
alias _IMAGE_IMPORT_BY_NAME IMAGE_IMPORT_BY_NAME;
alias _IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME;
align(8):
struct _IMAGE_THUNK_DATA64 {
union {
ULONGLONG ForwarderString;
ULONGLONG Function;
ULONGLONG Ordinal;
ULONGLONG AddressOfData;
}
}
alias _IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA64;
alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64;
align:
struct _IMAGE_THUNK_DATA32 {
union {
DWORD ForwarderString;
DWORD Function;
DWORD Ordinal;
DWORD AddressOfData;
}
}
alias _IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA32;
alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32;
const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000;
enum : uint { IMAGE_ORDINAL_FLAG32 = 0x80000000 }
ulong IMAGE_ORDINAL64(ulong Ordinal){ return Ordinal & 0xffff; }
uint IMAGE_ORDINAL32(uint Ordinal){ return Ordinal & 0xffff; }
bit IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0; }
bit IMAGE_SNAP_BY_ORDINAL32(uint Ordinal){ return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0; }
extern(Windows) alias VOID function( PVOID DllHandle, DWORD Reason, PVOID Reserved ) PIMAGE_TLS_CALLBACK;
struct _IMAGE_TLS_DIRECTORY64 {
ULONGLONG StartAddressOfRawData;
ULONGLONG EndAddressOfRawData;
ULONGLONG AddressOfIndex;
ULONGLONG AddressOfCallBacks;
DWORD SizeOfZeroFill;
DWORD Characteristics;
}
alias _IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY64;
alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64;
struct _IMAGE_TLS_DIRECTORY32 {
DWORD StartAddressOfRawData;
DWORD EndAddressOfRawData;
DWORD AddressOfIndex;
DWORD AddressOfCallBacks;
DWORD SizeOfZeroFill;
DWORD Characteristics;
}
alias _IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY32;
alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32;
// #ifdef _WIN64
// #...
// #...
// ...
// #...
// ...
// #else
alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG;
alias IMAGE_ORDINAL32 IMAGE_ORDINAL;
alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;
alias PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA;
alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL;
alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY;
alias PIMAGE_TLS_DIRECTORY32 PIMAGE_TLS_DIRECTORY;
// #endif
struct _IMAGE_IMPORT_DESCRIPTOR {
union {
DWORD Characteristics;
DWORD OriginalFirstThunk;
}
DWORD TimeDateStamp;
DWORD ForwarderChain;
DWORD Name;
DWORD FirstThunk;
}
alias _IMAGE_IMPORT_DESCRIPTOR IMAGE_IMPORT_DESCRIPTOR;
alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR;
struct _IMAGE_BOUND_IMPORT_DESCRIPTOR {
DWORD TimeDateStamp;
WORD OffsetModuleName;
WORD NumberOfModuleForwarderRefs;
}
alias _IMAGE_BOUND_IMPORT_DESCRIPTOR IMAGE_BOUND_IMPORT_DESCRIPTOR;
alias _IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR;
struct _IMAGE_BOUND_FORWARDER_REF {
DWORD TimeDateStamp;
WORD OffsetModuleName;
WORD Reserved;
}
alias _IMAGE_BOUND_FORWARDER_REF IMAGE_BOUND_FORWARDER_REF;
alias _IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF;
struct _IMAGE_RESOURCE_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
WORD NumberOfNamedEntries;
WORD NumberOfIdEntries;
}
alias _IMAGE_RESOURCE_DIRECTORY IMAGE_RESOURCE_DIRECTORY;
alias _IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY;
enum : uint { IMAGE_RESOURCE_NAME_IS_STRING = 0x80000000 }
enum : uint { IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000 }
struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
union {
struct {
// DWORD NameOffset:31;
// DWORD NameIsString:1;
}
DWORD Name;
WORD Id;
}
union {
DWORD OffsetToData;
struct {
// DWORD OffsetToDirectory:31;
// DWORD DataIsDirectory:1;
}
}
}
alias _IMAGE_RESOURCE_DIRECTORY_ENTRY IMAGE_RESOURCE_DIRECTORY_ENTRY;
alias _IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY;
struct _IMAGE_RESOURCE_DIRECTORY_STRING {
WORD Length;
CHAR NameString[ 1 ];
}
alias _IMAGE_RESOURCE_DIRECTORY_STRING IMAGE_RESOURCE_DIRECTORY_STRING;
alias _IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING;
struct _IMAGE_RESOURCE_DIR_STRING_U {
WORD Length;
WCHAR NameString[ 1 ];
}
alias _IMAGE_RESOURCE_DIR_STRING_U IMAGE_RESOURCE_DIR_STRING_U;
alias _IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U;
struct _IMAGE_RESOURCE_DATA_ENTRY {
DWORD OffsetToData;
DWORD Size;
DWORD CodePage;
DWORD Reserved;
}
alias _IMAGE_RESOURCE_DATA_ENTRY IMAGE_RESOURCE_DATA_ENTRY;
alias _IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY;
struct _12 {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD GlobalFlagsClear;
DWORD GlobalFlagsSet;
DWORD CriticalSectionDefaultTimeout;
DWORD DeCommitFreeBlockThreshold;
DWORD DeCommitTotalFreeThreshold;
DWORD LockPrefixTable;
DWORD MaximumAllocationSize;
DWORD VirtualMemoryThreshold;
DWORD ProcessHeapFlags;
DWORD ProcessAffinityMask;
WORD CSDVersion;
WORD Reserved1;
DWORD EditList;
DWORD Reserved[ 1 ];
}
alias _12 IMAGE_LOAD_CONFIG_DIRECTORY32;
alias _12* PIMAGE_LOAD_CONFIG_DIRECTORY32;
struct _13 {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD GlobalFlagsClear;
DWORD GlobalFlagsSet;
DWORD CriticalSectionDefaultTimeout;
ULONGLONG DeCommitFreeBlockThreshold;
ULONGLONG DeCommitTotalFreeThreshold;
ULONGLONG LockPrefixTable;
ULONGLONG MaximumAllocationSize;
ULONGLONG VirtualMemoryThreshold;
ULONGLONG ProcessAffinityMask;
DWORD ProcessHeapFlags;
WORD CSDVersion;
WORD Reserved1;
ULONGLONG EditList;
DWORD Reserved[ 2 ];
}
alias _13 IMAGE_LOAD_CONFIG_DIRECTORY64;
alias _13* PIMAGE_LOAD_CONFIG_DIRECTORY64;
// #ifdef _WIN64
// ...
// #else
alias IMAGE_LOAD_CONFIG_DIRECTORY32 IMAGE_LOAD_CONFIG_DIRECTORY;
alias PIMAGE_LOAD_CONFIG_DIRECTORY32 PIMAGE_LOAD_CONFIG_DIRECTORY;
// #endif
struct _IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
DWORD FuncStart;
// DWORD PrologLen : 8;
// DWORD FuncLen : 22;
// DWORD ThirtyTwoBit : 1;
// DWORD ExceptionFlag : 1;
}
alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY IMAGE_CE_RUNTIME_FUNCTION_ENTRY;
alias _IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY;
struct _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY {
ULONGLONG BeginAddress;
ULONGLONG EndAddress;
ULONGLONG ExceptionHandler;
ULONGLONG HandlerData;
ULONGLONG PrologEndAddress;
}
alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
alias _IMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA64_RUNTIME_FUNCTION_ENTRY;
struct _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY {
DWORD BeginAddress;
DWORD EndAddress;
DWORD ExceptionHandler;
DWORD HandlerData;
DWORD PrologEndAddress;
}
alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
alias _IMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY* PIMAGE_ALPHA_RUNTIME_FUNCTION_ENTRY;
struct _IMAGE_RUNTIME_FUNCTION_ENTRY {
DWORD BeginAddress;
DWORD EndAddress;
DWORD UnwindInfoAddress;
}
alias _IMAGE_RUNTIME_FUNCTION_ENTRY* _PIMAGE_RUNTIME_FUNCTION_ENTRY;
alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_IA64_RUNTIME_FUNCTION_ENTRY;
alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_IA64_RUNTIME_FUNCTION_ENTRY;
// #if defined(_AXP64_)
// ...
// #elif defined(_ALPHA_)
// ...
// #else
alias _IMAGE_RUNTIME_FUNCTION_ENTRY IMAGE_RUNTIME_FUNCTION_ENTRY;
alias _PIMAGE_RUNTIME_FUNCTION_ENTRY PIMAGE_RUNTIME_FUNCTION_ENTRY;
// #endif
struct _IMAGE_DEBUG_DIRECTORY {
DWORD Characteristics;
DWORD TimeDateStamp;
WORD MajorVersion;
WORD MinorVersion;
DWORD Type;
DWORD SizeOfData;
DWORD AddressOfRawData;
DWORD PointerToRawData;
}
alias _IMAGE_DEBUG_DIRECTORY IMAGE_DEBUG_DIRECTORY;
alias _IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY;
enum : uint { IMAGE_DEBUG_TYPE_UNKNOWN = 0 }
enum : uint { IMAGE_DEBUG_TYPE_COFF = 1 }
enum : uint { IMAGE_DEBUG_TYPE_CODEVIEW = 2 }
enum : uint { IMAGE_DEBUG_TYPE_FPO = 3 }
enum : uint { IMAGE_DEBUG_TYPE_MISC = 4 }
enum : uint { IMAGE_DEBUG_TYPE_EXCEPTION = 5 }
enum : uint { IMAGE_DEBUG_TYPE_FIXUP = 6 }
enum : uint { IMAGE_DEBUG_TYPE_OMAP_TO_SRC = 7 }
enum : uint { IMAGE_DEBUG_TYPE_OMAP_FROM_SRC = 8 }
enum : uint { IMAGE_DEBUG_TYPE_BORLAND = 9 }
enum : uint { IMAGE_DEBUG_TYPE_RESERVED10 = 10 }
enum : uint { IMAGE_DEBUG_TYPE_CLSID = 11 }
struct _IMAGE_COFF_SYMBOLS_HEADER {
DWORD NumberOfSymbols;
DWORD LvaToFirstSymbol;
DWORD NumberOfLinenumbers;
DWORD LvaToFirstLinenumber;
DWORD RvaToFirstByteOfCode;
DWORD RvaToLastByteOfCode;
DWORD RvaToFirstByteOfData;
DWORD RvaToLastByteOfData;
}
alias _IMAGE_COFF_SYMBOLS_HEADER IMAGE_COFF_SYMBOLS_HEADER;
alias _IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER;
enum : uint { FRAME_FPO = 0 }
enum : uint { FRAME_TRAP = 1 }
enum : uint { FRAME_TSS = 2 }
enum : uint { FRAME_NONFPO = 3 }
struct _FPO_DATA {
DWORD ulOffStart;
DWORD cbProcSize;
DWORD cdwLocals;
WORD cdwParams;
// WORD cbProlog : 8;
// WORD cbRegs : 3;
// WORD fHasSEH : 1;
// WORD fUseBP : 1;
// WORD reserved : 1;
// WORD cbFrame : 2;
}
alias _FPO_DATA FPO_DATA;
alias _FPO_DATA* PFPO_DATA;
enum : uint { SIZEOF_RFPO_DATA = 16 }
enum : uint { IMAGE_DEBUG_MISC_EXENAME = 1 }
struct _IMAGE_DEBUG_MISC {
DWORD DataType;
DWORD Length;
BOOLEAN Unicode;
BYTE Reserved[ 3 ];
BYTE Data[ 1 ];
}
alias _IMAGE_DEBUG_MISC IMAGE_DEBUG_MISC;
alias _IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC;
struct _IMAGE_FUNCTION_ENTRY {
DWORD StartingAddress;
DWORD EndingAddress;
DWORD EndOfPrologue;
}
alias _IMAGE_FUNCTION_ENTRY IMAGE_FUNCTION_ENTRY;
alias _IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY;
struct _IMAGE_FUNCTION_ENTRY64 {
ULONGLONG StartingAddress;
ULONGLONG EndingAddress;
union {
ULONGLONG EndOfPrologue;
ULONGLONG UnwindInfoAddress;
}
}
alias _IMAGE_FUNCTION_ENTRY64 IMAGE_FUNCTION_ENTRY64;
alias _IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64;
struct _IMAGE_SEPARATE_DEBUG_HEADER {
WORD Signature;
WORD Flags;
WORD Machine;
WORD Characteristics;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD ImageBase;
DWORD SizeOfImage;
DWORD NumberOfSections;
DWORD ExportedNamesSize;
DWORD DebugDirectorySize;
DWORD SectionAlignment;
DWORD Reserved[2];
}
alias _IMAGE_SEPARATE_DEBUG_HEADER IMAGE_SEPARATE_DEBUG_HEADER;
alias _IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER;
struct _NON_PAGED_DEBUG_INFO {
WORD Signature;
WORD Flags;
DWORD Size;
WORD Machine;
WORD Characteristics;
DWORD TimeDateStamp;
DWORD CheckSum;
DWORD SizeOfImage;
ULONGLONG ImageBase;
}
alias _NON_PAGED_DEBUG_INFO NON_PAGED_DEBUG_INFO;
alias _NON_PAGED_DEBUG_INFO* PNON_PAGED_DEBUG_INFO;
// #ifndef _MAC
enum : uint { IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944 }
enum : uint { NON_PAGED_DEBUG_SIGNATURE = 0x494E }
// #else
// #...
// #...
// #endif
enum : uint { IMAGE_SEPARATE_DEBUG_FLAGS_MASK = 0x8000 }
enum : uint { IMAGE_SEPARATE_DEBUG_MISMATCH = 0x8000 }
struct _ImageArchitectureHeader {
// unsigned int AmaskValue: 1;
// int :7;
// unsigned int AmaskShift: 8;
// int :16;
DWORD FirstEntryRVA;
}
alias _ImageArchitectureHeader IMAGE_ARCHITECTURE_HEADER;
alias _ImageArchitectureHeader* PIMAGE_ARCHITECTURE_HEADER;
struct _ImageArchitectureEntry {
DWORD FixupInstRVA;
DWORD NewInst;
}
alias _ImageArchitectureEntry IMAGE_ARCHITECTURE_ENTRY;
alias _ImageArchitectureEntry* PIMAGE_ARCHITECTURE_ENTRY;
align:
enum : uint { IMPORT_OBJECT_HDR_SIG2 = 0xffff }
struct IMPORT_OBJECT_HEADER {
WORD Sig1;
WORD Sig2;
WORD Version;
WORD Machine;
DWORD TimeDateStamp;
DWORD SizeOfData;
union {
WORD Ordinal;
WORD Hint;
}
// WORD Type : 2;
// WORD NameType : 3;
// WORD Reserved : 11;
}
alias int IMPORT_OBJECT_TYPE;
enum {
IMPORT_OBJECT_CODE = 0,
IMPORT_OBJECT_DATA = 1,
IMPORT_OBJECT_CONST = 2,
}
alias int IMPORT_OBJECT_NAME_TYPE;
enum {
IMPORT_OBJECT_ORDINAL = 0,
IMPORT_OBJECT_NAME = 1,
IMPORT_OBJECT_NAME_NO_PREFIX = 2,
IMPORT_OBJECT_NAME_UNDECORATE = 3,
}
// #ifndef __IMAGE_COR20_HEADER_DEFINED__
// #define __IMAGE_COR20_HEADER_DEFINED__
alias int ReplacesCorHdrNumericDefines;
enum {
COMIMAGE_FLAGS_ILONLY = 0x00000001,
COMIMAGE_FLAGS_32BITREQUIRED = 0x00000002,
COMIMAGE_FLAGS_IL_LIBRARY = 0x00000004,
COMIMAGE_FLAGS_TRACKDEBUGDATA = 0x00010000,
COR_VERSION_MAJOR_V2 = 2,
COR_VERSION_MAJOR = COR_VERSION_MAJOR_V2,
COR_VERSION_MINOR = 0,
COR_DELETED_NAME_LENGTH = 8,
COR_VTABLEGAP_NAME_LENGTH = 8,
NATIVE_TYPE_MAX_CB = 1,
COR_ILMETHOD_SECT_SMALL_MAX_DATASIZE = 0xFF,
IMAGE_COR_MIH_METHODRVA = 0x01,
IMAGE_COR_MIH_EHRVA = 0x02,
IMAGE_COR_MIH_BASICBLOCK = 0x08,
COR_VTABLE_32BIT = 0x01,
COR_VTABLE_64BIT = 0x02,
COR_VTABLE_FROM_UNMANAGED = 0x04,
COR_VTABLE_CALL_MOST_DERIVED = 0x10,
IMAGE_COR_EATJ_THUNK_SIZE = 32,
MAX_CLASS_NAME = 1024,
MAX_PACKAGE_NAME = 1024,
}
struct IMAGE_COR20_HEADER {
DWORD cb;
WORD MajorRuntimeVersion;
WORD MinorRuntimeVersion;
IMAGE_DATA_DIRECTORY MetaData;
DWORD Flags;
DWORD EntryPointToken;
IMAGE_DATA_DIRECTORY Resources;
IMAGE_DATA_DIRECTORY StrongNameSignature;
IMAGE_DATA_DIRECTORY CodeManagerTable;
IMAGE_DATA_DIRECTORY VTableFixups;
IMAGE_DATA_DIRECTORY ExportAddressTableJumps;
IMAGE_DATA_DIRECTORY ManagedNativeHeader;
}
alias IMAGE_COR20_HEADER* PIMAGE_COR20_HEADER;
// #endif // __IMAGE_COR20_HEADER_DEFINED__
// #ifdef _MAC
// #ifndef _INC_STRING
// #...
// #endif /* _INC_STRING */
// #else
// #include <string.h>
// #endif // _MAC
// #ifndef _SLIST_HEADER_
// #define _SLIST_HEADER_
alias SINGLE_LIST_ENTRY SLIST_ENTRY;
alias _SINGLE_LIST_ENTRY _SLIST_ENTRY;
alias PSINGLE_LIST_ENTRY PSLIST_ENTRY;
// #if defined(_WIN64)
// ...
// ...
// #else
union _SLIST_HEADER {
ULONGLONG Alignment;
struct {
SLIST_ENTRY Next;
WORD Depth;
WORD Sequence;
}
}
alias _SLIST_HEADER SLIST_HEADER;
alias _SLIST_HEADER* PSLIST_HEADER;
// #endif
// #endif
extern(Windows) export VOID RtlInitializeSListHead(
PSLIST_HEADER ListHead);
extern(Windows) export PSLIST_ENTRY RtlFirstEntrySList(
SLIST_HEADER *ListHead);
extern(Windows) export PSLIST_ENTRY RtlInterlockedPopEntrySList(
PSLIST_HEADER ListHead);
extern(Windows) export PSLIST_ENTRY RtlInterlockedPushEntrySList(
PSLIST_HEADER ListHead,
PSLIST_ENTRY ListEntry);
extern(Windows) export PSLIST_ENTRY RtlInterlockedFlushSList(
PSLIST_HEADER ListHead);
extern(Windows) export WORD RtlQueryDepthSList(
PSLIST_HEADER ListHead);
enum : uint { HEAP_NO_SERIALIZE = 0x00000001 }
enum : uint { HEAP_GROWABLE = 0x00000002 }
enum : uint { HEAP_GENERATE_EXCEPTIONS = 0x00000004 }
enum : uint { HEAP_ZERO_MEMORY = 0x00000008 }
enum : uint { HEAP_REALLOC_IN_PLACE_ONLY = 0x00000010 }
enum : uint { HEAP_TAIL_CHECKING_ENABLED = 0x00000020 }
enum : uint { HEAP_FREE_CHECKING_ENABLED = 0x00000040 }
enum : uint { HEAP_DISABLE_COALESCE_ON_FREE = 0x00000080 }
enum : uint { HEAP_CREATE_ALIGN_16 = 0x00010000 }
enum : uint { HEAP_CREATE_ENABLE_TRACING = 0x00020000 }
enum : uint { HEAP_MAXIMUM_TAG = 0x0FFF }
enum : uint { HEAP_PSEUDO_TAG_FLAG = 0x8000 }
enum : uint { HEAP_TAG_SHIFT = 18 }
uint HEAP_MAKE_TAG_FLAGS(uint b, uint o){ return b + (o << 18); }
enum : uint { IS_TEXT_UNICODE_ASCII16 = 0x0001 }
enum : uint { IS_TEXT_UNICODE_REVERSE_ASCII16 = 0x0010 }
enum : uint { IS_TEXT_UNICODE_STATISTICS = 0x0002 }
enum : uint { IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020 }
enum : uint { IS_TEXT_UNICODE_CONTROLS = 0x0004 }
enum : uint { IS_TEXT_UNICODE_REVERSE_CONTROLS = 0x0040 }
enum : uint { IS_TEXT_UNICODE_SIGNATURE = 0x0008 }
enum : uint { IS_TEXT_UNICODE_REVERSE_SIGNATURE = 0x0080 }
enum : uint { IS_TEXT_UNICODE_ILLEGAL_CHARS = 0x0100 }
enum : uint { IS_TEXT_UNICODE_ODD_LENGTH = 0x0200 }
enum : uint { IS_TEXT_UNICODE_DBCS_LEADBYTE = 0x0400 }
enum : uint { IS_TEXT_UNICODE_NULL_BYTES = 0x1000 }
enum : uint { IS_TEXT_UNICODE_UNICODE_MASK = 0x000F }
enum : uint { IS_TEXT_UNICODE_REVERSE_MASK = 0x00F0 }
enum : uint { IS_TEXT_UNICODE_NOT_UNICODE_MASK = 0x0F00 }
enum : uint { IS_TEXT_UNICODE_NOT_ASCII_MASK = 0xF000 }
enum : uint { COMPRESSION_FORMAT_NONE = 0x0000 }
enum : uint { COMPRESSION_FORMAT_DEFAULT = 0x0001 }
enum : uint { COMPRESSION_FORMAT_LZNT1 = 0x0002 }
enum : uint { COMPRESSION_ENGINE_STANDARD = 0x0000 }
enum : uint { COMPRESSION_ENGINE_MAXIMUM = 0x0100 }
enum : uint { COMPRESSION_ENGINE_HIBER = 0x0200 }
extern(Windows) export SIZE_T RtlCompareMemory(
VOID *Source1,
VOID *Source2,
SIZE_T Length);
// #if defined(_M_AMD64) || defined(_M_IA64)
// #...
// ...
// ...
// #if !defined(_M_AMD64)
// ...
// #endif
// ...
// ...
// ...
// #else
bit RtlEqualMemory(void* x, void* y, uint len){ return memcmp(x, y, len) == 0; }
void RtlMoveMemory(void* d, void* s, uint len){ memmove(d, s, len); }
void RtlCopyMemory(void* d, void* s, uint len){ memcpy(d, s, len); }
void RtlFillMemory(void* d, uint len, ubyte f){ memset(d, f, len); }
void RtlZeroMemory(void* d, uint len){ memset(d, 0, len); }
// #endif
struct _MESSAGE_RESOURCE_ENTRY {
WORD Length;
WORD Flags;
BYTE Text[ 1 ];
}
alias _MESSAGE_RESOURCE_ENTRY MESSAGE_RESOURCE_ENTRY;
alias _MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY;
enum : uint { MESSAGE_RESOURCE_UNICODE = 0x0001 }
struct _MESSAGE_RESOURCE_BLOCK {
DWORD LowId;
DWORD HighId;
DWORD OffsetToEntries;
}
alias _MESSAGE_RESOURCE_BLOCK MESSAGE_RESOURCE_BLOCK;
alias _MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK;
struct _MESSAGE_RESOURCE_DATA {
DWORD NumberOfBlocks;
MESSAGE_RESOURCE_BLOCK Blocks[ 1 ];
}
alias _MESSAGE_RESOURCE_DATA MESSAGE_RESOURCE_DATA;
alias _MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA;
struct _OSVERSIONINFOA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[ 128 ];
}
alias _OSVERSIONINFOA OSVERSIONINFOA;
alias _OSVERSIONINFOA* POSVERSIONINFOA;
alias _OSVERSIONINFOA* LPOSVERSIONINFOA;
struct _OSVERSIONINFOW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[ 128 ];
}
alias _OSVERSIONINFOW OSVERSIONINFOW;
alias _OSVERSIONINFOW* POSVERSIONINFOW;
alias _OSVERSIONINFOW* LPOSVERSIONINFOW;
alias _OSVERSIONINFOW RTL_OSVERSIONINFOW;
alias _OSVERSIONINFOW* PRTL_OSVERSIONINFOW;
// #ifdef UNICODE
alias OSVERSIONINFOW OSVERSIONINFO;
alias POSVERSIONINFOW POSVERSIONINFO;
alias LPOSVERSIONINFOW LPOSVERSIONINFO;
// #else
// ...
// #endif // UNICODE
struct _OSVERSIONINFOEXA {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
CHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
}
alias _OSVERSIONINFOEXA OSVERSIONINFOEXA;
alias _OSVERSIONINFOEXA* POSVERSIONINFOEXA;
alias _OSVERSIONINFOEXA* LPOSVERSIONINFOEXA;
struct _OSVERSIONINFOEXW {
DWORD dwOSVersionInfoSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
DWORD dwBuildNumber;
DWORD dwPlatformId;
WCHAR szCSDVersion[ 128 ];
WORD wServicePackMajor;
WORD wServicePackMinor;
WORD wSuiteMask;
BYTE wProductType;
BYTE wReserved;
}
alias _OSVERSIONINFOEXW OSVERSIONINFOEXW;
alias _OSVERSIONINFOEXW* POSVERSIONINFOEXW;
alias _OSVERSIONINFOEXW* LPOSVERSIONINFOEXW;
alias _OSVERSIONINFOEXW RTL_OSVERSIONINFOEXW;
alias _OSVERSIONINFOEXW* PRTL_OSVERSIONINFOEXW;
// #ifdef UNICODE
alias OSVERSIONINFOEXW OSVERSIONINFOEX;
alias POSVERSIONINFOEXW POSVERSIONINFOEX;
alias LPOSVERSIONINFOEXW LPOSVERSIONINFOEX;
// #else
// ...
// #endif // UNICODE
enum : uint { VER_EQUAL = 1 }
enum : uint { VER_GREATER = 2 }
enum : uint { VER_GREATER_EQUAL = 3 }
enum : uint { VER_LESS = 4 }
enum : uint { VER_LESS_EQUAL = 5 }
enum : uint { VER_AND = 6 }
enum : uint { VER_OR = 7 }
enum : uint { VER_CONDITION_MASK = 7 }
enum : uint { VER_NUM_BITS_PER_CONDITION_MASK = 3 }
enum : uint { VER_MINORVERSION = 0x0000001 }
enum : uint { VER_MAJORVERSION = 0x0000002 }
enum : uint { VER_BUILDNUMBER = 0x0000004 }
enum : uint { VER_PLATFORMID = 0x0000008 }
enum : uint { VER_SERVICEPACKMINOR = 0x0000010 }
enum : uint { VER_SERVICEPACKMAJOR = 0x0000020 }
enum : uint { VER_SUITENAME = 0x0000040 }
enum : uint { VER_PRODUCT_TYPE = 0x0000080 }
enum : uint { VER_NT_WORKSTATION = 0x0000001 }
enum : uint { VER_NT_DOMAIN_CONTROLLER = 0x0000002 }
enum : uint { VER_NT_SERVER = 0x0000003 }
enum : uint { VER_PLATFORM_WIN32s = 0 }
enum : uint { VER_PLATFORM_WIN32_WINDOWS = 1 }
enum : uint { VER_PLATFORM_WIN32_NT = 2 }
// #define VER_SET_CONDITION(_m_,_t_,_c_) ((_m_)=VerSetConditionMask((_m_),(_t_),(_c_)))
extern(Windows) export ULONGLONG VerSetConditionMask(
ULONGLONG ConditionMask,
DWORD TypeMask,
BYTE Condition);
struct _RTL_CRITICAL_SECTION_DEBUG {
WORD Type;
WORD CreatorBackTraceIndex;
_RTL_CRITICAL_SECTION *CriticalSection;
LIST_ENTRY ProcessLocksList;
DWORD EntryCount;
DWORD ContentionCount;
DWORD Spare[ 2 ];
}
alias _RTL_CRITICAL_SECTION_DEBUG RTL_CRITICAL_SECTION_DEBUG;
alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG;
alias _RTL_CRITICAL_SECTION_DEBUG RTL_RESOURCE_DEBUG;
alias _RTL_CRITICAL_SECTION_DEBUG* PRTL_RESOURCE_DEBUG;
enum : uint { RTL_CRITSECT_TYPE = 0 }
enum : uint { RTL_RESOURCE_TYPE = 1 }
struct _RTL_CRITICAL_SECTION {
PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
LONG LockCount;
LONG RecursionCount;
HANDLE OwningThread;
HANDLE LockSemaphore;
ULONG_PTR SpinCount;
}
alias _RTL_CRITICAL_SECTION RTL_CRITICAL_SECTION;
alias _RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION;
extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_LOAD_CALLBACK;
extern(Windows) alias VOID function( PWSTR DllName, PVOID DllBase, SIZE_T DllSize, PVOID Reserved ) RTL_VERIFIER_DLL_UNLOAD_CALLBACK;
struct _RTL_VERIFIER_THUNK_DESCRIPTOR {
PCHAR ThunkName;
PVOID ThunkOldAddress;
PVOID ThunkNewAddress;
}
alias _RTL_VERIFIER_THUNK_DESCRIPTOR RTL_VERIFIER_THUNK_DESCRIPTOR;
alias _RTL_VERIFIER_THUNK_DESCRIPTOR* PRTL_VERIFIER_THUNK_DESCRIPTOR;
struct _RTL_VERIFIER_DLL_DESCRIPTOR {
PWCHAR DllName;
DWORD DllFlags;
PVOID DllAddress;
PRTL_VERIFIER_THUNK_DESCRIPTOR DllThunks;
}
alias _RTL_VERIFIER_DLL_DESCRIPTOR RTL_VERIFIER_DLL_DESCRIPTOR;
alias _RTL_VERIFIER_DLL_DESCRIPTOR* PRTL_VERIFIER_DLL_DESCRIPTOR;
struct _RTL_VERIFIER_PROVIDER_DESCRIPTOR {
DWORD Length;
PRTL_VERIFIER_DLL_DESCRIPTOR ProviderDlls;
RTL_VERIFIER_DLL_LOAD_CALLBACK ProviderDllLoadCallback;
RTL_VERIFIER_DLL_UNLOAD_CALLBACK ProviderDllUnloadCallback;
PWSTR VerifierImage;
DWORD VerifierFlags;
DWORD VerifierDebug;
}
alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR RTL_VERIFIER_PROVIDER_DESCRIPTOR;
alias _RTL_VERIFIER_PROVIDER_DESCRIPTOR* PRTL_VERIFIER_PROVIDER_DESCRIPTOR;
enum : uint { RTL_VRF_FLG_FULL_PAGE_HEAP = 0x0001 }
enum : uint { RTL_VRF_FLG_LOCK_CHECKS = 0x0002 }
enum : uint { RTL_VRF_FLG_HANDLE_CHECKS = 0x0004 }
enum : uint { RTL_VRF_FLG_STACK_CHECKS = 0x0008 }
enum : uint { RTL_VRF_FLG_APPCOMPAT_CHECKS = 0x0010 }
enum : uint { APPLICATION_VERIFIER_INTERNAL_ERROR = 0x80000000 }
enum : uint { APPLICATION_VERIFIER_INTERNAL_WARNING = 0x40000000 }
enum : uint { APPLICATION_VERIFIER_NO_BREAK = 0x20000000 }
enum : uint { APPLICATION_VERIFIER_RESERVED_BIT_28 = 0x10000000 }
enum : uint { APPLICATION_VERIFIER_UNKNOWN_ERROR = 0x0001 }
enum : uint { APPLICATION_VERIFIER_ACCESS_VIOLATION = 0x0002 }
enum : uint { APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS = 0x0003 }
enum : uint { APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST = 0x0004 }
enum : uint { APPLICATION_VERIFIER_BAD_HEAP_HANDLE = 0x0005 }
enum : uint { APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE = 0x0006 }
enum : uint { APPLICATION_VERIFIER_DOUBLE_FREE = 0x0007 }
enum : uint { APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK = 0x0008 }
enum : uint { APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP = 0x0009 }
enum : uint { APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION = 0x000A }
enum : uint { APPLICATION_VERIFIER_STACK_OVERFLOW = 0x000B }
enum : uint { APPLICATION_VERIFIER_TERMINATE_THREAD_CALL = 0x0100 }
enum : uint { APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK = 0x0200 }
enum : uint { APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL = 0x0201 }
enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP = 0x0202 }
enum : uint { APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE = 0x0203 }
enum : uint { APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY = 0x0204 }
enum : uint { APPLICATION_VERIFIER_LOCK_CORRUPTED = 0x0205 }
enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_OWNER = 0x0206 }
enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT = 0x0207 }
enum : uint { APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT = 0x0208 }
enum : uint { APPLICATION_VERIFIER_LOCK_OVER_RELEASED = 0x0209 }
enum : uint { APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED = 0x0210 }
enum : uint { APPLICATION_VERIFIER_INVALID_HANDLE = 0x0300 }
// #define VERIFIER_STOP(Code, Msg, P1, S1, P2, S2, P3, S3, P4, S4) { RtlApplicationVerifierStop ((Code), (Msg), (ULONG_PTR)(P1),(S1), (ULONG_PTR)(P2),(S2), (ULONG_PTR)(P3),(S3), (ULONG_PTR)(P4),(S4)); }
extern(Windows) export VOID RtlApplicationVerifierStop(
ULONG_PTR Code,
PCHAR Message,
ULONG_PTR Param1, PCHAR Description1,
ULONG_PTR Param2, PCHAR Description2,
ULONG_PTR Param3, PCHAR Description3,
ULONG_PTR Param4, PCHAR Description4);
extern(Windows) alias LONG function( _EXCEPTION_POINTERS *ExceptionInfo ) PVECTORED_EXCEPTION_HANDLER;
enum : uint { SEF_DACL_AUTO_INHERIT = 0x01 }
enum : uint { SEF_SACL_AUTO_INHERIT = 0x02 }
enum : uint { SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT = 0x04 }
enum : uint { SEF_AVOID_PRIVILEGE_CHECK = 0x08 }
enum : uint { SEF_AVOID_OWNER_CHECK = 0x10 }
enum : uint { SEF_DEFAULT_OWNER_FROM_PARENT = 0x20 }
enum : uint { SEF_DEFAULT_GROUP_FROM_PARENT = 0x40 }
alias int _HEAP_INFORMATION_CLASS;
enum {
HeapCompatibilityInformation,
}
alias _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS;
extern(Windows) export DWORD RtlSetHeapInformation(
PVOID HeapHandle,
HEAP_INFORMATION_CLASS HeapInformationClass,
PVOID HeapInformation ,
SIZE_T HeapInformationLength );
extern(Windows) export DWORD RtlQueryHeapInformation(
PVOID HeapHandle,
HEAP_INFORMATION_CLASS HeapInformationClass,
PVOID HeapInformation ,
SIZE_T HeapInformationLength ,
PSIZE_T ReturnLength );
enum : uint { WT_EXECUTEDEFAULT = 0x00000000 }
enum : uint { WT_EXECUTEINIOTHREAD = 0x00000001 }
enum : uint { WT_EXECUTEINUITHREAD = 0x00000002 }
enum : uint { WT_EXECUTEINWAITTHREAD = 0x00000004 }
enum : uint { WT_EXECUTEONLYONCE = 0x00000008 }
enum : uint { WT_EXECUTEINTIMERTHREAD = 0x00000020 }
enum : uint { WT_EXECUTELONGFUNCTION = 0x00000010 }
enum : uint { WT_EXECUTEINPERSISTENTIOTHREAD = 0x00000040 }
enum : uint { WT_EXECUTEINPERSISTENTTHREAD = 0x00000080 }
// #define WT_SET_MAX_THREADPOOL_THREADS(Flags, Limit) ((Flags) |= (Limit)<<16)
extern(Windows) alias VOID function(PVOID, BOOLEAN ) WAITORTIMERCALLBACKFUNC;
extern(Windows) alias VOID function(PVOID ) WORKERCALLBACKFUNC;
extern(Windows) alias VOID function(DWORD , PVOID, PVOID) APC_CALLBACK_FUNCTION;
enum : uint { WT_EXECUTEINLONGTHREAD = 0x00000010 }
enum : uint { WT_EXECUTEDELETEWAIT = 0x00000008 }
alias int _ACTIVATION_CONTEXT_INFO_CLASS;
enum {
ActivationContextBasicInformation = 1,
ActivationContextDetailedInformation = 2,
AssemblyDetailedInformationInActivationContext = 3,
FileInformationInAssemblyOfAssemblyInActivationContext = 4,
MaxActivationContextInfoClass,
AssemblyDetailedInformationInActivationContxt = 3,
FileInformationInAssemblyOfAssemblyInActivationContxt = 4,
}
alias _ACTIVATION_CONTEXT_INFO_CLASS ACTIVATION_CONTEXT_INFO_CLASS;
alias ACTIVATION_CONTEXT_INFO_CLASS ACTIVATIONCONTEXTINFOCLASS;
struct _ACTIVATION_CONTEXT_QUERY_INDEX {
DWORD ulAssemblyIndex;
DWORD ulFileIndexInAssembly;
}
alias _ACTIVATION_CONTEXT_QUERY_INDEX ACTIVATION_CONTEXT_QUERY_INDEX;
alias _ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX;
alias _ACTIVATION_CONTEXT_QUERY_INDEX* PCACTIVATION_CONTEXT_QUERY_INDEX;
enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_NONE = 1 }
enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE = 2 }
enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_URL = 3 }
enum : uint { ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF = 4 }
struct _ASSEMBLY_FILE_DETAILED_INFORMATION {
DWORD ulFlags;
DWORD ulFilenameLength;
DWORD ulPathLength;
PCWSTR lpFileName;
PCWSTR lpFilePath;
}
alias _ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_FILE_DETAILED_INFORMATION;
alias _ASSEMBLY_FILE_DETAILED_INFORMATION* PASSEMBLY_FILE_DETAILED_INFORMATION;
alias ASSEMBLY_FILE_DETAILED_INFORMATION* PCASSEMBLY_FILE_DETAILED_INFORMATION;
alias _ASSEMBLY_FILE_DETAILED_INFORMATION _ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION;
alias ASSEMBLY_FILE_DETAILED_INFORMATION ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION;
alias PASSEMBLY_FILE_DETAILED_INFORMATION PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION;
alias PCASSEMBLY_FILE_DETAILED_INFORMATION PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION;
struct _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {
DWORD ulFlags;
DWORD ulEncodedAssemblyIdentityLength;
DWORD ulManifestPathType;
DWORD ulManifestPathLength;
LARGE_INTEGER liManifestLastWriteTime;
DWORD ulPolicyPathType;
DWORD ulPolicyPathLength;
LARGE_INTEGER liPolicyLastWriteTime;
DWORD ulMetadataSatelliteRosterIndex;
DWORD ulManifestVersionMajor;
DWORD ulManifestVersionMinor;
DWORD ulPolicyVersionMajor;
DWORD ulPolicyVersionMinor;
DWORD ulAssemblyDirectoryNameLength;
PCWSTR lpAssemblyEncodedAssemblyIdentity;
PCWSTR lpAssemblyManifestPath;
PCWSTR lpAssemblyPolicyPath;
PCWSTR lpAssemblyDirectoryName;
DWORD ulFileCount;
}
alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
alias _ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
struct _ACTIVATION_CONTEXT_DETAILED_INFORMATION {
DWORD dwFlags;
DWORD ulFormatVersion;
DWORD ulAssemblyCount;
DWORD ulRootManifestPathType;
DWORD ulRootManifestPathChars;
DWORD ulRootConfigurationPathType;
DWORD ulRootConfigurationPathChars;
DWORD ulAppDirPathType;
DWORD ulAppDirPathChars;
PCWSTR lpRootManifestPath;
PCWSTR lpRootConfigurationPath;
PCWSTR lpAppDirPath;
}
alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION ACTIVATION_CONTEXT_DETAILED_INFORMATION;
alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PACTIVATION_CONTEXT_DETAILED_INFORMATION;
alias _ACTIVATION_CONTEXT_DETAILED_INFORMATION* PCACTIVATION_CONTEXT_DETAILED_INFORMATION;
enum : uint { DLL_PROCESS_ATTACH = 1 }
enum : uint { DLL_THREAD_ATTACH = 2 }
enum : uint { DLL_THREAD_DETACH = 3 }
enum : uint { DLL_PROCESS_DETACH = 0 }
enum : uint { DLL_PROCESS_VERIFIER = 4 }
enum : uint { EVENTLOG_SEQUENTIAL_READ = 0x0001 }
enum : uint { EVENTLOG_SEEK_READ = 0x0002 }
enum : uint { EVENTLOG_FORWARDS_READ = 0x0004 }
enum : uint { EVENTLOG_BACKWARDS_READ = 0x0008 }
enum : uint { EVENTLOG_SUCCESS = 0x0000 }
enum : uint { EVENTLOG_ERROR_TYPE = 0x0001 }
enum : uint { EVENTLOG_WARNING_TYPE = 0x0002 }
enum : uint { EVENTLOG_INFORMATION_TYPE = 0x0004 }
enum : uint { EVENTLOG_AUDIT_SUCCESS = 0x0008 }
enum : uint { EVENTLOG_AUDIT_FAILURE = 0x0010 }
enum : uint { EVENTLOG_START_PAIRED_EVENT = 0x0001 }
enum : uint { EVENTLOG_END_PAIRED_EVENT = 0x0002 }
enum : uint { EVENTLOG_END_ALL_PAIRED_EVENTS = 0x0004 }
enum : uint { EVENTLOG_PAIRED_EVENT_ACTIVE = 0x0008 }
enum : uint { EVENTLOG_PAIRED_EVENT_INACTIVE = 0x0010 }
struct _EVENTLOGRECORD {
DWORD Length;
DWORD Reserved;
DWORD RecordNumber;
DWORD TimeGenerated;
DWORD TimeWritten;
DWORD EventID;
WORD EventType;
WORD NumStrings;
WORD EventCategory;
WORD ReservedFlags;
DWORD ClosingRecordNumber;
DWORD StringOffset;
DWORD UserSidLength;
DWORD UserSidOffset;
DWORD DataLength;
DWORD DataOffset;
}
alias _EVENTLOGRECORD EVENTLOGRECORD;
alias _EVENTLOGRECORD* PEVENTLOGRECORD;
enum : uint { MAXLOGICALLOGNAMESIZE = 256 }
// #if _MSC_VER >= 1200
// #pragma warning(push)
// #endif
// #pragma warning(disable : 4200)
struct _EVENTSFORLOGFILE {
DWORD ulSize;
WCHAR szLogicalLogFile[MAXLOGICALLOGNAMESIZE];
DWORD ulNumRecords;
EVENTLOGRECORD pEventLogRecords[];
}
alias _EVENTSFORLOGFILE EVENTSFORLOGFILE;
alias _EVENTSFORLOGFILE* PEVENTSFORLOGFILE;
struct _PACKEDEVENTINFO {
DWORD ulSize;
DWORD ulNumEventsForLogFile;
DWORD ulOffsets[];
}
alias _PACKEDEVENTINFO PACKEDEVENTINFO;
alias _PACKEDEVENTINFO* PPACKEDEVENTINFO;
// #if _MSC_VER >= 1200
// #pragma warning(pop)
// #else
// #...
// #endif
enum : uint { KEY_QUERY_VALUE = 0x0001 }
enum : uint { KEY_SET_VALUE = 0x0002 }
enum : uint { KEY_CREATE_SUB_KEY = 0x0004 }
enum : uint { KEY_ENUMERATE_SUB_KEYS = 0x0008 }
enum : uint { KEY_NOTIFY = 0x0010 }
enum : uint { KEY_CREATE_LINK = 0x0020 }
enum : uint { KEY_WOW64_32KEY = 0x0200 }
enum : uint { KEY_WOW64_64KEY = 0x0100 }
enum : uint { KEY_WOW64_RES = 0x0300 }
enum : uint { KEY_READ = (STANDARD_RIGHTS_READ | KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY) & (~SYNCHRONIZE) }
enum : uint { KEY_WRITE = (STANDARD_RIGHTS_WRITE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY) & (~SYNCHRONIZE) }
enum : uint { KEY_EXECUTE = KEY_READ & ~SYNCHRONIZE }
enum : uint { KEY_ALL_ACCESS = (STANDARD_RIGHTS_ALL | KEY_QUERY_VALUE | KEY_SET_VALUE | KEY_CREATE_SUB_KEY | KEY_ENUMERATE_SUB_KEYS | KEY_NOTIFY | KEY_CREATE_LINK) & (~SYNCHRONIZE) }
enum : uint { REG_OPTION_RESERVED = 0x00000000 }
enum : uint { REG_OPTION_NON_VOLATILE = 0x00000000 }
enum : uint { REG_OPTION_VOLATILE = 0x00000001 }
enum : uint { REG_OPTION_CREATE_LINK = 0x00000002 }
enum : uint { REG_OPTION_BACKUP_RESTORE = 0x00000004 }
enum : uint { REG_OPTION_OPEN_LINK = 0x00000008 }
enum : uint { REG_LEGAL_OPTION = REG_OPTION_RESERVED | REG_OPTION_NON_VOLATILE | REG_OPTION_VOLATILE | REG_OPTION_CREATE_LINK | REG_OPTION_BACKUP_RESTORE | REG_OPTION_OPEN_LINK }
enum : uint { REG_CREATED_NEW_KEY = 0x00000001 }
enum : uint { REG_OPENED_EXISTING_KEY = 0x00000002 }
enum : uint { REG_STANDARD_FORMAT = 1 }
enum : uint { REG_LATEST_FORMAT = 2 }
enum : uint { REG_NO_COMPRESSION = 4 }
enum : uint { REG_WHOLE_HIVE_VOLATILE = 0x00000001 }
enum : uint { REG_REFRESH_HIVE = 0x00000002 }
enum : uint { REG_NO_LAZY_FLUSH = 0x00000004 }
enum : uint { REG_FORCE_RESTORE = 0x00000008 }
enum : uint { REG_NOTIFY_CHANGE_NAME = 0x00000001 }
enum : uint { REG_NOTIFY_CHANGE_ATTRIBUTES = 0x00000002 }
enum : uint { REG_NOTIFY_CHANGE_LAST_SET = 0x00000004 }
enum : uint { REG_NOTIFY_CHANGE_SECURITY = 0x00000008 }
enum : uint { REG_LEGAL_CHANGE_FILTER = REG_NOTIFY_CHANGE_NAME | REG_NOTIFY_CHANGE_ATTRIBUTES | REG_NOTIFY_CHANGE_LAST_SET | REG_NOTIFY_CHANGE_SECURITY }
enum : uint { REG_NONE = 0 }
enum : uint { REG_SZ = 1 }
enum : uint { REG_EXPAND_SZ = 2 }
enum : uint { REG_BINARY = 3 }
enum : uint { REG_DWORD = 4 }
enum : uint { REG_DWORD_LITTLE_ENDIAN = 4 }
enum : uint { REG_DWORD_BIG_ENDIAN = 5 }
enum : uint { REG_LINK = 6 }
enum : uint { REG_MULTI_SZ = 7 }
enum : uint { REG_RESOURCE_LIST = 8 }
enum : uint { REG_FULL_RESOURCE_DESCRIPTOR = 9 }
enum : uint { REG_RESOURCE_REQUIREMENTS_LIST = 10 }
enum : uint { REG_QWORD = 11 }
enum : uint { REG_QWORD_LITTLE_ENDIAN = 11 }
enum : uint { SERVICE_KERNEL_DRIVER = 0x00000001 }
enum : uint { SERVICE_FILE_SYSTEM_DRIVER = 0x00000002 }
enum : uint { SERVICE_ADAPTER = 0x00000004 }
enum : uint { SERVICE_RECOGNIZER_DRIVER = 0x00000008 }
enum : uint { SERVICE_DRIVER = SERVICE_KERNEL_DRIVER | SERVICE_FILE_SYSTEM_DRIVER | SERVICE_RECOGNIZER_DRIVER }
enum : uint { SERVICE_WIN32_OWN_PROCESS = 0x00000010 }
enum : uint { SERVICE_WIN32_SHARE_PROCESS = 0x00000020 }
enum : uint { SERVICE_WIN32 = SERVICE_WIN32_OWN_PROCESS | SERVICE_WIN32_SHARE_PROCESS }
enum : uint { SERVICE_INTERACTIVE_PROCESS = 0x00000100 }
enum : uint { SERVICE_TYPE_ALL = SERVICE_WIN32 | SERVICE_ADAPTER | SERVICE_DRIVER | SERVICE_INTERACTIVE_PROCESS }
enum : uint { SERVICE_BOOT_START = 0x00000000 }
enum : uint { SERVICE_SYSTEM_START = 0x00000001 }
enum : uint { SERVICE_AUTO_START = 0x00000002 }
enum : uint { SERVICE_DEMAND_START = 0x00000003 }
enum : uint { SERVICE_DISABLED = 0x00000004 }
enum : uint { SERVICE_ERROR_IGNORE = 0x00000000 }
enum : uint { SERVICE_ERROR_NORMAL = 0x00000001 }
enum : uint { SERVICE_ERROR_SEVERE = 0x00000002 }
enum : uint { SERVICE_ERROR_CRITICAL = 0x00000003 }
alias int _CM_SERVICE_NODE_TYPE;
enum {
DriverType = SERVICE_KERNEL_DRIVER,
FileSystemType = SERVICE_FILE_SYSTEM_DRIVER,
Win32ServiceOwnProcess = SERVICE_WIN32_OWN_PROCESS,
Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,
AdapterType = SERVICE_ADAPTER,
RecognizerType = SERVICE_RECOGNIZER_DRIVER,
}
alias _CM_SERVICE_NODE_TYPE SERVICE_NODE_TYPE;
alias int _CM_SERVICE_LOAD_TYPE;
enum {
BootLoad = SERVICE_BOOT_START,
SystemLoad = SERVICE_SYSTEM_START,
AutoLoad = SERVICE_AUTO_START,
DemandLoad = SERVICE_DEMAND_START,
DisableLoad = SERVICE_DISABLED,
}
alias _CM_SERVICE_LOAD_TYPE SERVICE_LOAD_TYPE;
alias int _CM_ERROR_CONTROL_TYPE;
enum {
IgnoreError = SERVICE_ERROR_IGNORE,
NormalError = SERVICE_ERROR_NORMAL,
SevereError = SERVICE_ERROR_SEVERE,
CriticalError = SERVICE_ERROR_CRITICAL,
}
alias _CM_ERROR_CONTROL_TYPE SERVICE_ERROR_TYPE;
enum : uint { TAPE_ERASE_SHORT = 0 }
enum : uint { TAPE_ERASE_LONG = 1 }
struct _TAPE_ERASE {
DWORD Type;
BOOLEAN Immediate;
}
alias _TAPE_ERASE TAPE_ERASE;
alias _TAPE_ERASE* PTAPE_ERASE;
enum : uint { TAPE_LOAD = 0 }
enum : uint { TAPE_UNLOAD = 1 }
enum : uint { TAPE_TENSION = 2 }
enum : uint { TAPE_LOCK = 3 }
enum : uint { TAPE_UNLOCK = 4 }
enum : uint { TAPE_FORMAT = 5 }
struct _TAPE_PREPARE {
DWORD Operation;
BOOLEAN Immediate;
}
alias _TAPE_PREPARE TAPE_PREPARE;
alias _TAPE_PREPARE* PTAPE_PREPARE;
enum : uint { TAPE_SETMARKS = 0 }
enum : uint { TAPE_FILEMARKS = 1 }
enum : uint { TAPE_SHORT_FILEMARKS = 2 }
enum : uint { TAPE_LONG_FILEMARKS = 3 }
struct _TAPE_WRITE_MARKS {
DWORD Type;
DWORD Count;
BOOLEAN Immediate;
}
alias _TAPE_WRITE_MARKS TAPE_WRITE_MARKS;
alias _TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS;
enum : uint { TAPE_ABSOLUTE_POSITION = 0 }
enum : uint { TAPE_LOGICAL_POSITION = 1 }
enum : uint { TAPE_PSEUDO_LOGICAL_POSITION = 2 }
struct _TAPE_GET_POSITION {
DWORD Type;
DWORD Partition;
LARGE_INTEGER Offset;
}
alias _TAPE_GET_POSITION TAPE_GET_POSITION;
alias _TAPE_GET_POSITION* PTAPE_GET_POSITION;
enum : uint { TAPE_REWIND = 0 }
enum : uint { TAPE_ABSOLUTE_BLOCK = 1 }
enum : uint { TAPE_LOGICAL_BLOCK = 2 }
enum : uint { TAPE_PSEUDO_LOGICAL_BLOCK = 3 }
enum : uint { TAPE_SPACE_END_OF_DATA = 4 }
enum : uint { TAPE_SPACE_RELATIVE_BLOCKS = 5 }
enum : uint { TAPE_SPACE_FILEMARKS = 6 }
enum : uint { TAPE_SPACE_SEQUENTIAL_FMKS = 7 }
enum : uint { TAPE_SPACE_SETMARKS = 8 }
enum : uint { TAPE_SPACE_SEQUENTIAL_SMKS = 9 }
struct _TAPE_SET_POSITION {
DWORD Method;
DWORD Partition;
LARGE_INTEGER Offset;
BOOLEAN Immediate;
}
alias _TAPE_SET_POSITION TAPE_SET_POSITION;
alias _TAPE_SET_POSITION* PTAPE_SET_POSITION;
enum : uint { TAPE_DRIVE_FIXED = 0x00000001 }
enum : uint { TAPE_DRIVE_SELECT = 0x00000002 }
enum : uint { TAPE_DRIVE_INITIATOR = 0x00000004 }
enum : uint { TAPE_DRIVE_ERASE_SHORT = 0x00000010 }
enum : uint { TAPE_DRIVE_ERASE_LONG = 0x00000020 }
enum : uint { TAPE_DRIVE_ERASE_BOP_ONLY = 0x00000040 }
enum : uint { TAPE_DRIVE_ERASE_IMMEDIATE = 0x00000080 }
enum : uint { TAPE_DRIVE_TAPE_CAPACITY = 0x00000100 }
enum : uint { TAPE_DRIVE_TAPE_REMAINING = 0x00000200 }
enum : uint { TAPE_DRIVE_FIXED_BLOCK = 0x00000400 }
enum : uint { TAPE_DRIVE_VARIABLE_BLOCK = 0x00000800 }
enum : uint { TAPE_DRIVE_WRITE_PROTECT = 0x00001000 }
enum : uint { TAPE_DRIVE_EOT_WZ_SIZE = 0x00002000 }
enum : uint { TAPE_DRIVE_ECC = 0x00010000 }
enum : uint { TAPE_DRIVE_COMPRESSION = 0x00020000 }
enum : uint { TAPE_DRIVE_PADDING = 0x00040000 }
enum : uint { TAPE_DRIVE_REPORT_SMKS = 0x00080000 }
enum : uint { TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000 }
enum : uint { TAPE_DRIVE_GET_LOGICAL_BLK = 0x00200000 }
enum : uint { TAPE_DRIVE_SET_EOT_WZ_SIZE = 0x00400000 }
enum : uint { TAPE_DRIVE_EJECT_MEDIA = 0x01000000 }
enum : uint { TAPE_DRIVE_CLEAN_REQUESTS = 0x02000000 }
enum : uint { TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000 }
enum : uint { TAPE_DRIVE_RESERVED_BIT = 0x80000000 }
enum : uint { TAPE_DRIVE_LOAD_UNLOAD = 0x80000001 }
enum : uint { TAPE_DRIVE_TENSION = 0x80000002 }
enum : uint { TAPE_DRIVE_LOCK_UNLOCK = 0x80000004 }
enum : uint { TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008 }
enum : uint { TAPE_DRIVE_SET_BLOCK_SIZE = 0x80000010 }
enum : uint { TAPE_DRIVE_LOAD_UNLD_IMMED = 0x80000020 }
enum : uint { TAPE_DRIVE_TENSION_IMMED = 0x80000040 }
enum : uint { TAPE_DRIVE_LOCK_UNLK_IMMED = 0x80000080 }
enum : uint { TAPE_DRIVE_SET_ECC = 0x80000100 }
enum : uint { TAPE_DRIVE_SET_COMPRESSION = 0x80000200 }
enum : uint { TAPE_DRIVE_SET_PADDING = 0x80000400 }
enum : uint { TAPE_DRIVE_SET_REPORT_SMKS = 0x80000800 }
enum : uint { TAPE_DRIVE_ABSOLUTE_BLK = 0x80001000 }
enum : uint { TAPE_DRIVE_ABS_BLK_IMMED = 0x80002000 }
enum : uint { TAPE_DRIVE_LOGICAL_BLK = 0x80004000 }
enum : uint { TAPE_DRIVE_LOG_BLK_IMMED = 0x80008000 }
enum : uint { TAPE_DRIVE_END_OF_DATA = 0x80010000 }
enum : uint { TAPE_DRIVE_RELATIVE_BLKS = 0x80020000 }
enum : uint { TAPE_DRIVE_FILEMARKS = 0x80040000 }
enum : uint { TAPE_DRIVE_SEQUENTIAL_FMKS = 0x80080000 }
enum : uint { TAPE_DRIVE_SETMARKS = 0x80100000 }
enum : uint { TAPE_DRIVE_SEQUENTIAL_SMKS = 0x80200000 }
enum : uint { TAPE_DRIVE_REVERSE_POSITION = 0x80400000 }
enum : uint { TAPE_DRIVE_SPACE_IMMEDIATE = 0x80800000 }
enum : uint { TAPE_DRIVE_WRITE_SETMARKS = 0x81000000 }
enum : uint { TAPE_DRIVE_WRITE_FILEMARKS = 0x82000000 }
enum : uint { TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000 }
enum : uint { TAPE_DRIVE_WRITE_LONG_FMKS = 0x88000000 }
enum : uint { TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000 }
enum : uint { TAPE_DRIVE_FORMAT = 0xA0000000 }
enum : uint { TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000 }
enum : uint { TAPE_DRIVE_HIGH_FEATURES = 0x80000000 }
struct _TAPE_GET_DRIVE_PARAMETERS {
BOOLEAN ECC;
BOOLEAN Compression;
BOOLEAN DataPadding;
BOOLEAN ReportSetmarks;
DWORD DefaultBlockSize;
DWORD MaximumBlockSize;
DWORD MinimumBlockSize;
DWORD MaximumPartitionCount;
DWORD FeaturesLow;
DWORD FeaturesHigh;
DWORD EOTWarningZoneSize;
}
alias _TAPE_GET_DRIVE_PARAMETERS TAPE_GET_DRIVE_PARAMETERS;
alias _TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS;
struct _TAPE_SET_DRIVE_PARAMETERS {
BOOLEAN ECC;
BOOLEAN Compression;
BOOLEAN DataPadding;
BOOLEAN ReportSetmarks;
DWORD EOTWarningZoneSize;
}
alias _TAPE_SET_DRIVE_PARAMETERS TAPE_SET_DRIVE_PARAMETERS;
alias _TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS;
struct _TAPE_GET_MEDIA_PARAMETERS {
LARGE_INTEGER Capacity;
LARGE_INTEGER Remaining;
DWORD BlockSize;
DWORD PartitionCount;
BOOLEAN WriteProtected;
}
alias _TAPE_GET_MEDIA_PARAMETERS TAPE_GET_MEDIA_PARAMETERS;
alias _TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS;
struct _TAPE_SET_MEDIA_PARAMETERS {
DWORD BlockSize;
}
alias _TAPE_SET_MEDIA_PARAMETERS TAPE_SET_MEDIA_PARAMETERS;
alias _TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS;
enum : uint { TAPE_FIXED_PARTITIONS = 0 }
enum : uint { TAPE_SELECT_PARTITIONS = 1 }
enum : uint { TAPE_INITIATOR_PARTITIONS = 2 }
struct _TAPE_CREATE_PARTITION {
DWORD Method;
DWORD Count;
DWORD Size;
}
alias _TAPE_CREATE_PARTITION TAPE_CREATE_PARTITION;
alias _TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION;
enum : uint { TAPE_QUERY_DRIVE_PARAMETERS = 0 }
enum : uint { TAPE_QUERY_MEDIA_CAPACITY = 1 }
enum : uint { TAPE_CHECK_FOR_DRIVE_PROBLEM = 2 }
enum : uint { TAPE_QUERY_IO_ERROR_DATA = 3 }
enum : uint { TAPE_QUERY_DEVICE_ERROR_DATA = 4 }
struct _TAPE_WMI_OPERATIONS {
DWORD Method;
DWORD DataBufferSize;
PVOID DataBuffer;
}
alias _TAPE_WMI_OPERATIONS TAPE_WMI_OPERATIONS;
alias _TAPE_WMI_OPERATIONS* PTAPE_WMI_OPERATIONS;
alias int _TAPE_DRIVE_PROBLEM_TYPE;
enum {
TapeDriveProblemNone,
TapeDriveReadWriteWarning,
TapeDriveReadWriteError,
TapeDriveReadWarning,
TapeDriveWriteWarning,
TapeDriveReadError,
TapeDriveWriteError,
TapeDriveHardwareError,
TapeDriveUnsupportedMedia,
TapeDriveScsiConnectionError,
TapeDriveTimetoClean,
TapeDriveCleanDriveNow,
TapeDriveMediaLifeExpired,
TapeDriveSnappedTape,
}
alias _TAPE_DRIVE_PROBLEM_TYPE TAPE_DRIVE_PROBLEM_TYPE;
// #if defined(_M_AMD64) && !defined(__midl)
// ...
// ...
// ...
// ...
// ...
// ...
// #endif // _M_AMD64 && !defined(__midl)
// #if (_WIN32_WINNT > 0x0500) || (_WIN32_FUSION >= 0x0100) || ISOLATION_AWARE_ENABLED // winnt_only
enum : uint { ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1 }
enum : uint { ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION = 2 }
enum : uint { ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION = 3 }
enum : uint { ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION = 4 }
enum : uint { ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION = 5 }
enum : uint { ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION = 6 }
enum : uint { ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION = 7 }
enum : uint { ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE = 8 }
// #endif // winnt_only
// #ifdef __cplusplus
// }
// #endif
// #endif /* _WINNT_ */