File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                winnt.d                                *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *             Translated from MinGW API for MS-Windows 3.12             *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
c2b7a98c21 2011-02-23        kinaba: module win32.winnt;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: public import win32.basetsd, win32.windef, win32.winerror;
4e2933c620 2015-04-21        kinaba: private import win32.w32api;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /* Translation Notes:
4e2933c620 2015-04-21        kinaba: The following macros are unneeded for D:
4e2933c620 2015-04-21        kinaba: FIELD_OFFSET(t,f), CONTAINING_RECORD(address, type, field)
4e2933c620 2015-04-21        kinaba: */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias void   VOID;
4e2933c620 2015-04-21        kinaba: alias char   CHAR, CCHAR;
4e2933c620 2015-04-21        kinaba: alias wchar  WCHAR;
4e2933c620 2015-04-21        kinaba: alias bool   BOOLEAN;
4e2933c620 2015-04-21        kinaba: alias byte   FCHAR;
4e2933c620 2015-04-21        kinaba: alias ubyte  UCHAR;
4e2933c620 2015-04-21        kinaba: alias short  SHORT;
4e2933c620 2015-04-21        kinaba: alias ushort LANGID, FSHORT;
4e2933c620 2015-04-21        kinaba: alias uint   LCID, FLONG, ACCESS_MASK;
4e2933c620 2015-04-21        kinaba: alias long   LONGLONG, USN;
4e2933c620 2015-04-21        kinaba: alias ulong  DWORDLONG, ULONGLONG;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias void*  PVOID, LPVOID;
4e2933c620 2015-04-21        kinaba: alias char*  PSZ, PCHAR, PCCHAR, LPCH, PCH, LPSTR, PSTR;
4e2933c620 2015-04-21        kinaba: alias wchar* PWCHAR, LPWCH, PWCH, LPWSTR, PWSTR;
4e2933c620 2015-04-21        kinaba: alias bool*  PBOOLEAN;
4e2933c620 2015-04-21        kinaba: alias ubyte* PUCHAR;
4e2933c620 2015-04-21        kinaba: alias short* PSHORT;
4e2933c620 2015-04-21        kinaba: alias int*   PLONG;
4e2933c620 2015-04-21        kinaba: alias uint*  PLCID, PACCESS_MASK;
4e2933c620 2015-04-21        kinaba: alias long*  PLONGLONG;
4e2933c620 2015-04-21        kinaba: alias ulong* PDWORDLONG, PULONGLONG;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME(MinGW) for __WIN64
4e2933c620 2015-04-21        kinaba: alias void*  PVOID64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // const versions
9b639cf2d6 2015-05-05        kinaba: alias const(char)*  LPCCH, PCSTR, LPCSTR;
9b639cf2d6 2015-05-05        kinaba: alias const(wchar)* LPCWCH, PCWCH, LPCWSTR, PCWSTR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias WCHAR TCHAR, _TCHAR;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias CHAR TCHAR, _TCHAR;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: alias TCHAR         TBYTE;
9b639cf2d6 2015-05-05        kinaba: alias TCHAR*        PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR;
9b639cf2d6 2015-05-05        kinaba: alias const(TCHAR)* LPCTSTR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const char ANSI_NULL = '\0';
4e2933c620 2015-04-21        kinaba: const wchar UNICODE_NULL = '\0';
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const APPLICATION_ERROR_MASK       = 0x20000000;
4e2933c620 2015-04-21        kinaba: const ERROR_SEVERITY_SUCCESS       = 0x00000000;
4e2933c620 2015-04-21        kinaba: const ERROR_SEVERITY_INFORMATIONAL = 0x40000000;
4e2933c620 2015-04-21        kinaba: const ERROR_SEVERITY_WARNING       = 0x80000000;
4e2933c620 2015-04-21        kinaba: const ERROR_SEVERITY_ERROR         = 0xC0000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // MinGW: also in ddk/ntifs.h
4e2933c620 2015-04-21        kinaba: enum : USHORT {
4e2933c620 2015-04-21        kinaba: 	COMPRESSION_FORMAT_NONE     = 0x0000,
4e2933c620 2015-04-21        kinaba: 	COMPRESSION_FORMAT_DEFAULT  = 0x0001,
4e2933c620 2015-04-21        kinaba: 	COMPRESSION_FORMAT_LZNT1    = 0x0002,
4e2933c620 2015-04-21        kinaba: 	COMPRESSION_ENGINE_STANDARD = 0x0000,
4e2933c620 2015-04-21        kinaba: 	COMPRESSION_ENGINE_MAXIMUM  = 0x0100,
4e2933c620 2015-04-21        kinaba: 	COMPRESSION_ENGINE_HIBER    = 0x0200
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ACCESS_DENIED_OBJECT_ACE, etc
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	ACE_OBJECT_TYPE_PRESENT           = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ACE_INHERITED_OBJECT_TYPE_PRESENT = 0x00000002;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ACE_HEADER.AceType
4e2933c620 2015-04-21        kinaba: // also in ddk/ntifs.h
4e2933c620 2015-04-21        kinaba: enum : BYTE {
4e2933c620 2015-04-21        kinaba: 	ACCESS_ALLOWED_ACE_TYPE,
4e2933c620 2015-04-21        kinaba: 	ACCESS_DENIED_ACE_TYPE,
4e2933c620 2015-04-21        kinaba: 	SYSTEM_AUDIT_ACE_TYPE,
4e2933c620 2015-04-21        kinaba: 	SYSTEM_ALARM_ACE_TYPE
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ACE_HEADER.AceFlags
4e2933c620 2015-04-21        kinaba: const BYTE
4e2933c620 2015-04-21        kinaba: 	OBJECT_INHERIT_ACE         = 0x01,
4e2933c620 2015-04-21        kinaba: 	CONTAINER_INHERIT_ACE      = 0x02,
4e2933c620 2015-04-21        kinaba: 	NO_PROPAGATE_INHERIT_ACE   = 0x04,
4e2933c620 2015-04-21        kinaba: 	INHERIT_ONLY_ACE           = 0x08,
4e2933c620 2015-04-21        kinaba: 	INHERITED_ACE              = 0x10,
4e2933c620 2015-04-21        kinaba: 	VALID_INHERIT_FLAGS        = 0x1F,
4e2933c620 2015-04-21        kinaba: 	SUCCESSFUL_ACCESS_ACE_FLAG = 0x40,
4e2933c620 2015-04-21        kinaba: 	FAILED_ACCESS_ACE_FLAG     = 0x80;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Access Mask Format
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	DELETE                   = 0x00010000,
4e2933c620 2015-04-21        kinaba: 	READ_CONTROL             = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	WRITE_DAC                = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	WRITE_OWNER              = 0x00080000,
4e2933c620 2015-04-21        kinaba: 	SYNCHRONIZE              = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	ACCESS_SYSTEM_SECURITY   = 0x01000000,
4e2933c620 2015-04-21        kinaba: 	MAXIMUM_ALLOWED          = 0x02000000,
4e2933c620 2015-04-21        kinaba: 	GENERIC_READ             = 0x80000000,
4e2933c620 2015-04-21        kinaba: 	GENERIC_WRITE            = 0x40000000,
4e2933c620 2015-04-21        kinaba: 	GENERIC_EXECUTE          = 0x20000000,
4e2933c620 2015-04-21        kinaba: 	GENERIC_ALL              = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	STANDARD_RIGHTS_REQUIRED = 0x000F0000,
4e2933c620 2015-04-21        kinaba: 	STANDARD_RIGHTS_READ     = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	STANDARD_RIGHTS_WRITE    = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	STANDARD_RIGHTS_EXECUTE  = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	STANDARD_RIGHTS_ALL      = 0x001F0000,
4e2933c620 2015-04-21        kinaba: 	SPECIFIC_RIGHTS_ALL      = 0x0000FFFF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD INVALID_FILE_ATTRIBUTES = -1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // MinGW: Also in ddk/winddk.h
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	FILE_LIST_DIRECTORY       = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_READ_DATA            = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_ADD_FILE             = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_WRITE_DATA           = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_ADD_SUBDIRECTORY     = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_APPEND_DATA          = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_CREATE_PIPE_INSTANCE = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_READ_EA              = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	FILE_READ_PROPERTIES      = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	FILE_WRITE_EA             = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	FILE_WRITE_PROPERTIES     = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	FILE_EXECUTE              = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	FILE_TRAVERSE             = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	FILE_DELETE_CHILD         = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	FILE_READ_ATTRIBUTES      = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	FILE_WRITE_ATTRIBUTES     = 0x00000100;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	FILE_SHARE_READ        = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_SHARE_WRITE       = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_SHARE_DELETE      = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_SHARE_VALID_FLAGS = 0x00000007;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_READONLY            = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_HIDDEN              = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_SYSTEM              = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_DIRECTORY           = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_ARCHIVE             = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_DEVICE              = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_NORMAL              = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_TEMPORARY           = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_SPARSE_FILE         = 0x00000200,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_REPARSE_POINT       = 0x00000400,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_COMPRESSED          = 0x00000800,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_OFFLINE             = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 0x00002000,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_ENCRYPTED           = 0x00004000,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_VALID_FLAGS         = 0x00007fb7,
4e2933c620 2015-04-21        kinaba: 	FILE_ATTRIBUTE_VALID_SET_FLAGS     = 0x000031a7;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // These are not documented on MSDN
4e2933c620 2015-04-21        kinaba: const FILE_COPY_STRUCTURED_STORAGE = 0x00000041;
4e2933c620 2015-04-21        kinaba: const FILE_STRUCTURED_STORAGE      = 0x00000441;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Nor are these
4e2933c620 2015-04-21        kinaba: const FILE_VALID_OPTION_FLAGS          = 0x00ffffff;
4e2933c620 2015-04-21        kinaba: const FILE_VALID_PIPE_OPTION_FLAGS     = 0x00000032;
4e2933c620 2015-04-21        kinaba: const FILE_VALID_MAILSLOT_OPTION_FLAGS = 0x00000032;
4e2933c620 2015-04-21        kinaba: const FILE_VALID_SET_FLAGS             = 0x00000036;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ULONG
4e2933c620 2015-04-21        kinaba: 	FILE_SUPERSEDE           = 0x00000000,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN                = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_CREATE              = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN_IF             = 0x00000003,
4e2933c620 2015-04-21        kinaba: 	FILE_OVERWRITE           = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_OVERWRITE_IF        = 0x00000005,
4e2933c620 2015-04-21        kinaba: 	FILE_MAXIMUM_DISPOSITION = 0x00000005;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ULONG
4e2933c620 2015-04-21        kinaba: 	FILE_DIRECTORY_FILE            = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_WRITE_THROUGH             = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_SEQUENTIAL_ONLY           = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	FILE_SYNCHRONOUS_IO_ALERT      = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	FILE_SYNCHRONOUS_IO_NONALERT   = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	FILE_NON_DIRECTORY_FILE        = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	FILE_CREATE_TREE_CONNECTION    = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	FILE_COMPLETE_IF_OPLOCKED      = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	FILE_NO_EA_KNOWLEDGE           = 0x00000200,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN_FOR_RECOVERY         = 0x00000400,
4e2933c620 2015-04-21        kinaba: 	FILE_RANDOM_ACCESS             = 0x00000800,
4e2933c620 2015-04-21        kinaba: 	FILE_DELETE_ON_CLOSE           = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN_BY_FILE_ID           = 0x00002000,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN_FOR_BACKUP_INTENT    = 0x00004000,
4e2933c620 2015-04-21        kinaba: 	FILE_NO_COMPRESSION            = 0x00008000,
4e2933c620 2015-04-21        kinaba: 	FILE_RESERVE_OPFILTER          = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN_REPARSE_POINT        = 0x00200000,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN_NO_RECALL            = 0x00400000,
4e2933c620 2015-04-21        kinaba: 	FILE_OPEN_FOR_FREE_SPACE_QUERY = 0x00800000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	FILE_ALL_ACCESS      = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x01FF,
4e2933c620 2015-04-21        kinaba: 	FILE_GENERIC_EXECUTE = STANDARD_RIGHTS_EXECUTE | FILE_READ_ATTRIBUTES
4e2933c620 2015-04-21        kinaba: 	                       | FILE_EXECUTE | SYNCHRONIZE,
4e2933c620 2015-04-21        kinaba: 	FILE_GENERIC_READ    = STANDARD_RIGHTS_READ | FILE_READ_DATA
4e2933c620 2015-04-21        kinaba: 	                       | FILE_READ_ATTRIBUTES | FILE_READ_EA | SYNCHRONIZE,
4e2933c620 2015-04-21        kinaba: 	FILE_GENERIC_WRITE   = STANDARD_RIGHTS_WRITE | FILE_WRITE_DATA
4e2933c620 2015-04-21        kinaba: 	                       | FILE_WRITE_ATTRIBUTES | FILE_WRITE_EA | FILE_APPEND_DATA
4e2933c620 2015-04-21        kinaba: 	                       | SYNCHRONIZE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // MinGW: end winddk.h
4e2933c620 2015-04-21        kinaba: // MinGW: also in ddk/ntifs.h
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_FILE_NAME    = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_DIR_NAME     = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_NAME         = 0x00000003,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_ATTRIBUTES   = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_SIZE         = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_LAST_WRITE   = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_LAST_ACCESS  = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_CREATION     = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_EA           = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_SECURITY     = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_STREAM_NAME  = 0x00000200,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_STREAM_SIZE  = 0x00000400,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_CHANGE_STREAM_WRITE = 0x00000800,
4e2933c620 2015-04-21        kinaba: 	FILE_NOTIFY_VALID_MASK          = 0x00000fff;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	FILE_CASE_SENSITIVE_SEARCH      = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	FILE_CASE_PRESERVED_NAMES       = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	FILE_UNICODE_ON_DISK            = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	FILE_PERSISTENT_ACLS            = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	FILE_FILE_COMPRESSION           = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	FILE_VOLUME_QUOTAS              = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	FILE_SUPPORTS_SPARSE_FILES      = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	FILE_SUPPORTS_REPARSE_POINTS    = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	FILE_SUPPORTS_REMOTE_STORAGE    = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	FS_LFN_APIS                     = 0x00004000,
4e2933c620 2015-04-21        kinaba: 	FILE_VOLUME_IS_COMPRESSED       = 0x00008000,
4e2933c620 2015-04-21        kinaba: 	FILE_SUPPORTS_OBJECT_IDS        = 0x00010000,
4e2933c620 2015-04-21        kinaba: 	FILE_SUPPORTS_ENCRYPTION        = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	FILE_NAMED_STREAMS              = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	FILE_READ_ONLY_VOLUME           = 0x00080000,
4e2933c620 2015-04-21        kinaba: 	FILE_SEQUENTIAL_WRITE_ONCE      = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	FILE_SUPPORTS_TRANSACTIONS      = 0x00200000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // These are not documented on MSDN
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	IO_COMPLETION_QUERY_STATE  = 1,
4e2933c620 2015-04-21        kinaba: 	IO_COMPLETION_MODIFY_STATE = 2,
4e2933c620 2015-04-21        kinaba: 	IO_COMPLETION_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 3;
4e2933c620 2015-04-21        kinaba: // MinGW: end ntifs.h
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // MinGW: also in ddk/winddk.h
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	DUPLICATE_CLOSE_SOURCE    = 1,
4e2933c620 2015-04-21        kinaba: 	DUPLICATE_SAME_ACCESS     = 2,
4e2933c620 2015-04-21        kinaba: 	DUPLICATE_SAME_ATTRIBUTES = 4;
4e2933c620 2015-04-21        kinaba: // MinGW: end winddk.k
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	MAILSLOT_NO_MESSAGE   = -1,
4e2933c620 2015-04-21        kinaba: 	MAILSLOT_WAIT_FOREVER = -1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	PROCESS_TERMINATE         = 0x0001,
4e2933c620 2015-04-21        kinaba: 	PROCESS_CREATE_THREAD     = 0x0002,
4e2933c620 2015-04-21        kinaba: 	PROCESS_SET_SESSIONID     = 0x0004,
4e2933c620 2015-04-21        kinaba: 	PROCESS_VM_OPERATION      = 0x0008,
4e2933c620 2015-04-21        kinaba: 	PROCESS_VM_READ           = 0x0010,
4e2933c620 2015-04-21        kinaba: 	PROCESS_VM_WRITE          = 0x0020,
4e2933c620 2015-04-21        kinaba: 	PROCESS_DUP_HANDLE        = 0x0040,
4e2933c620 2015-04-21        kinaba: 	PROCESS_CREATE_PROCESS    = 0x0080,
4e2933c620 2015-04-21        kinaba: 	PROCESS_SET_QUOTA         = 0x0100,
4e2933c620 2015-04-21        kinaba: 	PROCESS_SET_INFORMATION   = 0x0200,
4e2933c620 2015-04-21        kinaba: 	PROCESS_QUERY_INFORMATION = 0x0400,
4e2933c620 2015-04-21        kinaba: 	PROCESS_ALL_ACCESS        = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x0FFF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	THREAD_TERMINATE            = 0x0001,
4e2933c620 2015-04-21        kinaba: 	THREAD_SUSPEND_RESUME       = 0x0002,
4e2933c620 2015-04-21        kinaba: 	THREAD_GET_CONTEXT          = 0x0008,
4e2933c620 2015-04-21        kinaba: 	THREAD_SET_CONTEXT          = 0x0010,
4e2933c620 2015-04-21        kinaba: 	THREAD_SET_INFORMATION      = 0x0020,
4e2933c620 2015-04-21        kinaba: 	THREAD_QUERY_INFORMATION    = 0x0040,
4e2933c620 2015-04-21        kinaba: 	THREAD_SET_THREAD_TOKEN     = 0x0080,
4e2933c620 2015-04-21        kinaba: 	THREAD_IMPERSONATE          = 0x0100,
4e2933c620 2015-04-21        kinaba: 	THREAD_DIRECT_IMPERSONATION = 0x0200,
4e2933c620 2015-04-21        kinaba: 	THREAD_ALL_ACCESS           = STANDARD_RIGHTS_REQUIRED|SYNCHRONIZE|0x3FF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // These are not documented on MSDN
4e2933c620 2015-04-21        kinaba: const THREAD_BASE_PRIORITY_LOWRT =  15;
4e2933c620 2015-04-21        kinaba: const THREAD_BASE_PRIORITY_MAX   =   2;
4e2933c620 2015-04-21        kinaba: const THREAD_BASE_PRIORITY_MIN   =  -2;
4e2933c620 2015-04-21        kinaba: const THREAD_BASE_PRIORITY_IDLE  = -15;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD EXCEPTION_NONCONTINUABLE      =  1;
4e2933c620 2015-04-21        kinaba: const size_t EXCEPTION_MAXIMUM_PARAMETERS = 15;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // These are not documented on MSDN
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	MUTANT_QUERY_STATE = 1,
4e2933c620 2015-04-21        kinaba: 	MUTANT_ALL_ACCESS =  STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | MUTANT_QUERY_STATE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	TIMER_QUERY_STATE  = 1,
4e2933c620 2015-04-21        kinaba: 	TIMER_MODIFY_STATE = 2,
4e2933c620 2015-04-21        kinaba: 	TIMER_ALL_ACCESS   = STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | TIMER_QUERY_STATE
4e2933c620 2015-04-21        kinaba: 	                     | TIMER_MODIFY_STATE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SID_IDENTIFIER_AUTHORITY
4e2933c620 2015-04-21        kinaba: 	SECURITY_NULL_SID_AUTHORITY        = {[5: 0]},
4e2933c620 2015-04-21        kinaba: 	SECURITY_WORLD_SID_AUTHORITY       = {[5: 1]},
4e2933c620 2015-04-21        kinaba: 	SECURITY_LOCAL_SID_AUTHORITY       = {[5: 2]},
4e2933c620 2015-04-21        kinaba: 	SECURITY_CREATOR_SID_AUTHORITY     = {[5: 3]},
4e2933c620 2015-04-21        kinaba: 	SECURITY_NON_UNIQUE_AUTHORITY      = {[5: 4]},
4e2933c620 2015-04-21        kinaba: 	SECURITY_NT_AUTHORITY              = {[5: 5]},
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_LABEL_AUTHORITY = {[5: 6]};
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SECURITY_NULL_RID                   =  0,
4e2933c620 2015-04-21        kinaba: 	SECURITY_WORLD_RID                  =  0,
4e2933c620 2015-04-21        kinaba: 	SECURITY_LOCAL_RID                  =  0,
4e2933c620 2015-04-21        kinaba: 	SECURITY_CREATOR_OWNER_RID          =  0,
4e2933c620 2015-04-21        kinaba: 	SECURITY_CREATOR_GROUP_RID          =  1,
4e2933c620 2015-04-21        kinaba: 	SECURITY_DIALUP_RID                 =  1,
4e2933c620 2015-04-21        kinaba: 	SECURITY_NETWORK_RID                =  2,
4e2933c620 2015-04-21        kinaba: 	SECURITY_BATCH_RID                  =  3,
4e2933c620 2015-04-21        kinaba: 	SECURITY_INTERACTIVE_RID            =  4,
4e2933c620 2015-04-21        kinaba: 	SECURITY_LOGON_IDS_RID              =  5,
4e2933c620 2015-04-21        kinaba: 	SECURITY_SERVICE_RID                =  6,
4e2933c620 2015-04-21        kinaba: 	SECURITY_LOCAL_SYSTEM_RID           = 18,
4e2933c620 2015-04-21        kinaba: 	SECURITY_BUILTIN_DOMAIN_RID         = 32,
4e2933c620 2015-04-21        kinaba: 	SECURITY_PRINCIPAL_SELF_RID         = 10,
4e2933c620 2015-04-21        kinaba: 	SECURITY_CREATOR_OWNER_SERVER_RID   =  2,
4e2933c620 2015-04-21        kinaba: 	SECURITY_CREATOR_GROUP_SERVER_RID   =  3,
4e2933c620 2015-04-21        kinaba: 	SECURITY_LOGON_IDS_RID_COUNT        =  3,
4e2933c620 2015-04-21        kinaba: 	SECURITY_ANONYMOUS_LOGON_RID        =  7,
4e2933c620 2015-04-21        kinaba: 	SECURITY_PROXY_RID                  =  8,
4e2933c620 2015-04-21        kinaba: 	SECURITY_ENTERPRISE_CONTROLLERS_RID =  9,
4e2933c620 2015-04-21        kinaba: 	SECURITY_SERVER_LOGON_RID           = SECURITY_ENTERPRISE_CONTROLLERS_RID,
4e2933c620 2015-04-21        kinaba: 	SECURITY_AUTHENTICATED_USER_RID     = 11,
4e2933c620 2015-04-21        kinaba: 	SECURITY_RESTRICTED_CODE_RID        = 12,
4e2933c620 2015-04-21        kinaba: 	SECURITY_NT_NON_UNIQUE_RID          = 21,
4e2933c620 2015-04-21        kinaba: 	SID_REVISION                        =  1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	DOMAIN_USER_RID_ADMIN        = 0x01F4,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_USER_RID_GUEST        = 0x01F5,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_GROUP_RID_ADMINS      = 0x0200,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_GROUP_RID_USERS       = 0x0201,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_ADMINS      = 0x0220,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_USERS       = 0x0221,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_GUESTS      = 0x0222,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_POWER_USERS = 0x0223,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_ACCOUNT_OPS = 0x0224,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_SYSTEM_OPS  = 0x0225,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_PRINT_OPS   = 0x0226,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_BACKUP_OPS  = 0x0227,
4e2933c620 2015-04-21        kinaba: 	DOMAIN_ALIAS_RID_REPLICATOR  = 0x0228
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_UNTRUSTED_RID         = 0,
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_LOW_RID               = 0x1000,
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_MEDIUM_RID            = 0x2000,
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_HIGH_RID              = 0x3000,
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_SYSTEM_RID            = 0x4000,
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_PROTECTED_PROCESS_RID = 0x5000,
4e2933c620 2015-04-21        kinaba: 	SECURITY_MANDATORY_MAXIMUM_USER_RID      = SECURITY_MANDATORY_SYSTEM_RID
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const TCHAR[]
4e2933c620 2015-04-21        kinaba: 	SE_CREATE_TOKEN_NAME           = "SeCreateTokenPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_ASSIGNPRIMARYTOKEN_NAME     = "SeAssignPrimaryTokenPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_LOCK_MEMORY_NAME            = "SeLockMemoryPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_INCREASE_QUOTA_NAME         = "SeIncreaseQuotaPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_UNSOLICITED_INPUT_NAME      = "SeUnsolicitedInputPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_MACHINE_ACCOUNT_NAME        = "SeMachineAccountPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_TCB_NAME                    = "SeTcbPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_SECURITY_NAME               = "SeSecurityPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_TAKE_OWNERSHIP_NAME         = "SeTakeOwnershipPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_LOAD_DRIVER_NAME            = "SeLoadDriverPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_SYSTEM_PROFILE_NAME         = "SeSystemProfilePrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_SYSTEMTIME_NAME             = "SeSystemtimePrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_PROF_SINGLE_PROCESS_NAME    = "SeProfileSingleProcessPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_INC_BASE_PRIORITY_NAME      = "SeIncreaseBasePriorityPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_CREATE_PAGEFILE_NAME        = "SeCreatePagefilePrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_CREATE_PERMANENT_NAME       = "SeCreatePermanentPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_BACKUP_NAME                 = "SeBackupPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_RESTORE_NAME                = "SeRestorePrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_SHUTDOWN_NAME               = "SeShutdownPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_DEBUG_NAME                  = "SeDebugPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_AUDIT_NAME                  = "SeAuditPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_SYSTEM_ENVIRONMENT_NAME     = "SeSystemEnvironmentPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_CHANGE_NOTIFY_NAME          = "SeChangeNotifyPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_REMOTE_SHUTDOWN_NAME        = "SeRemoteShutdownPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_CREATE_GLOBAL_NAME          = "SeCreateGlobalPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_UNDOCK_NAME                 = "SeUndockPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_MANAGE_VOLUME_NAME          = "SeManageVolumePrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_IMPERSONATE_NAME            = "SeImpersonatePrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_ENABLE_DELEGATION_NAME      = "SeEnableDelegationPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_SYNC_AGENT_NAME             = "SeSyncAgentPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_TRUSTED_CREDMAN_ACCESS_NAME = "SeTrustedCredManAccessPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_RELABEL_NAME                = "SeRelabelPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_INCREASE_WORKING_SET_NAME   = "SeIncreaseWorkingSetPrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_TIME_ZONE_NAME              = "SeTimeZonePrivilege",
4e2933c620 2015-04-21        kinaba: 	SE_CREATE_SYMBOLIC_LINK_NAME   = "SeCreateSymbolicLinkPrivilege";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_MANDATORY          = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_ENABLED_BY_DEFAULT = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_ENABLED            = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_OWNER              = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_USE_FOR_DENY_ONLY  = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_INTEGRITY          = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_INTEGRITY_ENABLED  = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_RESOURCE           = 0x20000000,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_LOGON_ID           = 0xC0000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Primary language identifiers
4e2933c620 2015-04-21        kinaba: enum : USHORT {
4e2933c620 2015-04-21        kinaba: 	LANG_NEUTRAL,
4e2933c620 2015-04-21        kinaba: 	LANG_ARABIC,
4e2933c620 2015-04-21        kinaba: 	LANG_BULGARIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_CATALAN,
4e2933c620 2015-04-21        kinaba: 	LANG_CHINESE,
4e2933c620 2015-04-21        kinaba: 	LANG_CZECH,
4e2933c620 2015-04-21        kinaba: 	LANG_DANISH,
4e2933c620 2015-04-21        kinaba: 	LANG_GERMAN,
4e2933c620 2015-04-21        kinaba: 	LANG_GREEK,
4e2933c620 2015-04-21        kinaba: 	LANG_ENGLISH,
4e2933c620 2015-04-21        kinaba: 	LANG_SPANISH,
4e2933c620 2015-04-21        kinaba: 	LANG_FINNISH,
4e2933c620 2015-04-21        kinaba: 	LANG_FRENCH,
4e2933c620 2015-04-21        kinaba: 	LANG_HEBREW,
4e2933c620 2015-04-21        kinaba: 	LANG_HUNGARIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_ICELANDIC,
4e2933c620 2015-04-21        kinaba: 	LANG_ITALIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_JAPANESE,
4e2933c620 2015-04-21        kinaba: 	LANG_KOREAN,
4e2933c620 2015-04-21        kinaba: 	LANG_DUTCH,
4e2933c620 2015-04-21        kinaba: 	LANG_NORWEGIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_POLISH,
4e2933c620 2015-04-21        kinaba: 	LANG_PORTUGUESE,    // = 0x16
4e2933c620 2015-04-21        kinaba: 	LANG_ROMANIAN          = 0x18,
4e2933c620 2015-04-21        kinaba: 	LANG_RUSSIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_CROATIAN,      // = 0x1A
4e2933c620 2015-04-21        kinaba: 	LANG_SERBIAN           = 0x1A,
4e2933c620 2015-04-21        kinaba: 	LANG_BOSNIAN           = 0x1A,
4e2933c620 2015-04-21        kinaba: 	LANG_SLOVAK,
4e2933c620 2015-04-21        kinaba: 	LANG_ALBANIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_SWEDISH,
4e2933c620 2015-04-21        kinaba: 	LANG_THAI,
4e2933c620 2015-04-21        kinaba: 	LANG_TURKISH,
4e2933c620 2015-04-21        kinaba: 	LANG_URDU,
4e2933c620 2015-04-21        kinaba: 	LANG_INDONESIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_UKRAINIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_BELARUSIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_SLOVENIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_ESTONIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_LATVIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_LITHUANIAN,    // = 0x27
4e2933c620 2015-04-21        kinaba: 	LANG_FARSI             = 0x29,
4e2933c620 2015-04-21        kinaba: 	LANG_PERSIAN           = 0x29,
4e2933c620 2015-04-21        kinaba: 	LANG_VIETNAMESE,
4e2933c620 2015-04-21        kinaba: 	LANG_ARMENIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_AZERI,
4e2933c620 2015-04-21        kinaba: 	LANG_BASQUE,
4e2933c620 2015-04-21        kinaba: 	LANG_LOWER_SORBIAN, // = 0x2E
4e2933c620 2015-04-21        kinaba: 	LANG_UPPER_SORBIAN     = 0x2E,
4e2933c620 2015-04-21        kinaba: 	LANG_MACEDONIAN,    // = 0x2F
4e2933c620 2015-04-21        kinaba: 	LANG_TSWANA            = 0x32,
4e2933c620 2015-04-21        kinaba: 	LANG_XHOSA             = 0x34,
4e2933c620 2015-04-21        kinaba: 	LANG_ZULU,
4e2933c620 2015-04-21        kinaba: 	LANG_AFRIKAANS,
4e2933c620 2015-04-21        kinaba: 	LANG_GEORGIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_FAEROESE,
4e2933c620 2015-04-21        kinaba: 	LANG_HINDI,
4e2933c620 2015-04-21        kinaba: 	LANG_MALTESE,
4e2933c620 2015-04-21        kinaba: 	LANG_SAMI,
4e2933c620 2015-04-21        kinaba: 	LANG_IRISH,         // = 0x3C
4e2933c620 2015-04-21        kinaba: 	LANG_MALAY             = 0x3E,
4e2933c620 2015-04-21        kinaba: 	LANG_KAZAK,
4e2933c620 2015-04-21        kinaba: 	LANG_KYRGYZ,
4e2933c620 2015-04-21        kinaba: 	LANG_SWAHILI,       // = 0x41
4e2933c620 2015-04-21        kinaba: 	LANG_UZBEK             = 0x43,
4e2933c620 2015-04-21        kinaba: 	LANG_TATAR,
4e2933c620 2015-04-21        kinaba: 	LANG_BENGALI,
4e2933c620 2015-04-21        kinaba: 	LANG_PUNJABI,
4e2933c620 2015-04-21        kinaba: 	LANG_GUJARATI,
4e2933c620 2015-04-21        kinaba: 	LANG_ORIYA,
4e2933c620 2015-04-21        kinaba: 	LANG_TAMIL,
4e2933c620 2015-04-21        kinaba: 	LANG_TELUGU,
4e2933c620 2015-04-21        kinaba: 	LANG_KANNADA,
4e2933c620 2015-04-21        kinaba: 	LANG_MALAYALAM,
4e2933c620 2015-04-21        kinaba: 	LANG_ASSAMESE,
4e2933c620 2015-04-21        kinaba: 	LANG_MARATHI,
4e2933c620 2015-04-21        kinaba: 	LANG_SANSKRIT,
4e2933c620 2015-04-21        kinaba: 	LANG_MONGOLIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_TIBETAN,
4e2933c620 2015-04-21        kinaba: 	LANG_WELSH,
4e2933c620 2015-04-21        kinaba: 	LANG_KHMER,
4e2933c620 2015-04-21        kinaba: 	LANG_LAO,           // = 0x54
4e2933c620 2015-04-21        kinaba: 	LANG_GALICIAN          = 0x56,
4e2933c620 2015-04-21        kinaba: 	LANG_KONKANI,
4e2933c620 2015-04-21        kinaba: 	LANG_MANIPURI,
4e2933c620 2015-04-21        kinaba: 	LANG_SINDHI,
4e2933c620 2015-04-21        kinaba: 	LANG_SYRIAC,
4e2933c620 2015-04-21        kinaba: 	LANG_SINHALESE,     // = 0x5B
4e2933c620 2015-04-21        kinaba: 	LANG_INUKTITUT         = 0x5D,
4e2933c620 2015-04-21        kinaba: 	LANG_AMHARIC,
4e2933c620 2015-04-21        kinaba: 	LANG_TAMAZIGHT,
4e2933c620 2015-04-21        kinaba: 	LANG_KASHMIRI,
4e2933c620 2015-04-21        kinaba: 	LANG_NEPALI,
4e2933c620 2015-04-21        kinaba: 	LANG_FRISIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_PASHTO,
4e2933c620 2015-04-21        kinaba: 	LANG_FILIPINO,
4e2933c620 2015-04-21        kinaba: 	LANG_DIVEHI,        // = 0x65
4e2933c620 2015-04-21        kinaba: 	LANG_HAUSA             = 0x68,
4e2933c620 2015-04-21        kinaba: 	LANG_YORUBA            = 0x6A,
4e2933c620 2015-04-21        kinaba: 	LANG_QUECHUA,
4e2933c620 2015-04-21        kinaba: 	LANG_SOTHO,
4e2933c620 2015-04-21        kinaba: 	LANG_BASHKIR,
4e2933c620 2015-04-21        kinaba: 	LANG_LUXEMBOURGISH,
4e2933c620 2015-04-21        kinaba: 	LANG_GREENLANDIC,
4e2933c620 2015-04-21        kinaba: 	LANG_IGBO,          // = 0x70
4e2933c620 2015-04-21        kinaba: 	LANG_TIGRIGNA          = 0x73,
4e2933c620 2015-04-21        kinaba: 	LANG_YI                = 0x78,
4e2933c620 2015-04-21        kinaba: 	LANG_MAPUDUNGUN        = 0x7A,
4e2933c620 2015-04-21        kinaba: 	LANG_MOHAWK            = 0x7C,
4e2933c620 2015-04-21        kinaba: 	LANG_BRETON            = 0x7E,
4e2933c620 2015-04-21        kinaba: 	LANG_UIGHUR            = 0x80,
4e2933c620 2015-04-21        kinaba: 	LANG_MAORI,
4e2933c620 2015-04-21        kinaba: 	LANG_OCCITAN,
4e2933c620 2015-04-21        kinaba: 	LANG_CORSICAN,
4e2933c620 2015-04-21        kinaba: 	LANG_ALSATIAN,
4e2933c620 2015-04-21        kinaba: 	LANG_YAKUT,
4e2933c620 2015-04-21        kinaba: 	LANG_KICHE,
4e2933c620 2015-04-21        kinaba: 	LANG_KINYARWANDA,
4e2933c620 2015-04-21        kinaba: 	LANG_WOLOF,         // = 0x88
4e2933c620 2015-04-21        kinaba: 	LANG_DARI              = 0x8C,
4e2933c620 2015-04-21        kinaba: 	LANG_MALAGASY,      // = 0x8D
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	LANG_SERBIAN_NEUTRAL   = 0x7C1A,
4e2933c620 2015-04-21        kinaba: 	LANG_BOSNIAN_NEUTRAL   = 0x781A,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	LANG_INVARIANT         = 0x7F
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Sublanguage identifiers
4e2933c620 2015-04-21        kinaba: enum : USHORT {
4e2933c620 2015-04-21        kinaba: 	SUBLANG_NEUTRAL,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_DEFAULT,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SYS_DEFAULT,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CUSTOM_DEFAULT,                  // =  3
4e2933c620 2015-04-21        kinaba: 	SUBLANG_UI_CUSTOM_DEFAULT                   =  3,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CUSTOM_UNSPECIFIED,              // =  4
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_AFRIKAANS_SOUTH_AFRICA              =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ALBANIAN_ALBANIA                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ALSATIAN_FRANCE                     =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_AMHARIC_ETHIOPIA                    =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_SAUDI_ARABIA                 =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_IRAQ,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_EGYPT,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_LIBYA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_ALGERIA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_MOROCCO,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_TUNISIA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_OMAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_YEMEN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_SYRIA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_JORDAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_LEBANON,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_KUWAIT,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_UAE,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_BAHRAIN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARABIC_QATAR,                    // = 16
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ARMENIAN_ARMENIA                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ASSAMESE_INDIA                      =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_AZERI_LATIN                         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_AZERI_CYRILLIC,                  // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BASHKIR_RUSSIA                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BASQUE_BASQUE                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BELARUSIAN_BELARUS                  =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BENGALI_INDIA                       =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN    =  5,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC =  8,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BRETON_FRANCE                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_BULGARIAN_BULGARIA                  =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CATALAN_CATALAN                     =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CHINESE_TRADITIONAL                 =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CHINESE_SIMPLIFIED,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CHINESE_HONGKONG,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CHINESE_SINGAPORE,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CHINESE_MACAU,                   // =  5
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CORSICAN_FRANCE                     =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CROATIAN_CROATIA                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN   =  4,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_CZECH_CZECH_REPUBLIC                =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_DANISH_DENMARK                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_DIVEHI_MALDIVES                     =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_DUTCH                               =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_DUTCH_BELGIAN,                   // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_US                          =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_UK,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_AUS,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_CAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_NZ,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_EIRE,                    // =  6
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_IRELAND                     =  6,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_SOUTH_AFRICA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_JAMAICA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_CARIBBEAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_BELIZE,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_TRINIDAD,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_ZIMBABWE,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_PHILIPPINES,             // = 13
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_INDIA                       = 16,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_MALAYSIA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ENGLISH_SINGAPORE,               // = 18
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ESTONIAN_ESTONIA                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FAEROESE_FAROE_ISLANDS              =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FILIPINO_PHILIPPINES                =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FINNISH_FINLAND                     =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FRENCH                              =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FRENCH_BELGIAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FRENCH_CANADIAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FRENCH_SWISS,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FRENCH_LUXEMBOURG,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FRENCH_MONACO,                   // =  6
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_FRISIAN_NETHERLANDS                 =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GALICIAN_GALICIAN                   =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GEORGIAN_GEORGIA                    =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GERMAN                              =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GERMAN_SWISS,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GERMAN_AUSTRIAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GERMAN_LUXEMBOURG,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GERMAN_LIECHTENSTEIN,            // =  5
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GREEK_GREECE                        =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GREENLANDIC_GREENLAND               =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_GUJARATI_INDIA                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_HAUSA_NIGERIA                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_HEBREW_ISRAEL                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_HINDI_INDIA                         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_HUNGARIAN_HUNGARY                   =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ICELANDIC_ICELAND                   =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_IGBO_NIGERIA                        =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_INDONESIAN_INDONESIA                =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_INUKTITUT_CANADA                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_INUKTITUT_CANADA_LATIN              =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_IRISH_IRELAND                       =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ITALIAN                             =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ITALIAN_SWISS,                   // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_JAPANESE_JAPAN                      =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KASHMIRI_INDIA                      =  2,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KASHMIRI_SASIA                      =  2,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KAZAK_KAZAKHSTAN                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KHMER_CAMBODIA                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KICHE_GUATEMALA                     =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KINYARWANDA_RWANDA                  =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KONKANI_INDIA                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KOREAN                              =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_KYRGYZ_KYRGYZSTAN                   =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_LAO_LAO_PDR                         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_LATVIAN_LATVIA                      =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_LITHUANIAN                          =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_LITHUANIAN_LITHUANIA                =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_LOWER_SORBIAN_GERMANY               =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_LUXEMBOURGISH_LUXEMBOURG            =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MACEDONIAN_MACEDONIA                =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MALAYALAM_INDIA                     =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MALTESE_MALTA                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MAORI_NEW_ZEALAND                   =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MAPUDUNGUN_CHILE                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MARATHI_INDIA                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MOHAWK_MOHAWK                       =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MONGOLIAN_PRC,                   // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MALAY_MALAYSIA                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_MALAY_BRUNEI_DARUSSALAM,         // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_NEPALI_NEPAL                        =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_NEPALI_INDIA,                    // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_NORWEGIAN_BOKMAL                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_NORWEGIAN_NYNORSK,               // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_OCCITAN_FRANCE                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ORIYA_INDIA                         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_PASHTO_AFGHANISTAN                  =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_PERSIAN_IRAN                        =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_POLISH_POLAND                       =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_PORTUGUESE_BRAZILIAN                =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_PORTUGUESE                          =  2,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_PORTUGUESE_PORTUGAL,             // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_PUNJABI_INDIA                       =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_QUECHUA_BOLIVIA                     =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_QUECHUA_ECUADOR,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_QUECHUA_PERU,                    // =  3
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ROMANIAN_ROMANIA                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ROMANSH_SWITZERLAND                 =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_RUSSIAN_RUSSIA                      =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_NORTHERN_NORWAY                =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_NORTHERN_SWEDEN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_NORTHERN_FINLAND,           // =  3
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_SKOLT_FINLAND                  =  3,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_INARI_FINLAND                  =  3,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_LULE_NORWAY,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_LULE_SWEDEN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_SOUTHERN_NORWAY,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SAMI_SOUTHERN_SWEDEN,            // =  7
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SANSKRIT_INDIA                      =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SERBIAN_LATIN                       =  2,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SERBIAN_CYRILLIC,                // =  3
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN    =  6,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC =  7,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SINDHI_AFGHANISTAN                  =  2,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SINHALESE_SRI_LANKA                 =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SLOVAK_SLOVAKIA                     =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SLOVENIAN_SLOVENIA                  =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH                             =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_MEXICAN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_MODERN,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_GUATEMALA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_COSTA_RICA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_PANAMA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_DOMINICAN_REPUBLIC,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_VENEZUELA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_COLOMBIA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_PERU,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_ARGENTINA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_ECUADOR,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_CHILE,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_URUGUAY,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_PARAGUAY,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_BOLIVIA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_EL_SALVADOR,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_HONDURAS,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_NICARAGUA,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_PUERTO_RICO,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SPANISH_US,                      // = 21
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SWEDISH                             =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SWEDISH_SWEDEN                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SWEDISH_FINLAND,                 // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_SYRIAC                              =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TAJIK_TAJIKISTAN                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TAMAZIGHT_ALGERIA_LATIN             =  2,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TAMIL_INDIA                         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TATAR_RUSSIA                        =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TELUGU_INDIA                        =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_THAI_THAILAND                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TIBETAN_PRC                         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TIBETAN_BHUTAN                      =  2,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TIGRIGNA_ERITREA                    =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TSWANA_SOUTH_AFRICA                 =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TURKISH_TURKEY                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_TURKMEN_TURKMENISTAN                =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_UIGHUR_PRC                          =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_UKRAINIAN_UKRAINE                   =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_UPPER_SORBIAN_GERMANY               =  1,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_URDU_PAKISTAN                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_URDU_INDIA,                      // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_UZBEK_LATIN                         =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_UZBEK_CYRILLIC,                  // =  2
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SUBLANG_VIETNAMESE_VIETNAM                  =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_WELSH_UNITED_KINGDOM                =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_WOLOF_SENEGAL                       =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_YORUBA_NIGERIA                      =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_XHOSA_SOUTH_AFRICA                  =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_YAKUT_RUSSIA                        =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_YI_PRC                              =  1,
4e2933c620 2015-04-21        kinaba: 	SUBLANG_ZULU_SOUTH_AFRICA                   =  1
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // This is not documented on MSDN
4e2933c620 2015-04-21        kinaba: const NLS_VALID_LOCALE_MASK = 1048575;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Sorting identifiers
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	SORT_DEFAULT              = 0,
4e2933c620 2015-04-21        kinaba: 	SORT_JAPANESE_XJIS        = 0,
4e2933c620 2015-04-21        kinaba: 	SORT_JAPANESE_UNICODE     = 1,
4e2933c620 2015-04-21        kinaba: 	SORT_CHINESE_BIG5         = 0,
4e2933c620 2015-04-21        kinaba: 	SORT_CHINESE_PRCP         = 0,
4e2933c620 2015-04-21        kinaba: 	SORT_CHINESE_UNICODE      = 1,
4e2933c620 2015-04-21        kinaba: 	SORT_CHINESE_PRC          = 2,
4e2933c620 2015-04-21        kinaba: 	SORT_CHINESE_BOPOMOFO     = 3,
4e2933c620 2015-04-21        kinaba: 	SORT_KOREAN_KSC           = 0,
4e2933c620 2015-04-21        kinaba: 	SORT_KOREAN_UNICODE       = 1,
4e2933c620 2015-04-21        kinaba: 	SORT_GERMAN_PHONE_BOOK    = 1,
4e2933c620 2015-04-21        kinaba: 	SORT_HUNGARIAN_DEFAULT    = 0,
4e2933c620 2015-04-21        kinaba: 	SORT_HUNGARIAN_TECHNICAL  = 1,
4e2933c620 2015-04-21        kinaba: 	SORT_GEORGIAN_TRADITIONAL = 0,
4e2933c620 2015-04-21        kinaba: 	SORT_GEORGIAN_MODERN      = 1
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: WORD MAKELANGID(USHORT p, USHORT s) { return cast(WORD)((s << 10) | p); }
4e2933c620 2015-04-21        kinaba: WORD PRIMARYLANGID(WORD lgid) { return cast(WORD)(lgid & 0x3FF); }
4e2933c620 2015-04-21        kinaba: WORD SUBLANGID(WORD lgid) { return cast(WORD)(lgid >>> 10); }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: DWORD MAKELCID(WORD lgid, WORD srtid) { return (cast(DWORD) srtid << 16) | cast(DWORD) lgid; }
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: //DWORD MAKESORTLCID(WORD lgid, WORD srtid, WORD ver) { return (MAKELCID(lgid, srtid)) | ((cast(DWORD)ver) << 20); }
4e2933c620 2015-04-21        kinaba: WORD LANGIDFROMLCID(LCID lcid) { return cast(WORD) lcid; }
4e2933c620 2015-04-21        kinaba: WORD SORTIDFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 16) & 0x0F); }
4e2933c620 2015-04-21        kinaba: WORD SORTVERSIONFROMLCID(LCID lcid) { return cast(WORD) ((lcid >>> 20) & 0x0F); }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const WORD LANG_SYSTEM_DEFAULT = (SUBLANG_SYS_DEFAULT << 10) | LANG_NEUTRAL;
4e2933c620 2015-04-21        kinaba: const WORD LANG_USER_DEFAULT   = (SUBLANG_DEFAULT << 10) | LANG_NEUTRAL;
4e2933c620 2015-04-21        kinaba: const DWORD LOCALE_NEUTRAL     = (SORT_DEFAULT << 16)
4e2933c620 2015-04-21        kinaba:                                  | (SUBLANG_NEUTRAL << 10) | LANG_NEUTRAL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ---
4e2933c620 2015-04-21        kinaba: enum : BYTE {
4e2933c620 2015-04-21        kinaba: 	ACL_REVISION    = 2,
4e2933c620 2015-04-21        kinaba: 	ACL_REVISION_DS = 4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // These are not documented on MSDN
4e2933c620 2015-04-21        kinaba: enum : BYTE {
4e2933c620 2015-04-21        kinaba: 	ACL_REVISION1    = 1,
4e2933c620 2015-04-21        kinaba: 	ACL_REVISION2,
4e2933c620 2015-04-21        kinaba: 	ACL_REVISION3,
4e2933c620 2015-04-21        kinaba: 	ACL_REVISION4 // = 4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const BYTE
4e2933c620 2015-04-21        kinaba: 	MIN_ACL_REVISION = 2,
4e2933c620 2015-04-21        kinaba: 	MAX_ACL_REVISION = 4;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: // These aren't necessary for D.
4e2933c620 2015-04-21        kinaba: const MINCHAR=0x80;
4e2933c620 2015-04-21        kinaba: const MAXCHAR=0x7f;
4e2933c620 2015-04-21        kinaba: const MINSHORT=0x8000;
4e2933c620 2015-04-21        kinaba: const MAXSHORT=0x7fff;
4e2933c620 2015-04-21        kinaba: const MINLONG=0x80000000;
4e2933c620 2015-04-21        kinaba: const MAXLONG=0x7fffffff;
4e2933c620 2015-04-21        kinaba: const MAXBYTE=0xff;
4e2933c620 2015-04-21        kinaba: const MAXWORD=0xffff;
4e2933c620 2015-04-21        kinaba: const MAXDWORD=0xffffffff;
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // SYSTEM_INFO.dwProcessorType
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_INTEL_386     =   386,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_INTEL_486     =   486,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_INTEL_PENTIUM =   586,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_MIPS_R4000    =  4000,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ALPHA_21064   = 21064,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_INTEL_IA64    =  2200
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // SYSTEM_INFO.wProcessorArchitecture
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_INTEL,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_MIPS,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_ALPHA,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_PPC,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_SHX,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_ARM,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_IA64,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_ALPHA64,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_MSIL,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_AMD64,
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_IA32_ON_WIN64, // = 10
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_ARCHITECTURE_UNKNOWN = 0xFFFF
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // IsProcessorFeaturePresent()
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	PF_FLOATING_POINT_PRECISION_ERRATA,
4e2933c620 2015-04-21        kinaba: 	PF_FLOATING_POINT_EMULATED,
4e2933c620 2015-04-21        kinaba: 	PF_COMPARE_EXCHANGE_DOUBLE,
4e2933c620 2015-04-21        kinaba: 	PF_MMX_INSTRUCTIONS_AVAILABLE,
4e2933c620 2015-04-21        kinaba: 	PF_PPC_MOVEMEM_64BIT_OK,
4e2933c620 2015-04-21        kinaba: 	PF_ALPHA_BYTE_INSTRUCTIONS,
4e2933c620 2015-04-21        kinaba: 	PF_XMMI_INSTRUCTIONS_AVAILABLE,
4e2933c620 2015-04-21        kinaba: 	PF_3DNOW_INSTRUCTIONS_AVAILABLE,
4e2933c620 2015-04-21        kinaba: 	PF_RDTSC_INSTRUCTION_AVAILABLE,
4e2933c620 2015-04-21        kinaba: 	PF_PAE_ENABLED,
4e2933c620 2015-04-21        kinaba: 	PF_XMMI64_INSTRUCTIONS_AVAILABLE
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // MinGW: also in ddk/ntifs.h
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_ADDED = 1,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_REMOVED,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_MODIFIED,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_RENAMED_OLD_NAME,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_RENAMED_NEW_NAME,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_ADDED_STREAM,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_REMOVED_STREAM,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_MODIFIED_STREAM,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_REMOVED_BY_DELETE,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_ID_NOT_TUNNELLED,
4e2933c620 2015-04-21        kinaba: 	FILE_ACTION_TUNNELLED_ID_COLLISION // = 11
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: // MinGW: end ntifs.h
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	HEAP_NO_SERIALIZE             = 0x01,
4e2933c620 2015-04-21        kinaba: 	HEAP_GROWABLE                 = 0x02,
4e2933c620 2015-04-21        kinaba: 	HEAP_GENERATE_EXCEPTIONS      = 0x04,
4e2933c620 2015-04-21        kinaba: 	HEAP_ZERO_MEMORY              = 0x08,
4e2933c620 2015-04-21        kinaba: 	HEAP_REALLOC_IN_PLACE_ONLY    = 0x10,
4e2933c620 2015-04-21        kinaba: 	HEAP_TAIL_CHECKING_ENABLED    = 0x20,
4e2933c620 2015-04-21        kinaba: 	HEAP_FREE_CHECKING_ENABLED    = 0x40,
4e2933c620 2015-04-21        kinaba: 	HEAP_DISABLE_COALESCE_ON_FREE = 0x80;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // These are not documented on MSDN
4e2933c620 2015-04-21        kinaba: const HEAP_CREATE_ALIGN_16       = 0;
4e2933c620 2015-04-21        kinaba: const HEAP_CREATE_ENABLE_TRACING = 0x020000;
4e2933c620 2015-04-21        kinaba: const HEAP_MAXIMUM_TAG           = 0x000FFF;
4e2933c620 2015-04-21        kinaba: const HEAP_PSEUDO_TAG_FLAG       = 0x008000;
4e2933c620 2015-04-21        kinaba: const HEAP_TAG_SHIFT             = 16;
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: //MACRO #define HEAP_MAKE_TAG_FLAGS(b,o) ((DWORD)((b)+(o)<<16)))
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	KEY_QUERY_VALUE        = 0x000001,
4e2933c620 2015-04-21        kinaba: 	KEY_SET_VALUE          = 0x000002,
4e2933c620 2015-04-21        kinaba: 	KEY_CREATE_SUB_KEY     = 0x000004,
4e2933c620 2015-04-21        kinaba: 	KEY_ENUMERATE_SUB_KEYS = 0x000008,
4e2933c620 2015-04-21        kinaba: 	KEY_NOTIFY             = 0x000010,
4e2933c620 2015-04-21        kinaba: 	KEY_CREATE_LINK        = 0x000020,
4e2933c620 2015-04-21        kinaba: 	KEY_WRITE              = 0x020006,
4e2933c620 2015-04-21        kinaba: 	KEY_EXECUTE            = 0x020019,
4e2933c620 2015-04-21        kinaba: 	KEY_READ               = 0x020019,
4e2933c620 2015-04-21        kinaba: 	KEY_ALL_ACCESS         = 0x0F003F;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x502) {
4e2933c620 2015-04-21        kinaba: 	const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 		KEY_WOW64_64KEY    = 0x000100,
4e2933c620 2015-04-21        kinaba: 		KEY_WOW64_32KEY    = 0x000200;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	REG_WHOLE_HIVE_VOLATILE = 1,
4e2933c620 2015-04-21        kinaba: 	REG_REFRESH_HIVE        = 2,
4e2933c620 2015-04-21        kinaba: 	REG_NO_LAZY_FLUSH       = 4;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	REG_OPTION_RESERVED       =  0,
4e2933c620 2015-04-21        kinaba: 	REG_OPTION_NON_VOLATILE   =  0,
4e2933c620 2015-04-21        kinaba: 	REG_OPTION_VOLATILE       =  1,
4e2933c620 2015-04-21        kinaba: 	REG_OPTION_CREATE_LINK    =  2,
4e2933c620 2015-04-21        kinaba: 	REG_OPTION_BACKUP_RESTORE =  4,
4e2933c620 2015-04-21        kinaba: 	REG_OPTION_OPEN_LINK      =  8,
4e2933c620 2015-04-21        kinaba: 	REG_LEGAL_OPTION          = 15;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SECURITY_INFORMATION
4e2933c620 2015-04-21        kinaba: 	OWNER_SECURITY_INFORMATION            = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	GROUP_SECURITY_INFORMATION            = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	DACL_SECURITY_INFORMATION             = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	SACL_SECURITY_INFORMATION             = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	LABEL_SECURITY_INFORMATION            = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	UNPROTECTED_SACL_SECURITY_INFORMATION = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	UNPROTECTED_DACL_SECURITY_INFORMATION = 0x20000000,
4e2933c620 2015-04-21        kinaba: 	PROTECTED_SACL_SECURITY_INFORMATION   = 0x40000000,
4e2933c620 2015-04-21        kinaba: 	PROTECTED_DACL_SECURITY_INFORMATION   = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD MAXIMUM_PROCESSORS = 32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // VirtualAlloc(), etc
4e2933c620 2015-04-21        kinaba: // -------------------
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	PAGE_NOACCESS          = 0x0001,
4e2933c620 2015-04-21        kinaba: 	PAGE_READONLY          = 0x0002,
4e2933c620 2015-04-21        kinaba: 	PAGE_READWRITE         = 0x0004,
4e2933c620 2015-04-21        kinaba: 	PAGE_WRITECOPY         = 0x0008,
4e2933c620 2015-04-21        kinaba: 	PAGE_EXECUTE           = 0x0010,
4e2933c620 2015-04-21        kinaba: 	PAGE_EXECUTE_READ      = 0x0020,
4e2933c620 2015-04-21        kinaba: 	PAGE_EXECUTE_READWRITE = 0x0040,
4e2933c620 2015-04-21        kinaba: 	PAGE_EXECUTE_WRITECOPY = 0x0080,
4e2933c620 2015-04-21        kinaba: 	PAGE_GUARD             = 0x0100,
4e2933c620 2015-04-21        kinaba: 	PAGE_NOCACHE           = 0x0200
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	MEM_COMMIT      = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	MEM_RESERVE     = 0x00002000,
4e2933c620 2015-04-21        kinaba: 	MEM_DECOMMIT    = 0x00004000,
4e2933c620 2015-04-21        kinaba: 	MEM_RELEASE     = 0x00008000,
4e2933c620 2015-04-21        kinaba: 	MEM_FREE        = 0x00010000,
4e2933c620 2015-04-21        kinaba: 	MEM_PRIVATE     = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	MEM_MAPPED      = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	MEM_RESET       = 0x00080000,
4e2933c620 2015-04-21        kinaba: 	MEM_TOP_DOWN    = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	MEM_WRITE_WATCH = 0x00200000, // MinGW (???): 98/Me
4e2933c620 2015-04-21        kinaba: 	MEM_PHYSICAL    = 0x00400000,
4e2933c620 2015-04-21        kinaba: 	MEM_4MB_PAGES   = 0x80000000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // MinGW: also in ddk/ntifs.h
4e2933c620 2015-04-21        kinaba: // CreateFileMapping()
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SEC_BASED     = 0x00200000,
4e2933c620 2015-04-21        kinaba: 	SEC_NO_CHANGE = 0x00400000,
4e2933c620 2015-04-21        kinaba: 	SEC_FILE      = 0x00800000,
4e2933c620 2015-04-21        kinaba: 	SEC_IMAGE     = 0x01000000,
4e2933c620 2015-04-21        kinaba: 	SEC_VLM       = 0x02000000,
4e2933c620 2015-04-21        kinaba: 	SEC_RESERVE   = 0x04000000,
4e2933c620 2015-04-21        kinaba: 	SEC_COMMIT    = 0x08000000,
4e2933c620 2015-04-21        kinaba: 	SEC_NOCACHE   = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	MEM_IMAGE     = SEC_IMAGE;
4e2933c620 2015-04-21        kinaba: // MinGW: end ntifs.h
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: const ACCESS_MASK
4e2933c620 2015-04-21        kinaba: 	SECTION_QUERY       = 0x000001,
4e2933c620 2015-04-21        kinaba: 	SECTION_MAP_WRITE   = 0x000002,
4e2933c620 2015-04-21        kinaba: 	SECTION_MAP_READ    = 0x000004,
4e2933c620 2015-04-21        kinaba: 	SECTION_MAP_EXECUTE = 0x000008,
4e2933c620 2015-04-21        kinaba: 	SECTION_EXTEND_SIZE = 0x000010,
4e2933c620 2015-04-21        kinaba: 	SECTION_ALL_ACCESS  = 0x0F001F;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // These are not documented on MSDN
4e2933c620 2015-04-21        kinaba: const MESSAGE_RESOURCE_UNICODE = 1;
4e2933c620 2015-04-21        kinaba: const RTL_CRITSECT_TYPE        = 0;
4e2933c620 2015-04-21        kinaba: const RTL_RESOURCE_TYPE        = 1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // COFF file format
4e2933c620 2015-04-21        kinaba: // ----------------
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // IMAGE_FILE_HEADER.Characteristics
4e2933c620 2015-04-21        kinaba: const WORD
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_RELOCS_STRIPPED         = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_EXECUTABLE_IMAGE        = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_LINE_NUMS_STRIPPED      = 0x0004,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_LOCAL_SYMS_STRIPPED     = 0x0008,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_AGGRESIVE_WS_TRIM       = 0x0010,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_LARGE_ADDRESS_AWARE     = 0x0020,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_BYTES_REVERSED_LO       = 0x0080,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_32BIT_MACHINE           = 0x0100,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_DEBUG_STRIPPED          = 0x0200,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP = 0x0400,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_NET_RUN_FROM_SWAP       = 0x0800,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_SYSTEM                  = 0x1000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_DLL                     = 0x2000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_UP_SYSTEM_ONLY          = 0x4000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_BYTES_REVERSED_HI       = 0x8000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // IMAGE_FILE_HEADER.Machine
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_UNKNOWN   = 0x0000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_I386      = 0x014C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_R3000     = 0x0162,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_R4000     = 0x0166,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_R10000    = 0x0168,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_WCEMIPSV2 = 0x0169,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_ALPHA     = 0x0184,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_SH3       = 0x01A2,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_SH3DSP    = 0x01A3,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_SH4       = 0x01A6,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_SH5       = 0x01A8,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_ARM       = 0x01C0,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_THUMB     = 0x01C2,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_AM33      = 0x01D3,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_POWERPC   = 0x01F0,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_POWERPCFP = 0x01F1,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_IA64      = 0x0200,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_MIPS16    = 0x0266,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_MIPSFPU   = 0x0366,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_MIPSFPU16 = 0x0466,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_EBC       = 0x0EBC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_AMD64     = 0x8664,
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_MACHINE_M32R      = 0x9041
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: enum  {
4e2933c620 2015-04-21        kinaba: 	IMAGE_DOS_SIGNATURE    = 0x5A4D,
4e2933c620 2015-04-21        kinaba: 	IMAGE_OS2_SIGNATURE    = 0x454E,
4e2933c620 2015-04-21        kinaba: 	IMAGE_OS2_SIGNATURE_LE = 0x454C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_VXD_SIGNATURE    = 0x454C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_NT_SIGNATURE     = 0x4550
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // IMAGE_OPTIONAL_HEADER.Magic
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_NT_OPTIONAL_HDR32_MAGIC = 0x010B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_ROM_OPTIONAL_HDR_MAGIC  = 0x0107,
4e2933c620 2015-04-21        kinaba: 	IMAGE_NT_OPTIONAL_HDR64_MAGIC = 0x020B
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // IMAGE_OPTIONAL_HEADER.Subsystem
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_UNKNOWN                  =  0,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_NATIVE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_WINDOWS_GUI,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_WINDOWS_CUI,          // =  3
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_OS2_CUI                  =  5,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_POSIX_CUI                =  7,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_NATIVE_WINDOWS,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_WINDOWS_CE_GUI,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_EFI_APPLICATION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_EFI_ROM,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_XBOX,                 // = 14
4e2933c620 2015-04-21        kinaba: 	IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION = 16
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // IMAGE_OPTIONAL_HEADER.DllCharacteristics
4e2933c620 2015-04-21        kinaba: const WORD
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE         = 0x0040,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY      = 0x0080,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLL_CHARACTERISTICS_NX_COMPAT            = 0x0100,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLLCHARACTERISTICS_NO_ISOLATION          = 0x0200,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLLCHARACTERISTICS_NO_SEH	               = 0x0400,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLLCHARACTERISTICS_NO_BIND               = 0x0800,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLLCHARACTERISTICS_WDM_DRIVER            = 0x2000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE = 0x8000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: const IMAGE_SEPARATE_DEBUG_SIGNATURE = 0x4944;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t
4e2933c620 2015-04-21        kinaba: 	IMAGE_NUMBEROF_DIRECTORY_ENTRIES =  16,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_ROM_OPTIONAL_HEADER =  56,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_STD_OPTIONAL_HEADER =  28,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_NT_OPTIONAL_HEADER  = 224,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_SHORT_NAME          =   8,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_SECTION_HEADER      =  40,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_SYMBOL              =  18,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_AUX_SYMBOL          =  18,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_RELOCATION          =  10,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_BASE_RELOCATION     =   8,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_LINENUMBER          =   6,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR  =  60,
4e2933c620 2015-04-21        kinaba: 	SIZEOF_RFPO_DATA                 =  16;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: PIMAGE_SECTION_HEADER IMAGE_FIRST_SECTION(PIMAGE_NT_HEADERS h) {
4e2933c620 2015-04-21        kinaba: 	return cast(PIMAGE_SECTION_HEADER)
4e2933c620 2015-04-21        kinaba: 		(&h.OptionalHeader + h.FileHeader.SizeOfOptionalHeader);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ImageDirectoryEntryToDataEx()
4e2933c620 2015-04-21        kinaba: enum : USHORT {
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_EXPORT             =  0,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_IMPORT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_RESOURCE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_EXCEPTION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_SECURITY,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_BASERELOC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_DEBUG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_COPYRIGHT,      // =  7
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_ARCHITECTURE       =  7,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_GLOBALPTR,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_TLS,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_IAT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, // = 14
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // IMAGE_SECTION_HEADER.Characteristics
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_TYPE_REG               = 0x00000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_TYPE_DSECT             = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_TYPE_NOLOAD            = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_TYPE_GROUP             = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_TYPE_NO_PAD            = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_TYPE_COPY              = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_CNT_CODE               = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_CNT_INITIALIZED_DATA   = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_CNT_UNINITIALIZED_DATA = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_LNK_OTHER              = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_LNK_INFO               = 0x00000200,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_TYPE_OVER              = 0x00000400,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_LNK_REMOVE             = 0x00000800,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_LNK_COMDAT             = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_FARDATA            = 0x00008000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_GPREL                  = 0x00008000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_PURGEABLE          = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_16BIT              = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_LOCKED             = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_PRELOAD            = 0x00080000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_1BYTES           = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_2BYTES           = 0x00200000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_4BYTES           = 0x00300000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_8BYTES           = 0x00400000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_16BYTES          = 0x00500000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_32BYTES          = 0x00600000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_64BYTES          = 0x00700000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_128BYTES         = 0x00800000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_256BYTES         = 0x00900000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_512BYTES         = 0x00A00000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_1024BYTES        = 0x00B00000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_2048BYTES        = 0x00C00000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_4096BYTES        = 0x00D00000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_ALIGN_8192BYTES        = 0x00E00000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_LNK_NRELOC_OVFL        = 0x01000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_DISCARDABLE        = 0x02000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_NOT_CACHED         = 0x04000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_NOT_PAGED          = 0x08000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_SHARED             = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_EXECUTE            = 0x20000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_READ               = 0x40000000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SCN_MEM_WRITE              = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /*	The following constants are mostlydocumented at
4e2933c620 2015-04-21        kinaba:  *	http://download.microsoft.com/download/1/6/1/161ba512-40e2-4cc9-843a-923143f3456c/pecoff.doc
4e2933c620 2015-04-21        kinaba:  *	but don't seem to be defined in the HTML docs.
4e2933c620 2015-04-21        kinaba:  */
4e2933c620 2015-04-21        kinaba: enum : SHORT {
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_UNDEFINED =  0,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_ABSOLUTE  = -1,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_DEBUG     = -2
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : ubyte {
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_NULL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_VOID,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_CHAR,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_SHORT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_INT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_LONG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_FLOAT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_DOUBLE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_STRUCT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_UNION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_ENUM,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_MOE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_BYTE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_WORD,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_UINT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_TYPE_DWORD // = 15
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: const IMAGE_SYM_TYPE_PCODE = 32768; // ???
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : ubyte {
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_DTYPE_NULL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_DTYPE_POINTER,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_DTYPE_FUNCTION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_DTYPE_ARRAY
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : BYTE {
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_END_OF_FUNCTION  = 0xFF,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_NULL             =   0,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_AUTOMATIC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_EXTERNAL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_STATIC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_REGISTER,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_EXTERNAL_DEF,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_LABEL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_UNDEFINED_LABEL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_MEMBER_OF_STRUCT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_ARGUMENT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_STRUCT_TAG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_MEMBER_OF_UNION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_UNION_TAG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_TYPE_DEFINITION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_UNDEFINED_STATIC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_ENUM_TAG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_MEMBER_OF_ENUM,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_REGISTER_PARAM,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_BIT_FIELD,    // =  18
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_FAR_EXTERNAL     =  68,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_BLOCK            = 100,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_FUNCTION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_END_OF_STRUCT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_FILE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_SECTION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_WEAK_EXTERNAL,// = 105
4e2933c620 2015-04-21        kinaba: 	IMAGE_SYM_CLASS_CLR_TOKEN        = 107
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : BYTE {
4e2933c620 2015-04-21        kinaba: 	IMAGE_COMDAT_SELECT_NODUPLICATES = 1,
4e2933c620 2015-04-21        kinaba: 	IMAGE_COMDAT_SELECT_ANY,
4e2933c620 2015-04-21        kinaba: 	IMAGE_COMDAT_SELECT_SAME_SIZE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_COMDAT_SELECT_EXACT_MATCH,
4e2933c620 2015-04-21        kinaba: 	IMAGE_COMDAT_SELECT_ASSOCIATIVE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_COMDAT_SELECT_LARGEST,
4e2933c620 2015-04-21        kinaba: 	IMAGE_COMDAT_SELECT_NEWEST    // = 7
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY = 1,
4e2933c620 2015-04-21        kinaba: 	IMAGE_WEAK_EXTERN_SEARCH_LIBRARY,
4e2933c620 2015-04-21        kinaba: 	IMAGE_WEAK_EXTERN_SEARCH_ALIAS
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_ABSOLUTE       = 0x0000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_DIR16          = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_REL16          = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_DIR32          = 0x0006,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_DIR32NB        = 0x0007,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_SEG12          = 0x0009,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_SECTION        = 0x000A,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_SECREL         = 0x000B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_TOKEN          = 0x000C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_SECREL7        = 0x000D,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_I386_REL32          = 0x0014
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_ABSOLUTE      = 0x0000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_ADDR64        = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_ADDR32        = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_ADDR32NB      = 0x0003,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_REL32         = 0x0004,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_REL32_1       = 0x0005,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_REL32_2       = 0x0006,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_REL32_3       = 0x0007,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_REL32_4       = 0x0008,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_REL32_5       = 0x0009,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_SECTION       = 0x000A,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_SECREL        = 0x000B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_SECREL7       = 0x000C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_TOKEN         = 0x000D,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_SREL32        = 0x000E,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_PAIR          = 0x000F,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_AMD64_SSPAN32       = 0x0010
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_ABSOLUTE       = 0x0000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_IMM14          = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_IMM22          = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_IMM64          = 0x0003,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_DIR32          = 0x0004,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_DIR64          = 0x0005,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL21B       = 0x0006,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL21M       = 0x0007,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL21F       = 0x0008,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_GPREL22        = 0x0009,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_LTOFF22        = 0x000A,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_SECTION        = 0x000B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_SECREL22       = 0x000C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_SECREL64I      = 0x000D,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_SECREL32       = 0x000E,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_DIR32NB        = 0x0010,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_SREL14         = 0x0011,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_SREL22         = 0x0012,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_SREL32         = 0x0013,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_UREL32         = 0x0014,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL60X       = 0x0015,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL60B       = 0x0016,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL60F       = 0x0017,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL60I       = 0x0018,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_PCREL60M       = 0x0019,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_IMMGPREL64     = 0x001A,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_TOKEN          = 0x001B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_GPREL32        = 0x001C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_IA64_ADDEND         = 0x001F
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_ABSOLUTE        = 0x0000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT16        = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT32        = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT8         = 0x0003,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT8_WORD    = 0x0004,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT8_LONG    = 0x0005,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT4         = 0x0006,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT4_WORD    = 0x0007,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT4_LONG    = 0x0008,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_PCREL8_WORD     = 0x0009,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_PCREL8_LONG     = 0x000A,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_PCREL12_WORD    = 0x000B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_STARTOF_SECTION = 0x000C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_SIZEOF_SECTION  = 0x000D,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_SECTION         = 0x000E,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_SECREL          = 0x000F,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_DIRECT32_NB     = 0x0010,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_GPREL4_LONG     = 0x0011,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SH3_TOKEN           = 0x0012,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SHM_PCRELPT         = 0x0013,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SHM_REFLO           = 0x0014,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SHM_REFHALF         = 0x0015,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SHM_RELLO           = 0x0016,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SHM_RELHALF         = 0x0017,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SHM_PAIR            = 0x0018,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_SHM_NOMODE          = 0x8000
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_ABSOLUTE       = 0x0000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_ADDR32         = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_ADDR32NB       = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_ADDR24         = 0x0003,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_GPREL16        = 0x0004,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_PCREL24        = 0x0005,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_PCREL16        = 0x0006,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_PCREL8         = 0x0007,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_REFHALF        = 0x0008,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_REFHI          = 0x0009,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_REFLO          = 0x000A,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_PAIR           = 0x000B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_SECTION        = 0x000C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_SECREL         = 0x000D,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_M32R_TOKEN          = 0x000E
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_ABSOLUTE       = 0x0000,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_REFHALF        = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_REFWORD        = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_JMPADDR        = 0x0003,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_REFHI          = 0x0004,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_REFLO          = 0x0005,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_GPREL          = 0x0006,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_LITERAL        = 0x0007,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_SECTION        = 0x000A,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_SECREL         = 0x000B,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_SECRELLO       = 0x000C,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_SECRELHI       = 0x000D,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_JMPADDR16      = 0x0010,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_REFWORDNB      = 0x0022,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_MIPS_PAIR           = 0x0025
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_ABSOLUTE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_REFLONG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_REFQUAD,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_GPREL32,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_LITERAL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_LITUSE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_GPDISP,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_BRADDR,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_HINT,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_INLINE_REFLONG,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_REFHI,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_REFLO,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_PAIR,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_MATCH,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_SECTION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_SECREL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_REFLONGNB,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_SECRELLO,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_ALPHA_SECRELHI // = 18
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : WORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_ABSOLUTE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_ADDR64,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_ADDR32,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_ADDR24,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_ADDR16,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_ADDR14,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_REL24,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_REL14,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_TOCREL16,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_TOCREL14,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_ADDR32NB,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_SECREL,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_SECTION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_IFGLUE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_IMGLUE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_SECREL16,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_REFHI,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_REFLO,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_PPC_PAIR // = 18
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: const IMAGE_REL_PPC_TYPEMASK = 0x00FF;
4e2933c620 2015-04-21        kinaba: const IMAGE_REL_PPC_NEG      = 0x0100;
4e2933c620 2015-04-21        kinaba: const IMAGE_REL_PPC_BRTAKEN  = 0x0200;
4e2933c620 2015-04-21        kinaba: const IMAGE_REL_PPC_BRNTAKEN = 0x0400;
4e2933c620 2015-04-21        kinaba: const IMAGE_REL_PPC_TOCDEFN  = 0x0800;
4e2933c620 2015-04-21        kinaba: 
c2b7a98c21 2011-02-23        kinaba: enum {
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_BASED_ABSOLUTE,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_BASED_HIGH,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_BASED_LOW,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_BASED_HIGHLOW,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_BASED_HIGHADJ,
4e2933c620 2015-04-21        kinaba: 	IMAGE_REL_BASED_MIPS_JMPADDR
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: // End of constants documented in pecoff.doc
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t IMAGE_ARCHIVE_START_SIZE = 8;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const TCHAR[]
4e2933c620 2015-04-21        kinaba: 	IMAGE_ARCHIVE_START            = "!<arch>\n",
4e2933c620 2015-04-21        kinaba: 	IMAGE_ARCHIVE_END              = "`\n",
4e2933c620 2015-04-21        kinaba: 	IMAGE_ARCHIVE_PAD              = "\n",
4e2933c620 2015-04-21        kinaba: 	IMAGE_ARCHIVE_LINKER_MEMBER    = "/               ",
4e2933c620 2015-04-21        kinaba: 	IMAGE_ARCHIVE_LONGNAMES_MEMBER = "//              ";
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const IMAGE_ORDINAL_FLAG32 = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: ulong IMAGE_ORDINAL64(ulong Ordinal) { return Ordinal & 0xFFFF; }
4e2933c620 2015-04-21        kinaba: uint IMAGE_ORDINAL32(uint Ordinal)   { return Ordinal & 0xFFFF; }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: bool IMAGE_SNAP_BY_ORDINAL32(uint Ordinal) {
4e2933c620 2015-04-21        kinaba: 	return (Ordinal & IMAGE_ORDINAL_FLAG32) != 0;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ulong IMAGE_ORDINAL_FLAG64 = 0x8000000000000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: bool IMAGE_SNAP_BY_ORDINAL64(ulong Ordinal) {
4e2933c620 2015-04-21        kinaba: 	return (Ordinal & IMAGE_ORDINAL_FLAG64) != 0;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: const IMAGE_RESOURCE_NAME_IS_STRING    = 0x80000000;
4e2933c620 2015-04-21        kinaba: const IMAGE_RESOURCE_DATA_IS_DIRECTORY = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_UNKNOWN,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_COFF,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_CODEVIEW,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_FPO,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_MISC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_EXCEPTION,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_FIXUP,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_OMAP_TO_SRC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_OMAP_FROM_SRC,
4e2933c620 2015-04-21        kinaba: 	IMAGE_DEBUG_TYPE_BORLAND // = 9
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : ubyte {
4e2933c620 2015-04-21        kinaba: 	FRAME_FPO,
4e2933c620 2015-04-21        kinaba: 	FRAME_TRAP,
4e2933c620 2015-04-21        kinaba: 	FRAME_TSS,
4e2933c620 2015-04-21        kinaba: 	FRAME_NONFPO
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: const IMAGE_DEBUG_MISC_EXENAME = 1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // ???
4e2933c620 2015-04-21        kinaba: const N_BTMASK = 0x000F;
4e2933c620 2015-04-21        kinaba: const N_TMASK  = 0x0030;
4e2933c620 2015-04-21        kinaba: const N_TMASK1 = 0x00C0;
4e2933c620 2015-04-21        kinaba: const N_TMASK2 = 0x00F0;
4e2933c620 2015-04-21        kinaba: const N_BTSHFT = 4;
4e2933c620 2015-04-21        kinaba: const N_TSHIFT = 2;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const int
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_ASCII16            = 0x0001,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_STATISTICS         = 0x0002,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_CONTROLS           = 0x0004,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_SIGNATURE          = 0x0008,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_REVERSE_ASCII16    = 0x0010,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_REVERSE_STATISTICS = 0x0020,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_REVERSE_CONTROLS   = 0x0040,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_REVERSE_SIGNATURE  = 0x0080,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_ILLEGAL_CHARS      = 0x0100,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_ODD_LENGTH         = 0x0200,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_NULL_BYTES         = 0x1000,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_UNICODE_MASK       = 0x000F,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_REVERSE_MASK       = 0x00F0,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_NOT_UNICODE_MASK   = 0x0F00,
4e2933c620 2015-04-21        kinaba: 	IS_TEXT_UNICODE_NOT_ASCII_MASK     = 0xF000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SERVICE_KERNEL_DRIVER       = 0x0001,
4e2933c620 2015-04-21        kinaba: 	SERVICE_FILE_SYSTEM_DRIVER  = 0x0002,
4e2933c620 2015-04-21        kinaba: 	SERVICE_ADAPTER             = 0x0004,
4e2933c620 2015-04-21        kinaba: 	SERVICE_RECOGNIZER_DRIVER   = 0x0008,
4e2933c620 2015-04-21        kinaba: 	SERVICE_WIN32_OWN_PROCESS   = 0x0010,
4e2933c620 2015-04-21        kinaba: 	SERVICE_WIN32_SHARE_PROCESS = 0x0020,
4e2933c620 2015-04-21        kinaba: 	SERVICE_INTERACTIVE_PROCESS = 0x0100,
4e2933c620 2015-04-21        kinaba: 	SERVICE_DRIVER              = 0x000B,
4e2933c620 2015-04-21        kinaba: 	SERVICE_WIN32               = 0x0030,
4e2933c620 2015-04-21        kinaba: 	SERVICE_TYPE_ALL            = 0x013F;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	SERVICE_BOOT_START   = 0,
4e2933c620 2015-04-21        kinaba: 	SERVICE_SYSTEM_START = 1,
4e2933c620 2015-04-21        kinaba: 	SERVICE_AUTO_START   = 2,
4e2933c620 2015-04-21        kinaba: 	SERVICE_DEMAND_START = 3,
4e2933c620 2015-04-21        kinaba: 	SERVICE_DISABLED     = 4
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	SERVICE_ERROR_IGNORE   = 0,
4e2933c620 2015-04-21        kinaba: 	SERVICE_ERROR_NORMAL   = 1,
4e2933c620 2015-04-21        kinaba: 	SERVICE_ERROR_SEVERE   = 2,
4e2933c620 2015-04-21        kinaba: 	SERVICE_ERROR_CRITICAL = 3
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint
4e2933c620 2015-04-21        kinaba: 	SE_OWNER_DEFAULTED          = 0x0001,
4e2933c620 2015-04-21        kinaba: 	SE_GROUP_DEFAULTED          = 0x0002,
4e2933c620 2015-04-21        kinaba: 	SE_DACL_PRESENT             = 0x0004,
4e2933c620 2015-04-21        kinaba: 	SE_DACL_DEFAULTED           = 0x0008,
4e2933c620 2015-04-21        kinaba: 	SE_SACL_PRESENT             = 0x0010,
4e2933c620 2015-04-21        kinaba: 	SE_SACL_DEFAULTED           = 0x0020,
4e2933c620 2015-04-21        kinaba: 	SE_DACL_AUTO_INHERIT_REQ    = 0x0100,
4e2933c620 2015-04-21        kinaba: 	SE_SACL_AUTO_INHERIT_REQ    = 0x0200,
4e2933c620 2015-04-21        kinaba: 	SE_DACL_AUTO_INHERITED      = 0x0400,
4e2933c620 2015-04-21        kinaba: 	SE_SACL_AUTO_INHERITED      = 0x0800,
4e2933c620 2015-04-21        kinaba: 	SE_DACL_PROTECTED           = 0x1000,
4e2933c620 2015-04-21        kinaba: 	SE_SACL_PROTECTED           = 0x2000,
4e2933c620 2015-04-21        kinaba: 	SE_SELF_RELATIVE            = 0x8000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SECURITY_IMPERSONATION_LEVEL {
4e2933c620 2015-04-21        kinaba: 	SecurityAnonymous,
4e2933c620 2015-04-21        kinaba: 	SecurityIdentification,
4e2933c620 2015-04-21        kinaba: 	SecurityImpersonation,
4e2933c620 2015-04-21        kinaba: 	SecurityDelegation
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SECURITY_IMPERSONATION_LEVEL* PSECURITY_IMPERSONATION_LEVEL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias BOOLEAN SECURITY_CONTEXT_TRACKING_MODE;
4e2933c620 2015-04-21        kinaba: alias BOOLEAN* PSECURITY_CONTEXT_TRACKING_MODE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t SECURITY_DESCRIPTOR_MIN_LENGTH = 20;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SECURITY_DESCRIPTOR_REVISION  = 1,
4e2933c620 2015-04-21        kinaba: 	SECURITY_DESCRIPTOR_REVISION1 = 1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SE_PRIVILEGE_ENABLED_BY_DEFAULT = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	SE_PRIVILEGE_ENABLED            = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	SE_PRIVILEGE_USED_FOR_ACCESS    = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD PRIVILEGE_SET_ALL_NECESSARY = 1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const SECURITY_IMPERSONATION_LEVEL
4e2933c620 2015-04-21        kinaba: 	SECURITY_MAX_IMPERSONATION_LEVEL = SECURITY_IMPERSONATION_LEVEL.SecurityDelegation,
4e2933c620 2015-04-21        kinaba: 	DEFAULT_IMPERSONATION_LEVEL      = SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const BOOLEAN
4e2933c620 2015-04-21        kinaba: 	SECURITY_DYNAMIC_TRACKING = true,
4e2933c620 2015-04-21        kinaba: 	SECURITY_STATIC_TRACKING  = false;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // also in ddk/ntifs.h
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	TOKEN_ASSIGN_PRIMARY    = 0x0001,
4e2933c620 2015-04-21        kinaba: 	TOKEN_DUPLICATE         = 0x0002,
4e2933c620 2015-04-21        kinaba: 	TOKEN_IMPERSONATE       = 0x0004,
4e2933c620 2015-04-21        kinaba: 	TOKEN_QUERY             = 0x0008,
4e2933c620 2015-04-21        kinaba: 	TOKEN_QUERY_SOURCE      = 0x0010,
4e2933c620 2015-04-21        kinaba: 	TOKEN_ADJUST_PRIVILEGES = 0x0020,
4e2933c620 2015-04-21        kinaba: 	TOKEN_ADJUST_GROUPS     = 0x0040,
4e2933c620 2015-04-21        kinaba: 	TOKEN_ADJUST_DEFAULT    = 0x0080,
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	TOKEN_ALL_ACCESS        = STANDARD_RIGHTS_REQUIRED
4e2933c620 2015-04-21        kinaba:                               | TOKEN_ASSIGN_PRIMARY
4e2933c620 2015-04-21        kinaba:                               | TOKEN_DUPLICATE
4e2933c620 2015-04-21        kinaba:                               | TOKEN_IMPERSONATE
4e2933c620 2015-04-21        kinaba:                               | TOKEN_QUERY
4e2933c620 2015-04-21        kinaba:                               | TOKEN_QUERY_SOURCE
4e2933c620 2015-04-21        kinaba:                               | TOKEN_ADJUST_PRIVILEGES
4e2933c620 2015-04-21        kinaba:                               | TOKEN_ADJUST_GROUPS
4e2933c620 2015-04-21        kinaba:                               | TOKEN_ADJUST_DEFAULT,
4e2933c620 2015-04-21        kinaba: 	TOKEN_READ              = STANDARD_RIGHTS_READ | TOKEN_QUERY,
4e2933c620 2015-04-21        kinaba: 	TOKEN_WRITE             = STANDARD_RIGHTS_WRITE
4e2933c620 2015-04-21        kinaba:                               | TOKEN_ADJUST_PRIVILEGES
4e2933c620 2015-04-21        kinaba:                               | TOKEN_ADJUST_GROUPS
4e2933c620 2015-04-21        kinaba:                               | TOKEN_ADJUST_DEFAULT,
4e2933c620 2015-04-21        kinaba: 	TOKEN_EXECUTE           = STANDARD_RIGHTS_EXECUTE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t TOKEN_SOURCE_LENGTH = 8;
4e2933c620 2015-04-21        kinaba: // end ddk/ntifs.h
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	DLL_PROCESS_DETACH,
4e2933c620 2015-04-21        kinaba: 	DLL_PROCESS_ATTACH,
4e2933c620 2015-04-21        kinaba: 	DLL_THREAD_ATTACH,
4e2933c620 2015-04-21        kinaba: 	DLL_THREAD_DETACH
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	DBG_CONTINUE              = 0x00010002,
4e2933c620 2015-04-21        kinaba: 	DBG_TERMINATE_THREAD      = 0x40010003,
4e2933c620 2015-04-21        kinaba: 	DBG_TERMINATE_PROCESS     = 0x40010004,
4e2933c620 2015-04-21        kinaba: 	DBG_CONTROL_C             = 0x40010005,
4e2933c620 2015-04-21        kinaba: 	DBG_CONTROL_BREAK         = 0x40010008,
4e2933c620 2015-04-21        kinaba: 	DBG_EXCEPTION_NOT_HANDLED = 0x80010001
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	TAPE_ABSOLUTE_POSITION,
4e2933c620 2015-04-21        kinaba: 	TAPE_LOGICAL_POSITION,
4e2933c620 2015-04-21        kinaba: 	TAPE_PSEUDO_LOGICAL_POSITION
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	TAPE_REWIND,
4e2933c620 2015-04-21        kinaba: 	TAPE_ABSOLUTE_BLOCK,
4e2933c620 2015-04-21        kinaba: 	TAPE_LOGICAL_BLOCK,
4e2933c620 2015-04-21        kinaba: 	TAPE_PSEUDO_LOGICAL_BLOCK,
4e2933c620 2015-04-21        kinaba: 	TAPE_SPACE_END_OF_DATA,
4e2933c620 2015-04-21        kinaba: 	TAPE_SPACE_RELATIVE_BLOCKS,
4e2933c620 2015-04-21        kinaba: 	TAPE_SPACE_FILEMARKS,
4e2933c620 2015-04-21        kinaba: 	TAPE_SPACE_SEQUENTIAL_FMKS,
4e2933c620 2015-04-21        kinaba: 	TAPE_SPACE_SETMARKS,
4e2933c620 2015-04-21        kinaba: 	TAPE_SPACE_SEQUENTIAL_SMKS
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_FIXED            = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SELECT           = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_INITIATOR        = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_ERASE_SHORT      = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_ERASE_LONG       = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_ERASE_BOP_ONLY   = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_ERASE_IMMEDIATE  = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_TAPE_CAPACITY    = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_TAPE_REMAINING   = 0x00000200,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_FIXED_BLOCK      = 0x00000400,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_VARIABLE_BLOCK   = 0x00000800,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_WRITE_PROTECT    = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_EOT_WZ_SIZE      = 0x00002000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_ECC              = 0x00010000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_COMPRESSION      = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_PADDING          = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_REPORT_SMKS      = 0x00080000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_GET_ABSOLUTE_BLK = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_GET_LOGICAL_BLK  = 0x00200000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SET_EOT_WZ_SIZE  = 0x00400000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_EJECT_MEDIA      = 0x01000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_CLEAN_REQUESTS   = 0x02000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SET_CMP_BOP_ONLY = 0x04000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_RESERVED_BIT     = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_LOAD_UNLOAD      = 0x80000001,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_TENSION          = 0x80000002,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_LOCK_UNLOCK      = 0x80000004,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_REWIND_IMMEDIATE = 0x80000008,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SET_BLOCK_SIZE   = 0x80000010,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_LOAD_UNLD_IMMED  = 0x80000020,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_TENSION_IMMED    = 0x80000040,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_LOCK_UNLK_IMMED  = 0x80000080,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SET_ECC          = 0x80000100,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SET_COMPRESSION  = 0x80000200,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SET_PADDING      = 0x80000400,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SET_REPORT_SMKS  = 0x80000800,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_ABSOLUTE_BLK     = 0x80001000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_ABS_BLK_IMMED    = 0x80002000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_LOGICAL_BLK      = 0x80004000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_LOG_BLK_IMMED    = 0x80008000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_END_OF_DATA      = 0x80010000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_RELATIVE_BLKS    = 0x80020000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_FILEMARKS        = 0x80040000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SEQUENTIAL_FMKS  = 0x80080000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SETMARKS         = 0x80100000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SEQUENTIAL_SMKS  = 0x80200000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_REVERSE_POSITION = 0x80400000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_SPACE_IMMEDIATE  = 0x80800000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_WRITE_SETMARKS   = 0x81000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_WRITE_FILEMARKS  = 0x82000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_WRITE_SHORT_FMKS = 0x84000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_WRITE_LONG_FMKS  = 0x88000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_WRITE_MARK_IMMED = 0x90000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_FORMAT           = 0xA0000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_FORMAT_IMMEDIATE = 0xC0000000,
4e2933c620 2015-04-21        kinaba: 	TAPE_DRIVE_HIGH_FEATURES    = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	TAPE_FIXED_PARTITIONS     = 0,
4e2933c620 2015-04-21        kinaba: 	TAPE_SELECT_PARTITIONS    = 1,
4e2933c620 2015-04-21        kinaba: 	TAPE_INITIATOR_PARTITIONS = 2
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	TAPE_SETMARKS,
4e2933c620 2015-04-21        kinaba: 	TAPE_FILEMARKS,
4e2933c620 2015-04-21        kinaba: 	TAPE_SHORT_FILEMARKS,
4e2933c620 2015-04-21        kinaba: 	TAPE_LONG_FILEMARKS
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	TAPE_ERASE_SHORT,
4e2933c620 2015-04-21        kinaba: 	TAPE_ERASE_LONG
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	TAPE_LOAD,
4e2933c620 2015-04-21        kinaba: 	TAPE_UNLOAD,
4e2933c620 2015-04-21        kinaba: 	TAPE_TENSION,
4e2933c620 2015-04-21        kinaba: 	TAPE_LOCK,
4e2933c620 2015-04-21        kinaba: 	TAPE_UNLOCK,
4e2933c620 2015-04-21        kinaba: 	TAPE_FORMAT
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : ULONG32 {
4e2933c620 2015-04-21        kinaba: 	VER_PLATFORM_WIN32s,
4e2933c620 2015-04-21        kinaba: 	VER_PLATFORM_WIN32_WINDOWS,
4e2933c620 2015-04-21        kinaba: 	VER_PLATFORM_WIN32_NT
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : UCHAR {
4e2933c620 2015-04-21        kinaba: 	VER_NT_WORKSTATION = 1,
4e2933c620 2015-04-21        kinaba: 	VER_NT_DOMAIN_CONTROLLER,
4e2933c620 2015-04-21        kinaba: 	VER_NT_SERVER
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const USHORT
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_SMALLBUSINESS            = 0x0001,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_ENTERPRISE               = 0x0002,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_BACKOFFICE               = 0x0004,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_TERMINAL                 = 0x0010,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_SMALLBUSINESS_RESTRICTED = 0x0020,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_EMBEDDEDNT               = 0x0040,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_DATACENTER               = 0x0080,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_SINGLEUSERTS             = 0x0100,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_PERSONAL                 = 0x0200,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_BLADE                    = 0x0400,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_STORAGE_SERVER           = 0x2000,
4e2933c620 2015-04-21        kinaba: 	VER_SUITE_COMPUTE_SERVER           = 0x4000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ULONG
4e2933c620 2015-04-21        kinaba: 	WT_EXECUTEDEFAULT            = 0x00000000,
4e2933c620 2015-04-21        kinaba: 	WT_EXECUTEINIOTHREAD         = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	WT_EXECUTEINWAITTHREAD       = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	WT_EXECUTEONLYONCE           = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	WT_EXECUTELONGFUNCTION       = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	WT_EXECUTEINTIMERTHREAD      = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	WT_EXECUTEINPERSISTENTTHREAD = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	WT_TRANSFER_IMPERSONATION    = 0x00000100;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x500) {
9b639cf2d6 2015-05-05        kinaba: 	const DWORD
9b639cf2d6 2015-05-05        kinaba: 		VER_MINORVERSION     = 0x01,
9b639cf2d6 2015-05-05        kinaba: 		VER_MAJORVERSION     = 0x02,
9b639cf2d6 2015-05-05        kinaba: 		VER_BUILDNUMBER      = 0x04,
9b639cf2d6 2015-05-05        kinaba: 		VER_PLATFORMID       = 0x08,
9b639cf2d6 2015-05-05        kinaba: 		VER_SERVICEPACKMINOR = 0x10,
9b639cf2d6 2015-05-05        kinaba: 		VER_SERVICEPACKMAJOR = 0x20,
9b639cf2d6 2015-05-05        kinaba: 		VER_SUITENAME        = 0x40,
9b639cf2d6 2015-05-05        kinaba: 		VER_PRODUCT_TYPE     = 0x80;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	enum : DWORD {
9b639cf2d6 2015-05-05        kinaba: 		VER_EQUAL = 1,
9b639cf2d6 2015-05-05        kinaba: 		VER_GREATER,
9b639cf2d6 2015-05-05        kinaba: 		VER_GREATER_EQUAL,
9b639cf2d6 2015-05-05        kinaba: 		VER_LESS,
9b639cf2d6 2015-05-05        kinaba: 		VER_LESS_EQUAL,
9b639cf2d6 2015-05-05        kinaba: 		VER_AND,
9b639cf2d6 2015-05-05        kinaba: 		VER_OR // = 7
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: }
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x501) {
9b639cf2d6 2015-05-05        kinaba: 	enum : ULONG {
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION       = 1,
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION,
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION,
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION,
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION,
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION,
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 7
9b639cf2d6 2015-05-05        kinaba: 		ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES             = 9
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Macros
4e2933c620 2015-04-21        kinaba: BYTE BTYPE(BYTE x) { return cast(BYTE) (x & N_BTMASK); }
4e2933c620 2015-04-21        kinaba: bool ISPTR(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); }
4e2933c620 2015-04-21        kinaba: bool ISFCN(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); }
4e2933c620 2015-04-21        kinaba: bool ISARY(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT); }
4e2933c620 2015-04-21        kinaba: bool ISTAG(uint x) {
4e2933c620 2015-04-21        kinaba: 	return x == IMAGE_SYM_CLASS_STRUCT_TAG
4e2933c620 2015-04-21        kinaba: 	    || x == IMAGE_SYM_CLASS_UNION_TAG
4e2933c620 2015-04-21        kinaba: 	    || x == IMAGE_SYM_CLASS_ENUM_TAG;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: uint INCREF(uint x) {
4e2933c620 2015-04-21        kinaba: 	return ((x & ~N_BTMASK) << N_TSHIFT) | (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT)
4e2933c620 2015-04-21        kinaba: 	  | (x & N_BTMASK);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: uint DECREF(uint x) { return ((x >>> N_TSHIFT) & ~N_BTMASK) | (x & N_BTMASK); }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD TLS_MINIMUM_AVAILABLE = 64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const ULONG
4e2933c620 2015-04-21        kinaba: 	IO_REPARSE_TAG_RESERVED_ZERO  = 0,
4e2933c620 2015-04-21        kinaba: 	IO_REPARSE_TAG_RESERVED_ONE   = 1,
4e2933c620 2015-04-21        kinaba: 	IO_REPARSE_TAG_RESERVED_RANGE = IO_REPARSE_TAG_RESERVED_ONE,
4e2933c620 2015-04-21        kinaba: 	IO_REPARSE_TAG_SYMBOLIC_LINK  = IO_REPARSE_TAG_RESERVED_ZERO,
4e2933c620 2015-04-21        kinaba: 	IO_REPARSE_TAG_MOUNT_POINT    = 0xA0000003,
4e2933c620 2015-04-21        kinaba: 	IO_REPARSE_TAG_SYMLINK        = 0xA000000C,
4e2933c620 2015-04-21        kinaba: 	IO_REPARSE_TAG_VALID_VALUES   = 0xE000FFFF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /*	Although these are semantically boolean, they are documented and
4e2933c620 2015-04-21        kinaba:  *	implemented to return ULONG; this behaviour is preserved for compatibility
4e2933c620 2015-04-21        kinaba:  */
4e2933c620 2015-04-21        kinaba: ULONG IsReparseTagMicrosoft(ULONG x)     { return x & 0x80000000; }
4e2933c620 2015-04-21        kinaba: ULONG IsReparseTagHighLatency(ULONG x)   { return x & 0x40000000; }
4e2933c620 2015-04-21        kinaba: ULONG IsReparseTagNameSurrogate(ULONG x) { return x & 0x20000000; }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: bool IsReparseTagValid(ULONG x) {
4e2933c620 2015-04-21        kinaba: 	return !(x & ~IO_REPARSE_TAG_VALID_VALUES) && (x > IO_REPARSE_TAG_RESERVED_RANGE);
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // Doesn't seem to make sense, but anyway....
4e2933c620 2015-04-21        kinaba: ULONG WT_SET_MAX_THREADPOOL_THREADS(ref ULONG Flags, ushort Limit) {
4e2933c620 2015-04-21        kinaba: 	return Flags |= Limit << 16;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: import win32.basetyps;
4e2933c620 2015-04-21        kinaba: /* also in win32.basetyps
4e2933c620 2015-04-21        kinaba: struct GUID {
4e2933c620 2015-04-21        kinaba: 	uint  Data1;
4e2933c620 2015-04-21        kinaba: 	ushort Data2;
4e2933c620 2015-04-21        kinaba: 	ushort Data3;
4e2933c620 2015-04-21        kinaba: 	ubyte  Data4[8];
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias GUID* REFGUID, LPGUID;
4e2933c620 2015-04-21        kinaba: */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct GENERIC_MAPPING {
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK GenericRead;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK GenericWrite;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK GenericExecute;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK GenericAll;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias GENERIC_MAPPING* PGENERIC_MAPPING;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACE_HEADER {
4e2933c620 2015-04-21        kinaba: 	BYTE AceType;
4e2933c620 2015-04-21        kinaba: 	BYTE AceFlags;
4e2933c620 2015-04-21        kinaba: 	WORD AceSize;
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias ACE_HEADER* PACE_HEADER;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACCESS_ALLOWED_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias ACCESS_ALLOWED_ACE* PACCESS_ALLOWED_ACE;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACCESS_DENIED_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias ACCESS_DENIED_ACE* PACCESS_DENIED_ACE;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_AUDIT_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
c2b7a98c21 2011-02-23        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_AUDIT_ACE *PSYSTEM_AUDIT_ACE;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_ALARM_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias SYSTEM_ALARM_ACE* PSYSTEM_ALARM_ACE;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACCESS_ALLOWED_OBJECT_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       Flags;
4e2933c620 2015-04-21        kinaba: 	GUID        ObjectType;
4e2933c620 2015-04-21        kinaba: 	GUID        InheritedObjectType;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACCESS_ALLOWED_OBJECT_ACE* PACCESS_ALLOWED_OBJECT_ACE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACCESS_DENIED_OBJECT_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       Flags;
4e2933c620 2015-04-21        kinaba: 	GUID        ObjectType;
4e2933c620 2015-04-21        kinaba: 	GUID        InheritedObjectType;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACCESS_DENIED_OBJECT_ACE* PACCESS_DENIED_OBJECT_ACE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_AUDIT_OBJECT_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       Flags;
4e2933c620 2015-04-21        kinaba: 	GUID        ObjectType;
4e2933c620 2015-04-21        kinaba: 	GUID        InheritedObjectType;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_AUDIT_OBJECT_ACE* PSYSTEM_AUDIT_OBJECT_ACE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_ALARM_OBJECT_ACE {
4e2933c620 2015-04-21        kinaba: 	ACE_HEADER  Header;
4e2933c620 2015-04-21        kinaba: 	ACCESS_MASK Mask;
4e2933c620 2015-04-21        kinaba: 	DWORD       Flags;
4e2933c620 2015-04-21        kinaba: 	GUID        ObjectType;
4e2933c620 2015-04-21        kinaba: 	GUID        InheritedObjectType;
4e2933c620 2015-04-21        kinaba: 	DWORD       SidStart;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_ALARM_OBJECT_ACE* PSYSTEM_ALARM_OBJECT_ACE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACL {
4e2933c620 2015-04-21        kinaba: 	BYTE AclRevision;
4e2933c620 2015-04-21        kinaba: 	BYTE Sbz1;
4e2933c620 2015-04-21        kinaba: 	WORD AclSize;
4e2933c620 2015-04-21        kinaba: 	WORD AceCount;
4e2933c620 2015-04-21        kinaba: 	WORD Sbz2;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ACL* PACL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACL_REVISION_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD AclRevision;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ACL_SIZE_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD AceCount;
4e2933c620 2015-04-21        kinaba: 	DWORD AclBytesInUse;
4e2933c620 2015-04-21        kinaba: 	DWORD AclBytesFree;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: version (X86) {
4e2933c620 2015-04-21        kinaba: 	// ???
4e2933c620 2015-04-21        kinaba: 	const SIZE_OF_80387_REGISTERS     = 80;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_i386                = 0x010000;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_i486                = 0x010000;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_CONTROL             = CONTEXT_i386 | 0x01;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_INTEGER             = CONTEXT_i386 | 0x02;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_SEGMENTS            = CONTEXT_i386 | 0x04;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_FLOATING_POINT      = CONTEXT_i386 | 0x08;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_DEBUG_REGISTERS     = CONTEXT_i386 | 0x10;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_EXTENDED_REGISTERS  = CONTEXT_i386 | 0x20;
4e2933c620 2015-04-21        kinaba: 	const CONTEXT_FULL                = CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS;
4e2933c620 2015-04-21        kinaba: 	const MAXIMUM_SUPPORTED_EXTENSION = 512;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct FLOATING_SAVE_AREA {
4e2933c620 2015-04-21        kinaba: 		DWORD    ControlWord;
4e2933c620 2015-04-21        kinaba: 		DWORD    StatusWord;
4e2933c620 2015-04-21        kinaba: 		DWORD    TagWord;
4e2933c620 2015-04-21        kinaba: 		DWORD    ErrorOffset;
4e2933c620 2015-04-21        kinaba: 		DWORD    ErrorSelector;
4e2933c620 2015-04-21        kinaba: 		DWORD    DataOffset;
4e2933c620 2015-04-21        kinaba: 		DWORD    DataSelector;
4e2933c620 2015-04-21        kinaba: 		BYTE[80] RegisterArea;
4e2933c620 2015-04-21        kinaba: 		DWORD    Cr0NpxState;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct CONTEXT {
4e2933c620 2015-04-21        kinaba: 		DWORD ContextFlags;
4e2933c620 2015-04-21        kinaba: 		DWORD Dr0;
4e2933c620 2015-04-21        kinaba: 		DWORD Dr1;
4e2933c620 2015-04-21        kinaba: 		DWORD Dr2;
4e2933c620 2015-04-21        kinaba: 		DWORD Dr3;
4e2933c620 2015-04-21        kinaba: 		DWORD Dr6;
4e2933c620 2015-04-21        kinaba: 		DWORD Dr7;
4e2933c620 2015-04-21        kinaba: 		FLOATING_SAVE_AREA FloatSave;
4e2933c620 2015-04-21        kinaba: 		DWORD SegGs;
4e2933c620 2015-04-21        kinaba: 		DWORD SegFs;
4e2933c620 2015-04-21        kinaba: 		DWORD SegEs;
4e2933c620 2015-04-21        kinaba: 		DWORD SegDs;
4e2933c620 2015-04-21        kinaba: 		DWORD Edi;
4e2933c620 2015-04-21        kinaba: 		DWORD Esi;
4e2933c620 2015-04-21        kinaba: 		DWORD Ebx;
4e2933c620 2015-04-21        kinaba: 		DWORD Edx;
4e2933c620 2015-04-21        kinaba: 		DWORD Ecx;
4e2933c620 2015-04-21        kinaba: 		DWORD Eax;
4e2933c620 2015-04-21        kinaba: 		DWORD Ebp;
4e2933c620 2015-04-21        kinaba: 		DWORD Eip;
4e2933c620 2015-04-21        kinaba: 		DWORD SegCs;
4e2933c620 2015-04-21        kinaba: 		DWORD EFlags;
4e2933c620 2015-04-21        kinaba: 		DWORD Esp;
4e2933c620 2015-04-21        kinaba: 		DWORD SegSs;
4e2933c620 2015-04-21        kinaba: 		BYTE[MAXIMUM_SUPPORTED_EXTENSION] ExtendedRegisters;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: } else version(X86_64)
9b639cf2d6 2015-05-05        kinaba: {
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_AMD64 = 0x100000;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_CONTROL         = (CONTEXT_AMD64 | 0x1L);
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_INTEGER         = (CONTEXT_AMD64 | 0x2L);
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_SEGMENTS        = (CONTEXT_AMD64 | 0x4L);
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_FLOATING_POINT  = (CONTEXT_AMD64 | 0x8L);
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_DEBUG_REGISTERS = (CONTEXT_AMD64 | 0x10L);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT);
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_ALL  = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS);
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_EXCEPTION_ACTIVE    = 0x8000000;
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_SERVICE_ACTIVE      = 0x10000000;
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_EXCEPTION_REQUEST   = 0x40000000;
9b639cf2d6 2015-05-05        kinaba: 	const CONTEXT_EXCEPTION_REPORTING = 0x80000000;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	const INITIAL_MXCSR = 0x1f80;
9b639cf2d6 2015-05-05        kinaba: 	const INITIAL_FPCSR = 0x027f;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	align(16) struct M128A
9b639cf2d6 2015-05-05        kinaba: 	{
9b639cf2d6 2015-05-05        kinaba: 		ULONGLONG Low;
9b639cf2d6 2015-05-05        kinaba: 		LONGLONG High;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	alias M128A* PM128A;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	struct XMM_SAVE_AREA32
9b639cf2d6 2015-05-05        kinaba: 	{
9b639cf2d6 2015-05-05        kinaba: 		WORD ControlWord;
9b639cf2d6 2015-05-05        kinaba: 		WORD StatusWord;
9b639cf2d6 2015-05-05        kinaba: 		BYTE TagWord;
9b639cf2d6 2015-05-05        kinaba: 		BYTE Reserved1;
9b639cf2d6 2015-05-05        kinaba: 		WORD ErrorOpcode;
9b639cf2d6 2015-05-05        kinaba: 		DWORD ErrorOffset;
9b639cf2d6 2015-05-05        kinaba: 		WORD ErrorSelector;
9b639cf2d6 2015-05-05        kinaba: 		WORD Reserved2;
9b639cf2d6 2015-05-05        kinaba: 		DWORD DataOffset;
9b639cf2d6 2015-05-05        kinaba: 		WORD DataSelector;
9b639cf2d6 2015-05-05        kinaba: 		WORD Reserved3;
9b639cf2d6 2015-05-05        kinaba: 		DWORD MxCsr;
9b639cf2d6 2015-05-05        kinaba: 		DWORD MxCsr_Mask;
9b639cf2d6 2015-05-05        kinaba: 		M128A[8] FloatRegisters;
9b639cf2d6 2015-05-05        kinaba: 		M128A[16] XmmRegisters;
9b639cf2d6 2015-05-05        kinaba: 		BYTE[96] Reserved4;
9b639cf2d6 2015-05-05        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	alias XMM_SAVE_AREA32 PXMM_SAVE_AREA32;
9b639cf2d6 2015-05-05        kinaba: 	const LEGACY_SAVE_AREA_LENGTH = XMM_SAVE_AREA32.sizeof;
9b639cf2d6 2015-05-05        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	align(16) struct CONTEXT
9b639cf2d6 2015-05-05        kinaba: 	{
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 P1Home;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 P2Home;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 P3Home;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 P4Home;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 P5Home;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 P6Home;
9b639cf2d6 2015-05-05        kinaba: 		DWORD ContextFlags;
9b639cf2d6 2015-05-05        kinaba: 		DWORD MxCsr;
9b639cf2d6 2015-05-05        kinaba: 		WORD SegCs;
9b639cf2d6 2015-05-05        kinaba: 		WORD SegDs;
9b639cf2d6 2015-05-05        kinaba: 		WORD SegEs;
9b639cf2d6 2015-05-05        kinaba: 		WORD SegFs;
9b639cf2d6 2015-05-05        kinaba: 		WORD SegGs;
9b639cf2d6 2015-05-05        kinaba: 		WORD SegSs;
9b639cf2d6 2015-05-05        kinaba: 		DWORD EFlags;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Dr0;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Dr1;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Dr2;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Dr3;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Dr6;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Dr7;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rax;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rcx;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rdx;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rbx;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rsp;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rbp;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rsi;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rdi;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R8;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R9;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R10;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R11;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R12;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R13;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R14;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 R15;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 Rip;
9b639cf2d6 2015-05-05        kinaba: 		union
9b639cf2d6 2015-05-05        kinaba: 		{
9b639cf2d6 2015-05-05        kinaba: 			XMM_SAVE_AREA32 FltSave;
9b639cf2d6 2015-05-05        kinaba: 			XMM_SAVE_AREA32 FloatSave;
9b639cf2d6 2015-05-05        kinaba: 			struct
9b639cf2d6 2015-05-05        kinaba: 			{
9b639cf2d6 2015-05-05        kinaba: 				M128A[2] Header;
9b639cf2d6 2015-05-05        kinaba: 				M128A[8] Legacy;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm0;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm1;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm2;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm3;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm4;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm5;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm6;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm7;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm8;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm9;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm10;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm11;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm12;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm13;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm14;
9b639cf2d6 2015-05-05        kinaba: 				M128A Xmm15;
9b639cf2d6 2015-05-05        kinaba: 			};
9b639cf2d6 2015-05-05        kinaba: 		};
9b639cf2d6 2015-05-05        kinaba: 		M128A[26] VectorRegister;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 VectorControl;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 DebugControl;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 LastBranchToRip;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 LastBranchFromRip;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 LastExceptionToRip;
9b639cf2d6 2015-05-05        kinaba: 		DWORD64 LastExceptionFromRip;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	static assert(false, "Unsupported CPU");
4e2933c620 2015-04-21        kinaba: 	// Versions for PowerPC, Alpha, SHX, and MIPS removed.
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias CONTEXT* PCONTEXT, LPCONTEXT;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct EXCEPTION_RECORD {
4e2933c620 2015-04-21        kinaba: 	DWORD ExceptionCode;
4e2933c620 2015-04-21        kinaba: 	DWORD ExceptionFlags;
4e2933c620 2015-04-21        kinaba: 	EXCEPTION_RECORD* ExceptionRecord;
4e2933c620 2015-04-21        kinaba: 	PVOID ExceptionAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD NumberParameters;
4e2933c620 2015-04-21        kinaba: 	DWORD[EXCEPTION_MAXIMUM_PARAMETERS] ExceptionInformation;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias EXCEPTION_RECORD* PEXCEPTION_RECORD, LPEXCEPTION_RECORD;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct EXCEPTION_POINTERS {
4e2933c620 2015-04-21        kinaba: 	PEXCEPTION_RECORD ExceptionRecord;
4e2933c620 2015-04-21        kinaba: 	PCONTEXT          ContextRecord;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias EXCEPTION_POINTERS* PEXCEPTION_POINTERS, LPEXCEPTION_POINTERS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: union LARGE_INTEGER {
4e2933c620 2015-04-21        kinaba: 	struct {
4e2933c620 2015-04-21        kinaba: 		uint LowPart;
4e2933c620 2015-04-21        kinaba: 		int  HighPart;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	long QuadPart;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias LARGE_INTEGER* PLARGE_INTEGER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: union ULARGE_INTEGER {
4e2933c620 2015-04-21        kinaba: 	struct {
4e2933c620 2015-04-21        kinaba: 		uint LowPart;
4e2933c620 2015-04-21        kinaba: 		uint HighPart;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	ulong QuadPart;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ULARGE_INTEGER* PULARGE_INTEGER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias LARGE_INTEGER LUID;
4e2933c620 2015-04-21        kinaba: alias LUID* PLUID;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const LUID SYSTEM_LUID = { QuadPart:999 };
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(4) struct LUID_AND_ATTRIBUTES {
4e2933c620 2015-04-21        kinaba: 	LUID  Luid;
4e2933c620 2015-04-21        kinaba: 	DWORD Attributes;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias LUID_AND_ATTRIBUTES* PLUID_AND_ATTRIBUTES;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PRIVILEGE_SET {
4e2933c620 2015-04-21        kinaba: 	DWORD PrivilegeCount;
4e2933c620 2015-04-21        kinaba: 	DWORD Control;
4e2933c620 2015-04-21        kinaba: 	LUID_AND_ATTRIBUTES _Privilege;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	LUID_AND_ATTRIBUTES* Privilege() { return &_Privilege; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PRIVILEGE_SET* PPRIVILEGE_SET;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SECURITY_ATTRIBUTES {
4e2933c620 2015-04-21        kinaba: 	DWORD  nLength;
4e2933c620 2015-04-21        kinaba: 	LPVOID lpSecurityDescriptor;
4e2933c620 2015-04-21        kinaba: 	BOOL   bInheritHandle;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SECURITY_ATTRIBUTES* PSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SECURITY_QUALITY_OF_SERVICE {
4e2933c620 2015-04-21        kinaba: 	DWORD   Length;
4e2933c620 2015-04-21        kinaba: 	SECURITY_IMPERSONATION_LEVEL   ImpersonationLevel;
4e2933c620 2015-04-21        kinaba: 	SECURITY_CONTEXT_TRACKING_MODE ContextTrackingMode;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN EffectiveOnly;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SECURITY_QUALITY_OF_SERVICE* PSECURITY_QUALITY_OF_SERVICE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias PVOID PACCESS_TOKEN;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SE_IMPERSONATION_STATE {
4e2933c620 2015-04-21        kinaba: 	PACCESS_TOKEN Token;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN       CopyOnOpen;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN       EffectiveOnly;
4e2933c620 2015-04-21        kinaba: 	SECURITY_IMPERSONATION_LEVEL Level;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SE_IMPERSONATION_STATE* PSE_IMPERSONATION_STATE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SID_IDENTIFIER_AUTHORITY {
4e2933c620 2015-04-21        kinaba: 	BYTE[6] Value;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SID_IDENTIFIER_AUTHORITY* PSID_IDENTIFIER_AUTHORITY, LPSID_IDENTIFIER_AUTHORITY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: alias PVOID PSID;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SID {
4e2933c620 2015-04-21        kinaba: 	BYTE  Revision;
4e2933c620 2015-04-21        kinaba: 	BYTE  SubAuthorityCount;
4e2933c620 2015-04-21        kinaba: 	SID_IDENTIFIER_AUTHORITY IdentifierAuthority;
4e2933c620 2015-04-21        kinaba: 	DWORD _SubAuthority;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	DWORD* SubAuthority() { return &_SubAuthority; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SID* PISID;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SID_AND_ATTRIBUTES {
4e2933c620 2015-04-21        kinaba: 	PSID  Sid;
4e2933c620 2015-04-21        kinaba: 	DWORD Attributes;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SID_AND_ATTRIBUTES* PSID_AND_ATTRIBUTES;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_SOURCE {
4e2933c620 2015-04-21        kinaba: 	CHAR[TOKEN_SOURCE_LENGTH] SourceName;
4e2933c620 2015-04-21        kinaba: 	LUID SourceIdentifier;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_SOURCE* PTOKEN_SOURCE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_CONTROL {
4e2933c620 2015-04-21        kinaba: 	LUID         TokenId;
4e2933c620 2015-04-21        kinaba: 	LUID         AuthenticationId;
4e2933c620 2015-04-21        kinaba: 	LUID         ModifiedId;
4e2933c620 2015-04-21        kinaba: 	TOKEN_SOURCE TokenSource;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_CONTROL* PTOKEN_CONTROL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_DEFAULT_DACL {
4e2933c620 2015-04-21        kinaba: 	PACL DefaultDacl;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_DEFAULT_DACL* PTOKEN_DEFAULT_DACL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_GROUPS {
4e2933c620 2015-04-21        kinaba: 	DWORD GroupCount;
4e2933c620 2015-04-21        kinaba: 	SID_AND_ATTRIBUTES _Groups;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	SID_AND_ATTRIBUTES* Groups() { return &_Groups; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_GROUPS* PTOKEN_GROUPS, LPTOKEN_GROUPS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_OWNER {
4e2933c620 2015-04-21        kinaba: 	PSID Owner;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_OWNER* PTOKEN_OWNER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_PRIMARY_GROUP {
4e2933c620 2015-04-21        kinaba: 	PSID PrimaryGroup;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_PRIMARY_GROUP* PTOKEN_PRIMARY_GROUP;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_PRIVILEGES {
4e2933c620 2015-04-21        kinaba: 	DWORD PrivilegeCount;
4e2933c620 2015-04-21        kinaba: 	LUID_AND_ATTRIBUTES _Privileges;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	LUID_AND_ATTRIBUTES* Privileges() { return &_Privileges; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_PRIVILEGES* PTOKEN_PRIVILEGES, LPTOKEN_PRIVILEGES;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum TOKEN_TYPE {
4e2933c620 2015-04-21        kinaba: 	TokenPrimary = 1,
4e2933c620 2015-04-21        kinaba: 	TokenImpersonation
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias TOKEN_TYPE* PTOKEN_TYPE;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_STATISTICS {
4e2933c620 2015-04-21        kinaba: 	LUID          TokenId;
4e2933c620 2015-04-21        kinaba: 	LUID          AuthenticationId;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER ExpirationTime;
4e2933c620 2015-04-21        kinaba: 	TOKEN_TYPE    TokenType;
4e2933c620 2015-04-21        kinaba: 	SECURITY_IMPERSONATION_LEVEL ImpersonationLevel;
4e2933c620 2015-04-21        kinaba: 	DWORD         DynamicCharged;
4e2933c620 2015-04-21        kinaba: 	DWORD         DynamicAvailable;
4e2933c620 2015-04-21        kinaba: 	DWORD         GroupCount;
4e2933c620 2015-04-21        kinaba: 	DWORD         PrivilegeCount;
4e2933c620 2015-04-21        kinaba: 	LUID          ModifiedId;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_STATISTICS* PTOKEN_STATISTICS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TOKEN_USER {
4e2933c620 2015-04-21        kinaba: 	SID_AND_ATTRIBUTES User;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TOKEN_USER* PTOKEN_USER;
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: alias DWORD SECURITY_INFORMATION;
4e2933c620 2015-04-21        kinaba: alias SECURITY_INFORMATION* PSECURITY_INFORMATION;
4e2933c620 2015-04-21        kinaba: alias WORD SECURITY_DESCRIPTOR_CONTROL;
4e2933c620 2015-04-21        kinaba: alias SECURITY_DESCRIPTOR_CONTROL* PSECURITY_DESCRIPTOR_CONTROL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SECURITY_DESCRIPTOR {
4e2933c620 2015-04-21        kinaba: 	BYTE Revision;
4e2933c620 2015-04-21        kinaba: 	BYTE Sbz1;
4e2933c620 2015-04-21        kinaba: 	SECURITY_DESCRIPTOR_CONTROL Control;
4e2933c620 2015-04-21        kinaba: 	PSID Owner;
4e2933c620 2015-04-21        kinaba: 	PSID Group;
4e2933c620 2015-04-21        kinaba: 	PACL Sacl;
4e2933c620 2015-04-21        kinaba: 	PACL Dacl;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SECURITY_DESCRIPTOR* PSECURITY_DESCRIPTOR, PISECURITY_DESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum TOKEN_INFORMATION_CLASS {
4e2933c620 2015-04-21        kinaba: 	TokenUser = 1,
4e2933c620 2015-04-21        kinaba: 	TokenGroups,
4e2933c620 2015-04-21        kinaba: 	TokenPrivileges,
4e2933c620 2015-04-21        kinaba: 	TokenOwner,
4e2933c620 2015-04-21        kinaba: 	TokenPrimaryGroup,
4e2933c620 2015-04-21        kinaba: 	TokenDefaultDacl,
4e2933c620 2015-04-21        kinaba: 	TokenSource,
4e2933c620 2015-04-21        kinaba: 	TokenType,
4e2933c620 2015-04-21        kinaba: 	TokenImpersonationLevel,
4e2933c620 2015-04-21        kinaba: 	TokenStatistics,
4e2933c620 2015-04-21        kinaba: 	TokenRestrictedSids,
4e2933c620 2015-04-21        kinaba: 	TokenSessionId,
4e2933c620 2015-04-21        kinaba: 	TokenGroupsAndPrivileges,
4e2933c620 2015-04-21        kinaba: 	TokenSessionReference,
4e2933c620 2015-04-21        kinaba: 	TokenSandBoxInert,
4e2933c620 2015-04-21        kinaba: 	TokenAuditPolicy,
4e2933c620 2015-04-21        kinaba: 	TokenOrigin
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SID_NAME_USE {
4e2933c620 2015-04-21        kinaba: 	SidTypeUser = 1,
4e2933c620 2015-04-21        kinaba: 	SidTypeGroup,
4e2933c620 2015-04-21        kinaba: 	SidTypeDomain,
4e2933c620 2015-04-21        kinaba: 	SidTypeAlias,
4e2933c620 2015-04-21        kinaba: 	SidTypeWellKnownGroup,
4e2933c620 2015-04-21        kinaba: 	SidTypeDeletedAccount,
4e2933c620 2015-04-21        kinaba: 	SidTypeInvalid,
4e2933c620 2015-04-21        kinaba: 	SidTypeUnknown,
4e2933c620 2015-04-21        kinaba: 	SidTypeComputer
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SID_NAME_USE* PSID_NAME_USE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct QUOTA_LIMITS {
4e2933c620 2015-04-21        kinaba: 	SIZE_T PagedPoolLimit;
4e2933c620 2015-04-21        kinaba: 	SIZE_T NonPagedPoolLimit;
4e2933c620 2015-04-21        kinaba: 	SIZE_T MinimumWorkingSetSize;
4e2933c620 2015-04-21        kinaba: 	SIZE_T MaximumWorkingSetSize;
4e2933c620 2015-04-21        kinaba: 	SIZE_T PagefileLimit;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER TimeLimit;
4e2933c620 2015-04-21        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias QUOTA_LIMITS* PQUOTA_LIMITS;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IO_COUNTERS {
4e2933c620 2015-04-21        kinaba: 	ULONGLONG ReadOperationCount;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG WriteOperationCount;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG OtherOperationCount;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG ReadTransferCount;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG WriteTransferCount;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG OtherTransferCount;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: alias IO_COUNTERS* PIO_COUNTERS;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FILE_NOTIFY_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD NextEntryOffset;
4e2933c620 2015-04-21        kinaba: 	DWORD Action;
4e2933c620 2015-04-21        kinaba: 	DWORD FileNameLength;
4e2933c620 2015-04-21        kinaba: 	WCHAR _FileName;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	WCHAR* FileName() { return &_FileName; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FILE_NOTIFY_INFORMATION* PFILE_NOTIFY_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_ERASE {
4e2933c620 2015-04-21        kinaba: 	DWORD   Type;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN Immediate;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_ERASE* PTAPE_ERASE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_GET_DRIVE_PARAMETERS {
4e2933c620 2015-04-21        kinaba: 	BOOLEAN ECC;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN Compression;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN DataPadding;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN ReportSetmarks;
4e2933c620 2015-04-21        kinaba: 	DWORD   DefaultBlockSize;
4e2933c620 2015-04-21        kinaba: 	DWORD   MaximumBlockSize;
4e2933c620 2015-04-21        kinaba: 	DWORD   MinimumBlockSize;
4e2933c620 2015-04-21        kinaba: 	DWORD   MaximumPartitionCount;
4e2933c620 2015-04-21        kinaba: 	DWORD   FeaturesLow;
4e2933c620 2015-04-21        kinaba: 	DWORD   FeaturesHigh;
4e2933c620 2015-04-21        kinaba: 	DWORD   EOTWarningZoneSize;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_GET_DRIVE_PARAMETERS* PTAPE_GET_DRIVE_PARAMETERS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_GET_MEDIA_PARAMETERS {
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER Capacity;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER Remaining;
4e2933c620 2015-04-21        kinaba: 	DWORD         BlockSize;
4e2933c620 2015-04-21        kinaba: 	DWORD         PartitionCount;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN       WriteProtected;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_GET_MEDIA_PARAMETERS* PTAPE_GET_MEDIA_PARAMETERS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_GET_POSITION {
4e2933c620 2015-04-21        kinaba: 	ULONG Type;
4e2933c620 2015-04-21        kinaba: 	ULONG Partition;
4e2933c620 2015-04-21        kinaba: 	ULONG OffsetLow;
4e2933c620 2015-04-21        kinaba: 	ULONG OffsetHigh;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_GET_POSITION* PTAPE_GET_POSITION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_PREPARE {
4e2933c620 2015-04-21        kinaba: 	DWORD   Operation;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN Immediate;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_PREPARE* PTAPE_PREPARE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_SET_DRIVE_PARAMETERS {
4e2933c620 2015-04-21        kinaba: 	BOOLEAN ECC;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN Compression;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN DataPadding;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN ReportSetmarks;
4e2933c620 2015-04-21        kinaba: 	ULONG   EOTWarningZoneSize;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_SET_DRIVE_PARAMETERS* PTAPE_SET_DRIVE_PARAMETERS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_SET_MEDIA_PARAMETERS {
4e2933c620 2015-04-21        kinaba: 	ULONG BlockSize;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_SET_MEDIA_PARAMETERS* PTAPE_SET_MEDIA_PARAMETERS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_SET_POSITION {
4e2933c620 2015-04-21        kinaba: 	DWORD         Method;
4e2933c620 2015-04-21        kinaba: 	DWORD         Partition;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER Offset;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN       Immediate;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_SET_POSITION* PTAPE_SET_POSITION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_WRITE_MARKS {
4e2933c620 2015-04-21        kinaba: 	DWORD   Type;
4e2933c620 2015-04-21        kinaba: 	DWORD   Count;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN Immediate;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_WRITE_MARKS* PTAPE_WRITE_MARKS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct TAPE_CREATE_PARTITION {
4e2933c620 2015-04-21        kinaba: 	DWORD Method;
4e2933c620 2015-04-21        kinaba: 	DWORD Count;
4e2933c620 2015-04-21        kinaba: 	DWORD Size;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias TAPE_CREATE_PARTITION* PTAPE_CREATE_PARTITION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MEMORY_BASIC_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	PVOID BaseAddress;
4e2933c620 2015-04-21        kinaba: 	PVOID AllocationBase;
4e2933c620 2015-04-21        kinaba: 	DWORD AllocationProtect;
4e2933c620 2015-04-21        kinaba: 	DWORD RegionSize;
4e2933c620 2015-04-21        kinaba: 	DWORD State;
4e2933c620 2015-04-21        kinaba: 	DWORD Protect;
4e2933c620 2015-04-21        kinaba: 	DWORD Type;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MEMORY_BASIC_INFORMATION* PMEMORY_BASIC_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MESSAGE_RESOURCE_ENTRY {
4e2933c620 2015-04-21        kinaba: 	WORD Length;
4e2933c620 2015-04-21        kinaba: 	WORD Flags;
4e2933c620 2015-04-21        kinaba: 	BYTE _Text;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	BYTE* Text() { return &_Text; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MESSAGE_RESOURCE_ENTRY* PMESSAGE_RESOURCE_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MESSAGE_RESOURCE_BLOCK {
4e2933c620 2015-04-21        kinaba: 	DWORD LowId;
4e2933c620 2015-04-21        kinaba: 	DWORD HighId;
4e2933c620 2015-04-21        kinaba: 	DWORD OffsetToEntries;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MESSAGE_RESOURCE_BLOCK* PMESSAGE_RESOURCE_BLOCK;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct MESSAGE_RESOURCE_DATA {
4e2933c620 2015-04-21        kinaba: 	DWORD NumberOfBlocks;
4e2933c620 2015-04-21        kinaba: 	MESSAGE_RESOURCE_BLOCK _Blocks;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	MESSAGE_RESOURCE_BLOCK* Blocks() { return &_Blocks; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias MESSAGE_RESOURCE_DATA* PMESSAGE_RESOURCE_DATA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct LIST_ENTRY {
4e2933c620 2015-04-21        kinaba: 	LIST_ENTRY* Flink;
4e2933c620 2015-04-21        kinaba: 	LIST_ENTRY* Blink;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias LIST_ENTRY* PLIST_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SINGLE_LIST_ENTRY {
4e2933c620 2015-04-21        kinaba: 	SINGLE_LIST_ENTRY* Next;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SINGLE_LIST_ENTRY SLIST_ENTRY;
4e2933c620 2015-04-21        kinaba: alias SINGLE_LIST_ENTRY* PSINGLE_LIST_ENTRY, PSLIST_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: union SLIST_HEADER {
4e2933c620 2015-04-21        kinaba: 	ULONGLONG       Alignment;
4e2933c620 2015-04-21        kinaba: 	struct {
4e2933c620 2015-04-21        kinaba: 		SLIST_ENTRY Next;
4e2933c620 2015-04-21        kinaba: 		WORD        Depth;
4e2933c620 2015-04-21        kinaba: 		WORD        Sequence;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SLIST_HEADER* PSLIST_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RTL_CRITICAL_SECTION_DEBUG {
4e2933c620 2015-04-21        kinaba: 	WORD       Type;
4e2933c620 2015-04-21        kinaba: 	WORD       CreatorBackTraceIndex;
4e2933c620 2015-04-21        kinaba: 	RTL_CRITICAL_SECTION* CriticalSection;
4e2933c620 2015-04-21        kinaba: 	LIST_ENTRY ProcessLocksList;
4e2933c620 2015-04-21        kinaba: 	DWORD      EntryCount;
4e2933c620 2015-04-21        kinaba: 	DWORD      ContentionCount;
4e2933c620 2015-04-21        kinaba: 	DWORD[2]   Spare;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RTL_CRITICAL_SECTION_DEBUG* PRTL_CRITICAL_SECTION_DEBUG;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct RTL_CRITICAL_SECTION {
4e2933c620 2015-04-21        kinaba: 	PRTL_CRITICAL_SECTION_DEBUG DebugInfo;
4e2933c620 2015-04-21        kinaba: 	LONG   LockCount;
4e2933c620 2015-04-21        kinaba: 	LONG   RecursionCount;
4e2933c620 2015-04-21        kinaba: 	HANDLE OwningThread;
4e2933c620 2015-04-21        kinaba: 	HANDLE LockSemaphore;
4e2933c620 2015-04-21        kinaba: 	DWORD  Reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias RTL_CRITICAL_SECTION* PRTL_CRITICAL_SECTION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct EVENTLOGRECORD {
4e2933c620 2015-04-21        kinaba: 	DWORD Length;
4e2933c620 2015-04-21        kinaba: 	DWORD Reserved;
4e2933c620 2015-04-21        kinaba: 	DWORD RecordNumber;
4e2933c620 2015-04-21        kinaba: 	DWORD TimeGenerated;
4e2933c620 2015-04-21        kinaba: 	DWORD TimeWritten;
4e2933c620 2015-04-21        kinaba: 	DWORD EventID;
4e2933c620 2015-04-21        kinaba: 	WORD  EventType;
4e2933c620 2015-04-21        kinaba: 	WORD  NumStrings;
4e2933c620 2015-04-21        kinaba: 	WORD  EventCategory;
4e2933c620 2015-04-21        kinaba: 	WORD  ReservedFlags;
4e2933c620 2015-04-21        kinaba: 	DWORD ClosingRecordNumber;
4e2933c620 2015-04-21        kinaba: 	DWORD StringOffset;
4e2933c620 2015-04-21        kinaba: 	DWORD UserSidLength;
4e2933c620 2015-04-21        kinaba: 	DWORD UserSidOffset;
4e2933c620 2015-04-21        kinaba: 	DWORD DataLength;
4e2933c620 2015-04-21        kinaba: 	DWORD DataOffset;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias EVENTLOGRECORD* PEVENTLOGRECORD;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct OSVERSIONINFOA {
4e2933c620 2015-04-21        kinaba: 	DWORD     dwOSVersionInfoSize;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwMajorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwMinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwBuildNumber;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwPlatformId;
4e2933c620 2015-04-21        kinaba: 	CHAR[128] szCSDVersion;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias OSVERSIONINFOA* POSVERSIONINFOA, LPOSVERSIONINFOA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct OSVERSIONINFOW {
4e2933c620 2015-04-21        kinaba: 	DWORD      dwOSVersionInfoSize;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwMajorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwMinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwBuildNumber;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwPlatformId;
4e2933c620 2015-04-21        kinaba: 	WCHAR[128] szCSDVersion;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias OSVERSIONINFOW* POSVERSIONINFOW, LPOSVERSIONINFOW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct OSVERSIONINFOEXA {
4e2933c620 2015-04-21        kinaba: 	DWORD     dwOSVersionInfoSize;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwMajorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwMinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwBuildNumber;
4e2933c620 2015-04-21        kinaba: 	DWORD     dwPlatformId;
4e2933c620 2015-04-21        kinaba: 	CHAR[128] szCSDVersion;
4e2933c620 2015-04-21        kinaba: 	WORD      wServicePackMajor;
4e2933c620 2015-04-21        kinaba: 	WORD      wServicePackMinor;
4e2933c620 2015-04-21        kinaba: 	WORD      wSuiteMask;
4e2933c620 2015-04-21        kinaba: 	BYTE      wProductType;
4e2933c620 2015-04-21        kinaba: 	BYTE      wReserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias OSVERSIONINFOEXA* POSVERSIONINFOEXA, LPOSVERSIONINFOEXA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct OSVERSIONINFOEXW {
4e2933c620 2015-04-21        kinaba: 	DWORD      dwOSVersionInfoSize;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwMajorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwMinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwBuildNumber;
4e2933c620 2015-04-21        kinaba: 	DWORD      dwPlatformId;
4e2933c620 2015-04-21        kinaba: 	WCHAR[128] szCSDVersion;
4e2933c620 2015-04-21        kinaba: 	WORD       wServicePackMajor;
4e2933c620 2015-04-21        kinaba: 	WORD       wServicePackMinor;
4e2933c620 2015-04-21        kinaba: 	WORD       wSuiteMask;
4e2933c620 2015-04-21        kinaba: 	BYTE       wProductType;
4e2933c620 2015-04-21        kinaba: 	BYTE       wReserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias OSVERSIONINFOEXW* POSVERSIONINFOEXW, LPOSVERSIONINFOEXW;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(2) struct IMAGE_VXD_HEADER {
4e2933c620 2015-04-21        kinaba: 	WORD     e32_magic;
4e2933c620 2015-04-21        kinaba: 	BYTE     e32_border;
4e2933c620 2015-04-21        kinaba: 	BYTE     e32_worder;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_level;
4e2933c620 2015-04-21        kinaba: 	WORD     e32_cpu;
4e2933c620 2015-04-21        kinaba: 	WORD     e32_os;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_ver;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_mflags;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_mpages;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_startobj;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_eip;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_stackobj;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_esp;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_pagesize;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_lastpagesize;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_fixupsize;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_fixupsum;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_ldrsize;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_ldrsum;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_objtab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_objcnt;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_objmap;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_itermap;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_rsrctab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_rsrccnt;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_restab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_enttab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_dirtab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_dircnt;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_fpagetab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_frectab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_impmod;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_impmodcnt;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_impproc;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_pagesum;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_datapage;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_preload;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_nrestab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_cbnrestab;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_nressum;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_autodata;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_debuginfo;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_debuglen;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_instpreload;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_instdemand;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_heapsize;
4e2933c620 2015-04-21        kinaba: 	BYTE[12] e32_res3;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_winresoff;
4e2933c620 2015-04-21        kinaba: 	DWORD    e32_winreslen;
4e2933c620 2015-04-21        kinaba: 	WORD     e32_devid;
4e2933c620 2015-04-21        kinaba: 	WORD     e32_ddkver;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_VXD_HEADER* PIMAGE_VXD_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(4):
4e2933c620 2015-04-21        kinaba: struct IMAGE_FILE_HEADER {
4e2933c620 2015-04-21        kinaba: 	WORD  Machine;
4e2933c620 2015-04-21        kinaba: 	WORD  NumberOfSections;
4e2933c620 2015-04-21        kinaba: 	DWORD TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	DWORD PointerToSymbolTable;
4e2933c620 2015-04-21        kinaba: 	DWORD NumberOfSymbols;
4e2933c620 2015-04-21        kinaba: 	WORD  SizeOfOptionalHeader;
4e2933c620 2015-04-21        kinaba: 	WORD  Characteristics;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_FILE_HEADER* PIMAGE_FILE_HEADER;
4e2933c620 2015-04-21        kinaba: // const IMAGE_SIZEOF_FILE_HEADER = IMAGE_FILE_HEADER.sizeof;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_DATA_DIRECTORY {
4e2933c620 2015-04-21        kinaba: 	DWORD VirtualAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD Size;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_DATA_DIRECTORY* PIMAGE_DATA_DIRECTORY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_OPTIONAL_HEADER32 {
4e2933c620 2015-04-21        kinaba: 	WORD  Magic;
4e2933c620 2015-04-21        kinaba: 	BYTE  MajorLinkerVersion;
4e2933c620 2015-04-21        kinaba: 	BYTE  MinorLinkerVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfCode;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfInitializedData;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfUninitializedData;
4e2933c620 2015-04-21        kinaba: 	DWORD AddressOfEntryPoint;
4e2933c620 2015-04-21        kinaba: 	DWORD BaseOfCode;
4e2933c620 2015-04-21        kinaba: 	DWORD BaseOfData;
4e2933c620 2015-04-21        kinaba: 	DWORD ImageBase;
4e2933c620 2015-04-21        kinaba: 	DWORD SectionAlignment;
4e2933c620 2015-04-21        kinaba: 	DWORD FileAlignment;
4e2933c620 2015-04-21        kinaba: 	WORD  MajorOperatingSystemVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MinorOperatingSystemVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MajorImageVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MinorImageVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MajorSubsystemVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MinorSubsystemVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD Win32VersionValue;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfImage;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfHeaders;
4e2933c620 2015-04-21        kinaba: 	DWORD CheckSum;
4e2933c620 2015-04-21        kinaba: 	WORD  Subsystem;
4e2933c620 2015-04-21        kinaba: 	WORD  DllCharacteristics;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfStackReserve;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfStackCommit;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfHeapReserve;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfHeapCommit;
4e2933c620 2015-04-21        kinaba: 	DWORD LoaderFlags;
4e2933c620 2015-04-21        kinaba: 	DWORD NumberOfRvaAndSizes;
4e2933c620 2015-04-21        kinaba: 	IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_OPTIONAL_HEADER32* PIMAGE_OPTIONAL_HEADER32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_OPTIONAL_HEADER64 {
4e2933c620 2015-04-21        kinaba: 	WORD      Magic;
4e2933c620 2015-04-21        kinaba: 	BYTE      MajorLinkerVersion;
4e2933c620 2015-04-21        kinaba: 	BYTE      MinorLinkerVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD     SizeOfCode;
4e2933c620 2015-04-21        kinaba: 	DWORD     SizeOfInitializedData;
4e2933c620 2015-04-21        kinaba: 	DWORD     SizeOfUninitializedData;
4e2933c620 2015-04-21        kinaba: 	DWORD     AddressOfEntryPoint;
4e2933c620 2015-04-21        kinaba: 	DWORD     BaseOfCode;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG ImageBase;
4e2933c620 2015-04-21        kinaba: 	DWORD     SectionAlignment;
4e2933c620 2015-04-21        kinaba: 	DWORD     FileAlignment;
4e2933c620 2015-04-21        kinaba: 	WORD      MajorOperatingSystemVersion;
4e2933c620 2015-04-21        kinaba: 	WORD      MinorOperatingSystemVersion;
4e2933c620 2015-04-21        kinaba: 	WORD      MajorImageVersion;
4e2933c620 2015-04-21        kinaba: 	WORD      MinorImageVersion;
4e2933c620 2015-04-21        kinaba: 	WORD      MajorSubsystemVersion;
4e2933c620 2015-04-21        kinaba: 	WORD      MinorSubsystemVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD     Win32VersionValue;
4e2933c620 2015-04-21        kinaba: 	DWORD     SizeOfImage;
4e2933c620 2015-04-21        kinaba: 	DWORD     SizeOfHeaders;
4e2933c620 2015-04-21        kinaba: 	DWORD     CheckSum;
4e2933c620 2015-04-21        kinaba: 	WORD      Subsystem;
4e2933c620 2015-04-21        kinaba: 	WORD      DllCharacteristics;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG SizeOfStackReserve;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG SizeOfStackCommit;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG SizeOfHeapReserve;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG SizeOfHeapCommit;
4e2933c620 2015-04-21        kinaba: 	DWORD     LoaderFlags;
4e2933c620 2015-04-21        kinaba: 	DWORD     NumberOfRvaAndSizes;
4e2933c620 2015-04-21        kinaba: 	IMAGE_DATA_DIRECTORY[IMAGE_NUMBEROF_DIRECTORY_ENTRIES] DataDirectory;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_OPTIONAL_HEADER64* PIMAGE_OPTIONAL_HEADER64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_ROM_OPTIONAL_HEADER {
4e2933c620 2015-04-21        kinaba: 	WORD     Magic;
4e2933c620 2015-04-21        kinaba: 	BYTE     MajorLinkerVersion;
4e2933c620 2015-04-21        kinaba: 	BYTE     MinorLinkerVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD    SizeOfCode;
4e2933c620 2015-04-21        kinaba: 	DWORD    SizeOfInitializedData;
4e2933c620 2015-04-21        kinaba: 	DWORD    SizeOfUninitializedData;
4e2933c620 2015-04-21        kinaba: 	DWORD    AddressOfEntryPoint;
4e2933c620 2015-04-21        kinaba: 	DWORD    BaseOfCode;
4e2933c620 2015-04-21        kinaba: 	DWORD    BaseOfData;
4e2933c620 2015-04-21        kinaba: 	DWORD    BaseOfBss;
4e2933c620 2015-04-21        kinaba: 	DWORD    GprMask;
4e2933c620 2015-04-21        kinaba: 	DWORD[4] CprMask;
4e2933c620 2015-04-21        kinaba: 	DWORD    GpValue;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_ROM_OPTIONAL_HEADER* PIMAGE_ROM_OPTIONAL_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(2):
4e2933c620 2015-04-21        kinaba: struct IMAGE_DOS_HEADER {
4e2933c620 2015-04-21        kinaba: 	WORD     e_magic;
4e2933c620 2015-04-21        kinaba: 	WORD     e_cblp;
4e2933c620 2015-04-21        kinaba: 	WORD     e_cp;
4e2933c620 2015-04-21        kinaba: 	WORD     e_crlc;
4e2933c620 2015-04-21        kinaba: 	WORD     e_cparhdr;
4e2933c620 2015-04-21        kinaba: 	WORD     e_minalloc;
4e2933c620 2015-04-21        kinaba: 	WORD     e_maxalloc;
4e2933c620 2015-04-21        kinaba: 	WORD     e_ss;
4e2933c620 2015-04-21        kinaba: 	WORD     e_sp;
4e2933c620 2015-04-21        kinaba: 	WORD     e_csum;
4e2933c620 2015-04-21        kinaba: 	WORD     e_ip;
4e2933c620 2015-04-21        kinaba: 	WORD     e_cs;
4e2933c620 2015-04-21        kinaba: 	WORD     e_lfarlc;
4e2933c620 2015-04-21        kinaba: 	WORD     e_ovno;
4e2933c620 2015-04-21        kinaba: 	WORD[4] e_res;
4e2933c620 2015-04-21        kinaba: 	WORD     e_oemid;
4e2933c620 2015-04-21        kinaba: 	WORD     e_oeminfo;
4e2933c620 2015-04-21        kinaba: 	WORD[10] e_res2;
4e2933c620 2015-04-21        kinaba: 	LONG     e_lfanew;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_DOS_HEADER* PIMAGE_DOS_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_OS2_HEADER {
4e2933c620 2015-04-21        kinaba: 	WORD ne_magic;
4e2933c620 2015-04-21        kinaba: 	CHAR ne_ver;
4e2933c620 2015-04-21        kinaba: 	CHAR ne_rev;
4e2933c620 2015-04-21        kinaba: 	WORD ne_enttab;
4e2933c620 2015-04-21        kinaba: 	WORD ne_cbenttab;
4e2933c620 2015-04-21        kinaba: 	LONG ne_crc;
4e2933c620 2015-04-21        kinaba: 	WORD ne_flags;
4e2933c620 2015-04-21        kinaba: 	WORD ne_autodata;
4e2933c620 2015-04-21        kinaba: 	WORD ne_heap;
4e2933c620 2015-04-21        kinaba: 	WORD ne_stack;
4e2933c620 2015-04-21        kinaba: 	LONG ne_csip;
4e2933c620 2015-04-21        kinaba: 	LONG ne_sssp;
4e2933c620 2015-04-21        kinaba: 	WORD ne_cseg;
4e2933c620 2015-04-21        kinaba: 	WORD ne_cmod;
4e2933c620 2015-04-21        kinaba: 	WORD ne_cbnrestab;
4e2933c620 2015-04-21        kinaba: 	WORD ne_segtab;
4e2933c620 2015-04-21        kinaba: 	WORD ne_rsrctab;
4e2933c620 2015-04-21        kinaba: 	WORD ne_restab;
4e2933c620 2015-04-21        kinaba: 	WORD ne_modtab;
4e2933c620 2015-04-21        kinaba: 	WORD ne_imptab;
4e2933c620 2015-04-21        kinaba: 	LONG ne_nrestab;
4e2933c620 2015-04-21        kinaba: 	WORD ne_cmovent;
4e2933c620 2015-04-21        kinaba: 	WORD ne_align;
4e2933c620 2015-04-21        kinaba: 	WORD ne_cres;
4e2933c620 2015-04-21        kinaba: 	BYTE ne_exetyp;
4e2933c620 2015-04-21        kinaba: 	BYTE ne_flagsothers;
4e2933c620 2015-04-21        kinaba: 	WORD ne_pretthunks;
4e2933c620 2015-04-21        kinaba: 	WORD ne_psegrefbytes;
4e2933c620 2015-04-21        kinaba: 	WORD ne_swaparea;
4e2933c620 2015-04-21        kinaba: 	WORD ne_expver;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_OS2_HEADER* PIMAGE_OS2_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(4) struct IMAGE_NT_HEADERS32 {
4e2933c620 2015-04-21        kinaba: 	DWORD                 Signature;
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_HEADER     FileHeader;
4e2933c620 2015-04-21        kinaba: 	IMAGE_OPTIONAL_HEADER OptionalHeader;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_NT_HEADERS32* PIMAGE_NT_HEADERS32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(4) struct IMAGE_NT_HEADERS64 {
4e2933c620 2015-04-21        kinaba: 	DWORD                 Signature;
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_HEADER     FileHeader;
4e2933c620 2015-04-21        kinaba: 	IMAGE_OPTIONAL_HEADER OptionalHeader;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_NT_HEADERS64* PIMAGE_NT_HEADERS64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_ROM_HEADERS {
4e2933c620 2015-04-21        kinaba: 	IMAGE_FILE_HEADER         FileHeader;
4e2933c620 2015-04-21        kinaba: 	IMAGE_ROM_OPTIONAL_HEADER OptionalHeader;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_ROM_HEADERS* PIMAGE_ROM_HEADERS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_SECTION_HEADER {
4e2933c620 2015-04-21        kinaba: 	BYTE[IMAGE_SIZEOF_SHORT_NAME] Name;
4e2933c620 2015-04-21        kinaba: 	union _Misc {
4e2933c620 2015-04-21        kinaba: 		DWORD PhysicalAddress;
4e2933c620 2015-04-21        kinaba: 		DWORD VirtualSize;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_Misc Misc;
4e2933c620 2015-04-21        kinaba: 	DWORD VirtualAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfRawData;
4e2933c620 2015-04-21        kinaba: 	DWORD PointerToRawData;
4e2933c620 2015-04-21        kinaba: 	DWORD PointerToRelocations;
4e2933c620 2015-04-21        kinaba: 	DWORD PointerToLinenumbers;
4e2933c620 2015-04-21        kinaba: 	WORD  NumberOfRelocations;
4e2933c620 2015-04-21        kinaba: 	WORD  NumberOfLinenumbers;
4e2933c620 2015-04-21        kinaba: 	DWORD Characteristics;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_SECTION_HEADER* PIMAGE_SECTION_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_SYMBOL {
4e2933c620 2015-04-21        kinaba: 	union _N {
4e2933c620 2015-04-21        kinaba: 		BYTE[8]   ShortName;
4e2933c620 2015-04-21        kinaba: 		struct Name {
4e2933c620 2015-04-21        kinaba: 			DWORD Short;
4e2933c620 2015-04-21        kinaba: 			DWORD Long;
4e2933c620 2015-04-21        kinaba: 		}
4e2933c620 2015-04-21        kinaba: 		PBYTE[2]  LongName;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_N    N;
4e2933c620 2015-04-21        kinaba: 	DWORD Value;
4e2933c620 2015-04-21        kinaba: 	SHORT SectionNumber;
4e2933c620 2015-04-21        kinaba: 	WORD  Type;
4e2933c620 2015-04-21        kinaba: 	BYTE  StorageClass;
4e2933c620 2015-04-21        kinaba: 	BYTE  NumberOfAuxSymbols;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_SYMBOL* PIMAGE_SYMBOL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: union IMAGE_AUX_SYMBOL {
4e2933c620 2015-04-21        kinaba: 	struct _Sym {
4e2933c620 2015-04-21        kinaba: 		DWORD           TagIndex;
4e2933c620 2015-04-21        kinaba: 		union _Misc {
4e2933c620 2015-04-21        kinaba: 			struct _LnSz {
4e2933c620 2015-04-21        kinaba: 				WORD    Linenumber;
4e2933c620 2015-04-21        kinaba: 				WORD    Size;
4e2933c620 2015-04-21        kinaba: 			}
4e2933c620 2015-04-21        kinaba: 			_LnSz       LnSz;
4e2933c620 2015-04-21        kinaba: 			DWORD       TotalSize;
4e2933c620 2015-04-21        kinaba: 		}
4e2933c620 2015-04-21        kinaba: 		_Misc Misc;
4e2933c620 2015-04-21        kinaba: 		union _FcnAry {
4e2933c620 2015-04-21        kinaba: 			struct _Function {
4e2933c620 2015-04-21        kinaba: 				DWORD   PointerToLinenumber;
4e2933c620 2015-04-21        kinaba: 				DWORD   PointerToNextFunction;
4e2933c620 2015-04-21        kinaba: 			}
4e2933c620 2015-04-21        kinaba: 			_Function   Function;
4e2933c620 2015-04-21        kinaba: 			struct _Array {
4e2933c620 2015-04-21        kinaba: 				WORD[4] Dimension;
4e2933c620 2015-04-21        kinaba: 			}
4e2933c620 2015-04-21        kinaba: 			_Array      Array;
4e2933c620 2015-04-21        kinaba: 		}
4e2933c620 2015-04-21        kinaba: 		_FcnAry         FcnAry;
4e2933c620 2015-04-21        kinaba: 		WORD            TvIndex;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_Sym                Sym;
4e2933c620 2015-04-21        kinaba: 	struct _File {
4e2933c620 2015-04-21        kinaba: 		BYTE[IMAGE_SIZEOF_SYMBOL] Name;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_File               File;
4e2933c620 2015-04-21        kinaba: 	struct _Section {
4e2933c620 2015-04-21        kinaba: 		DWORD           Length;
4e2933c620 2015-04-21        kinaba: 		WORD            NumberOfRelocations;
4e2933c620 2015-04-21        kinaba: 		WORD            NumberOfLinenumbers;
4e2933c620 2015-04-21        kinaba: 		DWORD           CheckSum;
4e2933c620 2015-04-21        kinaba: 		SHORT           Number;
4e2933c620 2015-04-21        kinaba: 		BYTE            Selection;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_Section            Section;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_AUX_SYMBOL* PIMAGE_AUX_SYMBOL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_COFF_SYMBOLS_HEADER {
4e2933c620 2015-04-21        kinaba: 	DWORD NumberOfSymbols;
4e2933c620 2015-04-21        kinaba: 	DWORD LvaToFirstSymbol;
4e2933c620 2015-04-21        kinaba: 	DWORD NumberOfLinenumbers;
4e2933c620 2015-04-21        kinaba: 	DWORD LvaToFirstLinenumber;
4e2933c620 2015-04-21        kinaba: 	DWORD RvaToFirstByteOfCode;
4e2933c620 2015-04-21        kinaba: 	DWORD RvaToLastByteOfCode;
4e2933c620 2015-04-21        kinaba: 	DWORD RvaToFirstByteOfData;
4e2933c620 2015-04-21        kinaba: 	DWORD RvaToLastByteOfData;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_COFF_SYMBOLS_HEADER* PIMAGE_COFF_SYMBOLS_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_RELOCATION {
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		DWORD VirtualAddress;
4e2933c620 2015-04-21        kinaba: 		DWORD RelocCount;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	DWORD     SymbolTableIndex;
4e2933c620 2015-04-21        kinaba: 	WORD      Type;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_RELOCATION* PIMAGE_RELOCATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(4) struct IMAGE_BASE_RELOCATION {
4e2933c620 2015-04-21        kinaba: 	DWORD VirtualAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfBlock;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_BASE_RELOCATION* PIMAGE_BASE_RELOCATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(2) struct IMAGE_LINENUMBER {
4e2933c620 2015-04-21        kinaba: 	union _Type {
4e2933c620 2015-04-21        kinaba: 		DWORD SymbolTableIndex;
4e2933c620 2015-04-21        kinaba: 		DWORD VirtualAddress;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_Type Type;
4e2933c620 2015-04-21        kinaba: 	WORD  Linenumber;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_LINENUMBER* PIMAGE_LINENUMBER;
c2b7a98c21 2011-02-23        kinaba: 
c2b7a98c21 2011-02-23        kinaba: align(4):
4e2933c620 2015-04-21        kinaba: struct IMAGE_ARCHIVE_MEMBER_HEADER {
4e2933c620 2015-04-21        kinaba: 	BYTE[16] Name;
4e2933c620 2015-04-21        kinaba: 	BYTE[12] Date;
4e2933c620 2015-04-21        kinaba: 	BYTE[6]  UserID;
4e2933c620 2015-04-21        kinaba: 	BYTE[6]  GroupID;
4e2933c620 2015-04-21        kinaba: 	BYTE[8]  Mode;
4e2933c620 2015-04-21        kinaba: 	BYTE[10] Size;
4e2933c620 2015-04-21        kinaba: 	BYTE[2]  EndHeader;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_ARCHIVE_MEMBER_HEADER* PIMAGE_ARCHIVE_MEMBER_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_EXPORT_DIRECTORY {
4e2933c620 2015-04-21        kinaba: 	DWORD Characteristics;
4e2933c620 2015-04-21        kinaba: 	DWORD TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	WORD  MajorVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD Name;
4e2933c620 2015-04-21        kinaba: 	DWORD Base;
4e2933c620 2015-04-21        kinaba: 	DWORD NumberOfFunctions;
4e2933c620 2015-04-21        kinaba: 	DWORD NumberOfNames;
4e2933c620 2015-04-21        kinaba: 	DWORD AddressOfFunctions;
4e2933c620 2015-04-21        kinaba: 	DWORD AddressOfNames;
4e2933c620 2015-04-21        kinaba: 	DWORD AddressOfNameOrdinals;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_EXPORT_DIRECTORY* PIMAGE_EXPORT_DIRECTORY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_IMPORT_BY_NAME {
4e2933c620 2015-04-21        kinaba: 	WORD Hint;
4e2933c620 2015-04-21        kinaba: 	BYTE _Name;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	BYTE* Name() {
4e2933c620 2015-04-21        kinaba: 		return &_Name;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_IMPORT_BY_NAME* PIMAGE_IMPORT_BY_NAME;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_THUNK_DATA32 {
4e2933c620 2015-04-21        kinaba: 	union _u1 {
4e2933c620 2015-04-21        kinaba: 		DWORD ForwarderString;
4e2933c620 2015-04-21        kinaba: 		DWORD Function;
4e2933c620 2015-04-21        kinaba: 		DWORD Ordinal;
4e2933c620 2015-04-21        kinaba: 		DWORD AddressOfData;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_u1 u1;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_THUNK_DATA32* PIMAGE_THUNK_DATA32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_THUNK_DATA64 {
4e2933c620 2015-04-21        kinaba: 	union _u1 {
4e2933c620 2015-04-21        kinaba: 		ULONGLONG ForwarderString;
4e2933c620 2015-04-21        kinaba: 		ULONGLONG Function;
4e2933c620 2015-04-21        kinaba: 		ULONGLONG Ordinal;
4e2933c620 2015-04-21        kinaba: 		ULONGLONG AddressOfData;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_u1 u1;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_THUNK_DATA64* PIMAGE_THUNK_DATA64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_IMPORT_DESCRIPTOR {
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		DWORD Characteristics;
4e2933c620 2015-04-21        kinaba: 		DWORD OriginalFirstThunk;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	DWORD TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	DWORD ForwarderChain;
4e2933c620 2015-04-21        kinaba: 	DWORD Name;
4e2933c620 2015-04-21        kinaba: 	DWORD FirstThunk;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_IMPORT_DESCRIPTOR* PIMAGE_IMPORT_DESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_BOUND_IMPORT_DESCRIPTOR {
4e2933c620 2015-04-21        kinaba: 	DWORD TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	WORD  OffsetModuleName;
4e2933c620 2015-04-21        kinaba: 	WORD  NumberOfModuleForwarderRefs;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_BOUND_IMPORT_DESCRIPTOR* PIMAGE_BOUND_IMPORT_DESCRIPTOR;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_BOUND_FORWARDER_REF {
4e2933c620 2015-04-21        kinaba: 	DWORD TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	WORD  OffsetModuleName;
4e2933c620 2015-04-21        kinaba: 	WORD  Reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_BOUND_FORWARDER_REF* PIMAGE_BOUND_FORWARDER_REF;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_TLS_DIRECTORY32 {
4e2933c620 2015-04-21        kinaba: 	DWORD StartAddressOfRawData;
4e2933c620 2015-04-21        kinaba: 	DWORD EndAddressOfRawData;
4e2933c620 2015-04-21        kinaba: 	DWORD AddressOfIndex;
4e2933c620 2015-04-21        kinaba: 	DWORD AddressOfCallBacks;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfZeroFill;
4e2933c620 2015-04-21        kinaba: 	DWORD Characteristics;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_TLS_DIRECTORY32* PIMAGE_TLS_DIRECTORY32;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_TLS_DIRECTORY64 {
4e2933c620 2015-04-21        kinaba: 	ULONGLONG StartAddressOfRawData;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG EndAddressOfRawData;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG AddressOfIndex;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG AddressOfCallBacks;
4e2933c620 2015-04-21        kinaba: 	DWORD     SizeOfZeroFill;
4e2933c620 2015-04-21        kinaba: 	DWORD     Characteristics;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_TLS_DIRECTORY64* PIMAGE_TLS_DIRECTORY64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_RESOURCE_DIRECTORY {
4e2933c620 2015-04-21        kinaba: 	DWORD Characteristics;
4e2933c620 2015-04-21        kinaba: 	DWORD TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	WORD  MajorVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MinorVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  NumberOfNamedEntries;
4e2933c620 2015-04-21        kinaba: 	WORD  NumberOfIdEntries;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_RESOURCE_DIRECTORY* PIMAGE_RESOURCE_DIRECTORY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_RESOURCE_DIRECTORY_ENTRY {
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		/+struct {
4e2933c620 2015-04-21        kinaba: 			DWORD NameOffset:31;
4e2933c620 2015-04-21        kinaba: 			DWORD NameIsString:1;
4e2933c620 2015-04-21        kinaba: 		}+/
4e2933c620 2015-04-21        kinaba: 		DWORD Name;
4e2933c620 2015-04-21        kinaba: 		WORD Id;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	DWORD OffsetToData;
4e2933c620 2015-04-21        kinaba: 		/+struct {
4e2933c620 2015-04-21        kinaba: 			DWORD OffsetToDirectory:31;
4e2933c620 2015-04-21        kinaba: 			DWORD DataIsDirectory:1;
4e2933c620 2015-04-21        kinaba: 		}+/
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	uint NameOffset()        { return Name & 0x7FFFFFFF; }
4e2933c620 2015-04-21        kinaba: 	bool NameIsString()      { return cast(bool)(Name & 0x80000000); }
4e2933c620 2015-04-21        kinaba: 	uint OffsetToDirectory() { return OffsetToData & 0x7FFFFFFF; }
4e2933c620 2015-04-21        kinaba: 	bool DataIsDirectory()   { return cast(bool)(OffsetToData & 0x80000000); }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	uint NameOffset(uint n) {
4e2933c620 2015-04-21        kinaba: 		Name = (Name & 0x80000000) | (n & 0x7FFFFFFF);
4e2933c620 2015-04-21        kinaba: 		return n & 0x7FFFFFFF;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	bool NameIsString(bool n) {
4e2933c620 2015-04-21        kinaba: 		Name = (Name & 0x7FFFFFFF) | (n << 31); return n;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	uint OffsetToDirectory(uint o) {
4e2933c620 2015-04-21        kinaba: 		OffsetToData = (OffsetToData & 0x80000000) | (o & 0x7FFFFFFF);
4e2933c620 2015-04-21        kinaba: 		return o & 0x7FFFFFFF;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	bool DataIsDirectory(bool d) {
4e2933c620 2015-04-21        kinaba: 		OffsetToData = (OffsetToData & 0x7FFFFFFF) | (d << 31); return d;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_RESOURCE_DIRECTORY_ENTRY* PIMAGE_RESOURCE_DIRECTORY_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_RESOURCE_DIRECTORY_STRING {
4e2933c620 2015-04-21        kinaba: 	WORD Length;
4e2933c620 2015-04-21        kinaba: 	CHAR _NameString;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	CHAR* NameString() { return &_NameString; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_RESOURCE_DIRECTORY_STRING* PIMAGE_RESOURCE_DIRECTORY_STRING;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_RESOURCE_DIR_STRING_U {
4e2933c620 2015-04-21        kinaba: 	WORD  Length;
4e2933c620 2015-04-21        kinaba: 	WCHAR _NameString;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	WCHAR* NameString() { return &_NameString; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_RESOURCE_DIR_STRING_U* PIMAGE_RESOURCE_DIR_STRING_U;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_RESOURCE_DATA_ENTRY {
4e2933c620 2015-04-21        kinaba: 	DWORD OffsetToData;
4e2933c620 2015-04-21        kinaba: 	DWORD Size;
4e2933c620 2015-04-21        kinaba: 	DWORD CodePage;
4e2933c620 2015-04-21        kinaba: 	DWORD Reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_RESOURCE_DATA_ENTRY* PIMAGE_RESOURCE_DATA_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_LOAD_CONFIG_DIRECTORY {
4e2933c620 2015-04-21        kinaba: 	DWORD    Characteristics;
4e2933c620 2015-04-21        kinaba: 	DWORD    TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	WORD     MajorVersion;
4e2933c620 2015-04-21        kinaba: 	WORD     MinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD    GlobalFlagsClear;
4e2933c620 2015-04-21        kinaba: 	DWORD    GlobalFlagsSet;
4e2933c620 2015-04-21        kinaba: 	DWORD    CriticalSectionDefaultTimeout;
4e2933c620 2015-04-21        kinaba: 	DWORD    DeCommitFreeBlockThreshold;
4e2933c620 2015-04-21        kinaba: 	DWORD    DeCommitTotalFreeThreshold;
4e2933c620 2015-04-21        kinaba: 	PVOID    LockPrefixTable;
4e2933c620 2015-04-21        kinaba: 	DWORD    MaximumAllocationSize;
4e2933c620 2015-04-21        kinaba: 	DWORD    VirtualMemoryThreshold;
4e2933c620 2015-04-21        kinaba: 	DWORD    ProcessHeapFlags;
4e2933c620 2015-04-21        kinaba: 	DWORD[4] Reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_LOAD_CONFIG_DIRECTORY* PIMAGE_LOAD_CONFIG_DIRECTORY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_LOAD_CONFIG_DIRECTORY64 {
4e2933c620 2015-04-21        kinaba: 	DWORD     Characteristics;
4e2933c620 2015-04-21        kinaba: 	DWORD     TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	WORD      MajorVersion;
4e2933c620 2015-04-21        kinaba: 	WORD      MinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD     GlobalFlagsClear;
4e2933c620 2015-04-21        kinaba: 	DWORD     GlobalFlagsSet;
4e2933c620 2015-04-21        kinaba: 	DWORD     CriticalSectionDefaultTimeout;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG DeCommitFreeBlockThreshold;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG DeCommitTotalFreeThreshold;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG LockPrefixTable;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG MaximumAllocationSize;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG VirtualMemoryThreshold;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG ProcessAffinityMask;
4e2933c620 2015-04-21        kinaba: 	DWORD     ProcessHeapFlags;
4e2933c620 2015-04-21        kinaba: 	WORD      CSDFlags;
4e2933c620 2015-04-21        kinaba: 	WORD      Reserved1;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG EditList;
4e2933c620 2015-04-21        kinaba: 	DWORD[2]  Reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_LOAD_CONFIG_DIRECTORY64* PIMAGE_LOAD_CONFIG_DIRECTORY64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_RUNTIME_FUNCTION_ENTRY {
4e2933c620 2015-04-21        kinaba: 	DWORD BeginAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD EndAddress;
4e2933c620 2015-04-21        kinaba: 	PVOID ExceptionHandler;
4e2933c620 2015-04-21        kinaba: 	PVOID HandlerData;
4e2933c620 2015-04-21        kinaba: 	DWORD PrologEndAddress;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_RUNTIME_FUNCTION_ENTRY* PIMAGE_RUNTIME_FUNCTION_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_CE_RUNTIME_FUNCTION_ENTRY {
4e2933c620 2015-04-21        kinaba: 	uint      FuncStart;
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		ubyte PrologLen;
4e2933c620 2015-04-21        kinaba: 		uint  _bf;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: 	unsigned int FuncLen:22;
4e2933c620 2015-04-21        kinaba: 	unsigned int ThirtyTwoBit:1;
4e2933c620 2015-04-21        kinaba: 	unsigned int ExceptionFlag:1;
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: 	uint FuncLen()       { return (_bf >> 8) & 0x3FFFFF; }
4e2933c620 2015-04-21        kinaba: 	bool ThirtyTwoBit()  { return cast(bool)(_bf & 0x40000000); }
4e2933c620 2015-04-21        kinaba: 	bool ExceptionFlag() { return cast(bool)(_bf & 0x80000000); }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	uint FuncLen(uint f) {
4e2933c620 2015-04-21        kinaba: 		_bf = (_bf & ~0x3FFFFF00) | ((f & 0x3FFFFF) << 8); return f & 0x3FFFFF;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	bool ThirtyTwoBit(bool t) {
4e2933c620 2015-04-21        kinaba: 		_bf = (_bf & ~0x40000000) | (t << 30); return t;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	bool ExceptionFlag(bool e) {
4e2933c620 2015-04-21        kinaba: 		_bf = (_bf & ~0x80000000) | (e << 31); return e;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_CE_RUNTIME_FUNCTION_ENTRY* PIMAGE_CE_RUNTIME_FUNCTION_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_DEBUG_DIRECTORY {
4e2933c620 2015-04-21        kinaba: 	DWORD Characteristics;
4e2933c620 2015-04-21        kinaba: 	DWORD TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	WORD  MajorVersion;
4e2933c620 2015-04-21        kinaba: 	WORD  MinorVersion;
4e2933c620 2015-04-21        kinaba: 	DWORD Type;
4e2933c620 2015-04-21        kinaba: 	DWORD SizeOfData;
4e2933c620 2015-04-21        kinaba: 	DWORD AddressOfRawData;
4e2933c620 2015-04-21        kinaba: 	DWORD PointerToRawData;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_DEBUG_DIRECTORY* PIMAGE_DEBUG_DIRECTORY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct FPO_DATA {
4e2933c620 2015-04-21        kinaba: 	DWORD  ulOffStart;
4e2933c620 2015-04-21        kinaba: 	DWORD  cbProcSize;
4e2933c620 2015-04-21        kinaba: 	DWORD  cdwLocals;
4e2933c620 2015-04-21        kinaba: 	WORD   cdwParams;
4e2933c620 2015-04-21        kinaba: 	ubyte  cbProlog;
4e2933c620 2015-04-21        kinaba: 	ubyte  _bf;
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: 	WORD cbRegs:3;
4e2933c620 2015-04-21        kinaba: 	WORD fHasSEH:1;
4e2933c620 2015-04-21        kinaba: 	WORD fUseBP:1;
4e2933c620 2015-04-21        kinaba: 	WORD reserved:1;
4e2933c620 2015-04-21        kinaba: 	WORD cbFrame:2;
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: 	ubyte cbRegs()  { return cast(ubyte)(_bf & 0x07); }
4e2933c620 2015-04-21        kinaba: 	bool fHasSEH()  { return cast(bool)(_bf & 0x08); }
4e2933c620 2015-04-21        kinaba: 	bool fUseBP()   { return cast(bool)(_bf & 0x10); }
4e2933c620 2015-04-21        kinaba: 	bool reserved() { return cast(bool)(_bf & 0x20); }
4e2933c620 2015-04-21        kinaba: 	ubyte cbFrame() { return cast(ubyte)(_bf >> 6); }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	ubyte cbRegs(ubyte c) {
4e2933c620 2015-04-21        kinaba: 		_bf = cast(ubyte) ((_bf & ~0x07) | (c & 0x07));
4e2933c620 2015-04-21        kinaba: 		return cast(ubyte)(c & 0x07);
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	bool fHasSEH(bool f)  { _bf = cast(ubyte)((_bf & ~0x08) | (f << 3)); return f; }
4e2933c620 2015-04-21        kinaba: 	bool fUseBP(bool f)   { _bf = cast(ubyte)((_bf & ~0x10) | (f << 4)); return f; }
4e2933c620 2015-04-21        kinaba: 	bool reserved(bool r) { _bf = cast(ubyte)((_bf & ~0x20) | (r << 5)); return r; }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	ubyte cbFrame(ubyte c) {
4e2933c620 2015-04-21        kinaba: 		_bf = cast(ubyte) ((_bf & ~0xC0) | ((c & 0x03) << 6));
4e2933c620 2015-04-21        kinaba: 		return cast(ubyte)(c & 0x03);
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FPO_DATA* PFPO_DATA;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_DEBUG_MISC {
4e2933c620 2015-04-21        kinaba: 	DWORD   DataType;
4e2933c620 2015-04-21        kinaba: 	DWORD   Length;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN Unicode;
4e2933c620 2015-04-21        kinaba: 	BYTE[3] Reserved;
4e2933c620 2015-04-21        kinaba: 	BYTE    _Data;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	BYTE*   Data() { return &_Data; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_DEBUG_MISC* PIMAGE_DEBUG_MISC;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_FUNCTION_ENTRY {
4e2933c620 2015-04-21        kinaba: 	DWORD StartingAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD EndingAddress;
4e2933c620 2015-04-21        kinaba: 	DWORD EndOfPrologue;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_FUNCTION_ENTRY* PIMAGE_FUNCTION_ENTRY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_FUNCTION_ENTRY64 {
4e2933c620 2015-04-21        kinaba: 	ULONGLONG     StartingAddress;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG     EndingAddress;
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		ULONGLONG EndOfPrologue;
4e2933c620 2015-04-21        kinaba: 		ULONGLONG UnwindInfoAddress;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_FUNCTION_ENTRY64* PIMAGE_FUNCTION_ENTRY64;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct IMAGE_SEPARATE_DEBUG_HEADER {
4e2933c620 2015-04-21        kinaba: 	WORD     Signature;
4e2933c620 2015-04-21        kinaba: 	WORD     Flags;
4e2933c620 2015-04-21        kinaba: 	WORD     Machine;
4e2933c620 2015-04-21        kinaba: 	WORD     Characteristics;
4e2933c620 2015-04-21        kinaba: 	DWORD    TimeDateStamp;
4e2933c620 2015-04-21        kinaba: 	DWORD    CheckSum;
4e2933c620 2015-04-21        kinaba: 	DWORD    ImageBase;
4e2933c620 2015-04-21        kinaba: 	DWORD    SizeOfImage;
4e2933c620 2015-04-21        kinaba: 	DWORD    NumberOfSections;
4e2933c620 2015-04-21        kinaba: 	DWORD    ExportedNamesSize;
4e2933c620 2015-04-21        kinaba: 	DWORD    DebugDirectorySize;
4e2933c620 2015-04-21        kinaba: 	DWORD    SectionAlignment;
4e2933c620 2015-04-21        kinaba: 	DWORD[2] Reserved;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias IMAGE_SEPARATE_DEBUG_HEADER* PIMAGE_SEPARATE_DEBUG_HEADER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SERVICE_NODE_TYPE {
4e2933c620 2015-04-21        kinaba: 	DriverType               = SERVICE_KERNEL_DRIVER,
4e2933c620 2015-04-21        kinaba: 	FileSystemType           = SERVICE_FILE_SYSTEM_DRIVER,
4e2933c620 2015-04-21        kinaba: 	Win32ServiceOwnProcess   = SERVICE_WIN32_OWN_PROCESS,
4e2933c620 2015-04-21        kinaba: 	Win32ServiceShareProcess = SERVICE_WIN32_SHARE_PROCESS,
4e2933c620 2015-04-21        kinaba: 	AdapterType              = SERVICE_ADAPTER,
4e2933c620 2015-04-21        kinaba: 	RecognizerType           = SERVICE_RECOGNIZER_DRIVER
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SERVICE_LOAD_TYPE {
4e2933c620 2015-04-21        kinaba: 	BootLoad    = SERVICE_BOOT_START,
4e2933c620 2015-04-21        kinaba: 	SystemLoad  = SERVICE_SYSTEM_START,
4e2933c620 2015-04-21        kinaba: 	AutoLoad    = SERVICE_AUTO_START,
4e2933c620 2015-04-21        kinaba: 	DemandLoad  = SERVICE_DEMAND_START,
4e2933c620 2015-04-21        kinaba: 	DisableLoad = SERVICE_DISABLED
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SERVICE_ERROR_TYPE {
4e2933c620 2015-04-21        kinaba: 	IgnoreError   = SERVICE_ERROR_IGNORE,
4e2933c620 2015-04-21        kinaba: 	NormalError   = SERVICE_ERROR_NORMAL,
4e2933c620 2015-04-21        kinaba: 	SevereError   = SERVICE_ERROR_SEVERE,
4e2933c620 2015-04-21        kinaba: 	CriticalError = SERVICE_ERROR_CRITICAL
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SERVICE_ERROR_TYPE _CM_ERROR_CONTROL_TYPE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: //DAC: According to MSJ, 'UnderTheHood', May 1996, this
4e2933c620 2015-04-21        kinaba: // structure is not documented in any official Microsoft header file.
4e2933c620 2015-04-21        kinaba: alias void EXCEPTION_REGISTRATION_RECORD;
4e2933c620 2015-04-21        kinaba: 
c2b7a98c21 2011-02-23        kinaba: align:
4e2933c620 2015-04-21        kinaba: struct NT_TIB {
4e2933c620 2015-04-21        kinaba: 	EXCEPTION_REGISTRATION_RECORD *ExceptionList;
4e2933c620 2015-04-21        kinaba: 	PVOID StackBase;
4e2933c620 2015-04-21        kinaba: 	PVOID StackLimit;
4e2933c620 2015-04-21        kinaba: 	PVOID SubSystemTib;
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		PVOID FiberData;
4e2933c620 2015-04-21        kinaba: 		DWORD Version;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	PVOID ArbitraryUserPointer;
4e2933c620 2015-04-21        kinaba: 	NT_TIB *Self;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias NT_TIB* PNT_TIB;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct REPARSE_DATA_BUFFER {
4e2933c620 2015-04-21        kinaba: 	DWORD  ReparseTag;
4e2933c620 2015-04-21        kinaba: 	WORD   ReparseDataLength;
4e2933c620 2015-04-21        kinaba: 	WORD   Reserved;
4e2933c620 2015-04-21        kinaba: 	union {
4e2933c620 2015-04-21        kinaba: 		struct _GenericReparseBuffer {
4e2933c620 2015-04-21        kinaba: 			BYTE  _DataBuffer;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 			BYTE* DataBuffer() { return &_DataBuffer; }
4e2933c620 2015-04-21        kinaba: 		}
4e2933c620 2015-04-21        kinaba: 		_GenericReparseBuffer GenericReparseBuffer;
4e2933c620 2015-04-21        kinaba: 		struct _SymbolicLinkReparseBuffer {
4e2933c620 2015-04-21        kinaba: 			WORD  SubstituteNameOffset;
4e2933c620 2015-04-21        kinaba: 			WORD  SubstituteNameLength;
4e2933c620 2015-04-21        kinaba: 			WORD  PrintNameOffset;
4e2933c620 2015-04-21        kinaba: 			WORD  PrintNameLength;
4e2933c620 2015-04-21        kinaba: 			// ??? This is in MinGW, but absent in MSDN docs
4e2933c620 2015-04-21        kinaba: 			ULONG Flags;
4e2933c620 2015-04-21        kinaba: 			WCHAR _PathBuffer;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 			WCHAR* PathBuffer() { return &_PathBuffer; }
4e2933c620 2015-04-21        kinaba: 		}
4e2933c620 2015-04-21        kinaba: 		_SymbolicLinkReparseBuffer SymbolicLinkReparseBuffer;
4e2933c620 2015-04-21        kinaba: 		struct _MountPointReparseBuffer {
4e2933c620 2015-04-21        kinaba: 			WORD  SubstituteNameOffset;
4e2933c620 2015-04-21        kinaba: 			WORD  SubstituteNameLength;
4e2933c620 2015-04-21        kinaba: 			WORD  PrintNameOffset;
4e2933c620 2015-04-21        kinaba: 			WORD  PrintNameLength;
4e2933c620 2015-04-21        kinaba: 			WCHAR _PathBuffer;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 			WCHAR* PathBuffer() { return &_PathBuffer; }
4e2933c620 2015-04-21        kinaba: 		}
4e2933c620 2015-04-21        kinaba: 		_MountPointReparseBuffer MountPointReparseBuffer;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias REPARSE_DATA_BUFFER *PREPARSE_DATA_BUFFER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct REPARSE_GUID_DATA_BUFFER {
4e2933c620 2015-04-21        kinaba: 	DWORD    ReparseTag;
4e2933c620 2015-04-21        kinaba: 	WORD     ReparseDataLength;
4e2933c620 2015-04-21        kinaba: 	WORD     Reserved;
4e2933c620 2015-04-21        kinaba: 	GUID     ReparseGuid;
4e2933c620 2015-04-21        kinaba: 	struct _GenericReparseBuffer {
4e2933c620 2015-04-21        kinaba: 		BYTE _DataBuffer;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 		BYTE* DataBuffer() { return &_DataBuffer; }
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	_GenericReparseBuffer GenericReparseBuffer;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias REPARSE_GUID_DATA_BUFFER* PREPARSE_GUID_DATA_BUFFER;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t
4e2933c620 2015-04-21        kinaba: 	REPARSE_DATA_BUFFER_HEADER_SIZE = REPARSE_DATA_BUFFER.GenericReparseBuffer.offsetof,
4e2933c620 2015-04-21        kinaba: 	REPARSE_GUID_DATA_BUFFER_HEADER_SIZE = REPARSE_GUID_DATA_BUFFER.GenericReparseBuffer.offsetof,
4e2933c620 2015-04-21        kinaba: 	MAXIMUM_REPARSE_DATA_BUFFER_SIZE = 16384;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct REPARSE_POINT_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	WORD ReparseDataLength;
4e2933c620 2015-04-21        kinaba: 	WORD UnparsedNameLength;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias REPARSE_POINT_INFORMATION* PREPARSE_POINT_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: union FILE_SEGMENT_ELEMENT {
4e2933c620 2015-04-21        kinaba: 	PVOID64   Buffer;
4e2933c620 2015-04-21        kinaba: 	ULONGLONG Alignment;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias FILE_SEGMENT_ELEMENT* PFILE_SEGMENT_ELEMENT;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // JOBOBJECT_BASIC_LIMIT_INFORMATION.LimitFlags constants
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_WORKINGSET                 = 0x0001,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_PROCESS_TIME               = 0x0002,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_JOB_TIME                   = 0x0004,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_ACTIVE_PROCESS             = 0x0008,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_AFFINITY                   = 0x0010,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_PRIORITY_CLASS             = 0x0020,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME          = 0x0040,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_SCHEDULING_CLASS           = 0x0080,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_PROCESS_MEMORY             = 0x0100,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_JOB_MEMORY                 = 0x0200,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION = 0x0400,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_BREAKAWAY_OK                     = 0x0800,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_SILENT_BREAKAWAY                 = 0x1000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // JOBOBJECT_BASIC_UI_RESTRICTIONS.UIRestrictionsClass constants
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_HANDLES          = 0x0001,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_READCLIPBOARD    = 0x0002,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_WRITECLIPBOARD   = 0x0004,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS = 0x0008,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_DISPLAYSETTINGS  = 0x0010,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_GLOBALATOMS      = 0x0020,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_DESKTOP          = 0x0040,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_UILIMIT_EXITWINDOWS      = 0x0080;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // JOBOBJECT_SECURITY_LIMIT_INFORMATION.SecurityLimitFlags constants
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_SECURITY_NO_ADMIN         = 0x0001,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_SECURITY_RESTRICTED_TOKEN = 0x0002,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_SECURITY_ONLY_TOKEN       = 0x0004,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_SECURITY_FILTER_TOKENS    = 0x0008;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // JOBOBJECT_END_OF_JOB_TIME_INFORMATION.EndOfJobTimeAction constants
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_TERMINATE_AT_END_OF_JOB,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_POST_AT_END_OF_JOB
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : DWORD {
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_END_OF_JOB_TIME = 1,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_END_OF_PROCESS_TIME,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_NEW_PROCESS,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_EXIT_PROCESS,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT,
4e2933c620 2015-04-21        kinaba: 	JOB_OBJECT_MSG_JOB_MEMORY_LIMIT
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum JOBOBJECTINFOCLASS {
4e2933c620 2015-04-21        kinaba: 	JobObjectBasicAccountingInformation = 1,
4e2933c620 2015-04-21        kinaba: 	JobObjectBasicLimitInformation,
4e2933c620 2015-04-21        kinaba: 	JobObjectBasicProcessIdList,
4e2933c620 2015-04-21        kinaba: 	JobObjectBasicUIRestrictions,
4e2933c620 2015-04-21        kinaba: 	JobObjectSecurityLimitInformation,
4e2933c620 2015-04-21        kinaba: 	JobObjectEndOfJobTimeInformation,
4e2933c620 2015-04-21        kinaba: 	JobObjectAssociateCompletionPortInformation,
4e2933c620 2015-04-21        kinaba: 	JobObjectBasicAndIoAccountingInformation,
4e2933c620 2015-04-21        kinaba: 	JobObjectExtendedLimitInformation,
4e2933c620 2015-04-21        kinaba: 	JobObjectJobSetInformation,
4e2933c620 2015-04-21        kinaba: 	MaxJobObjectInfoClass
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_BASIC_ACCOUNTING_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER TotalUserTime;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER TotalKernelTime;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER ThisPeriodTotalUserTime;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER ThisPeriodTotalKernelTime;
4e2933c620 2015-04-21        kinaba: 	DWORD         TotalPageFaultCount;
4e2933c620 2015-04-21        kinaba: 	DWORD         TotalProcesses;
4e2933c620 2015-04-21        kinaba: 	DWORD         ActiveProcesses;
4e2933c620 2015-04-21        kinaba: 	DWORD         TotalTerminatedProcesses;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_BASIC_ACCOUNTING_INFORMATION* PJOBOBJECT_BASIC_ACCOUNTING_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_BASIC_LIMIT_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER PerProcessUserTimeLimit;
4e2933c620 2015-04-21        kinaba: 	LARGE_INTEGER PerJobUserTimeLimit;
4e2933c620 2015-04-21        kinaba: 	DWORD         LimitFlags;
4e2933c620 2015-04-21        kinaba: 	SIZE_T        MinimumWorkingSetSize;
4e2933c620 2015-04-21        kinaba: 	SIZE_T        MaximumWorkingSetSize;
4e2933c620 2015-04-21        kinaba: 	DWORD         ActiveProcessLimit;
4e2933c620 2015-04-21        kinaba: 	ULONG_PTR     Affinity;
4e2933c620 2015-04-21        kinaba: 	DWORD         PriorityClass;
4e2933c620 2015-04-21        kinaba: 	DWORD         SchedulingClass;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_BASIC_LIMIT_INFORMATION* PJOBOBJECT_BASIC_LIMIT_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_BASIC_PROCESS_ID_LIST {
4e2933c620 2015-04-21        kinaba: 	DWORD     NumberOfAssignedProcesses;
4e2933c620 2015-04-21        kinaba: 	DWORD     NumberOfProcessIdsInList;
4e2933c620 2015-04-21        kinaba: 	ULONG_PTR _ProcessIdList;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	ULONG_PTR* ProcessIdList() { return &_ProcessIdList; }
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_BASIC_PROCESS_ID_LIST* PJOBOBJECT_BASIC_PROCESS_ID_LIST;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_BASIC_UI_RESTRICTIONS {
4e2933c620 2015-04-21        kinaba: 	DWORD UIRestrictionsClass;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_BASIC_UI_RESTRICTIONS* PJOBOBJECT_BASIC_UI_RESTRICTIONS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_SECURITY_LIMIT_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD             SecurityLimitFlags;
4e2933c620 2015-04-21        kinaba: 	HANDLE            JobToken;
4e2933c620 2015-04-21        kinaba: 	PTOKEN_GROUPS     SidsToDisable;
4e2933c620 2015-04-21        kinaba: 	PTOKEN_PRIVILEGES PrivilegesToDelete;
4e2933c620 2015-04-21        kinaba: 	PTOKEN_GROUPS     RestrictedSids;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_SECURITY_LIMIT_INFORMATION* PJOBOBJECT_SECURITY_LIMIT_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_END_OF_JOB_TIME_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD EndOfJobTimeAction;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_END_OF_JOB_TIME_INFORMATION* PJOBOBJECT_END_OF_JOB_TIME_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_ASSOCIATE_COMPLETION_PORT {
4e2933c620 2015-04-21        kinaba: 	PVOID  CompletionKey;
4e2933c620 2015-04-21        kinaba: 	HANDLE CompletionPort;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_ASSOCIATE_COMPLETION_PORT* PJOBOBJECT_ASSOCIATE_COMPLETION_PORT;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	JOBOBJECT_BASIC_ACCOUNTING_INFORMATION BasicInfo;
4e2933c620 2015-04-21        kinaba: 	IO_COUNTERS IoInfo;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION *PJOBOBJECT_BASIC_AND_IO_ACCOUNTING_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_EXTENDED_LIMIT_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	JOBOBJECT_BASIC_LIMIT_INFORMATION BasicLimitInformation;
4e2933c620 2015-04-21        kinaba: 	IO_COUNTERS IoInfo;
4e2933c620 2015-04-21        kinaba: 	SIZE_T      ProcessMemoryLimit;
4e2933c620 2015-04-21        kinaba: 	SIZE_T      JobMemoryLimit;
4e2933c620 2015-04-21        kinaba: 	SIZE_T      PeakProcessMemoryUsed;
4e2933c620 2015-04-21        kinaba: 	SIZE_T      PeakJobMemoryUsed;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct JOBOBJECT_JOBSET_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	DWORD MemberLevel;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: // MinGW: Making these defines conditional on _WIN32_WINNT will break ddk includes
9b639cf2d6 2015-05-05        kinaba: //static if (_WIN32_WINNT >= 0x500) {
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	ES_SYSTEM_REQUIRED  = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	ES_DISPLAY_REQUIRED = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	ES_USER_PRESENT     = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	ES_CONTINUOUS       = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum LATENCY_TIME {
4e2933c620 2015-04-21        kinaba: 	LT_DONT_CARE,
4e2933c620 2015-04-21        kinaba: 	LT_LOWEST_LATENCY
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias LATENCY_TIME* PLATENCY_TIME;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SYSTEM_POWER_STATE {
4e2933c620 2015-04-21        kinaba: 	PowerSystemUnspecified,
4e2933c620 2015-04-21        kinaba: 	PowerSystemWorking,
4e2933c620 2015-04-21        kinaba: 	PowerSystemSleeping1,
4e2933c620 2015-04-21        kinaba: 	PowerSystemSleeping2,
4e2933c620 2015-04-21        kinaba: 	PowerSystemSleeping3,
4e2933c620 2015-04-21        kinaba: 	PowerSystemHibernate,
4e2933c620 2015-04-21        kinaba: 	PowerSystemShutdown,
4e2933c620 2015-04-21        kinaba: 	PowerSystemMaximum
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_POWER_STATE* PSYSTEM_POWER_STATE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const POWER_SYSTEM_MAXIMUM = SYSTEM_POWER_STATE.PowerSystemMaximum;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum POWER_ACTION {
4e2933c620 2015-04-21        kinaba: 	PowerActionNone,
4e2933c620 2015-04-21        kinaba: 	PowerActionReserved,
4e2933c620 2015-04-21        kinaba: 	PowerActionSleep,
4e2933c620 2015-04-21        kinaba: 	PowerActionHibernate,
4e2933c620 2015-04-21        kinaba: 	PowerActionShutdown,
4e2933c620 2015-04-21        kinaba: 	PowerActionShutdownReset,
4e2933c620 2015-04-21        kinaba: 	PowerActionShutdownOff,
4e2933c620 2015-04-21        kinaba: 	PowerActionWarmEject
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias POWER_ACTION* PPOWER_ACTION;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x600) {
4e2933c620 2015-04-21        kinaba: 	enum SYSTEM_POWER_CONDITION {
4e2933c620 2015-04-21        kinaba: 		PoAc,
4e2933c620 2015-04-21        kinaba: 		PoDc,
4e2933c620 2015-04-21        kinaba: 		PoHot,
4e2933c620 2015-04-21        kinaba: 		PoConditionMaximum
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias SYSTEM_POWER_CONDITION* PSYSTEM_POWER_CONDITION;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum DEVICE_POWER_STATE {
4e2933c620 2015-04-21        kinaba: 	PowerDeviceUnspecified,
4e2933c620 2015-04-21        kinaba: 	PowerDeviceD0,
4e2933c620 2015-04-21        kinaba: 	PowerDeviceD1,
4e2933c620 2015-04-21        kinaba: 	PowerDeviceD2,
4e2933c620 2015-04-21        kinaba: 	PowerDeviceD3,
4e2933c620 2015-04-21        kinaba: 	PowerDeviceMaximum
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias DEVICE_POWER_STATE* PDEVICE_POWER_STATE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: align(4):
4e2933c620 2015-04-21        kinaba: struct BATTERY_REPORTING_SCALE {
4e2933c620 2015-04-21        kinaba: 	DWORD Granularity;
4e2933c620 2015-04-21        kinaba: 	DWORD Capacity;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias BATTERY_REPORTING_SCALE* PBATTERY_REPORTING_SCALE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct POWER_ACTION_POLICY {
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION Action;
4e2933c620 2015-04-21        kinaba: 	ULONG        Flags;
4e2933c620 2015-04-21        kinaba: 	ULONG        EventCode;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias POWER_ACTION_POLICY* PPOWER_ACTION_POLICY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // POWER_ACTION_POLICY.Flags constants
4e2933c620 2015-04-21        kinaba: const ULONG
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_QUERY_ALLOWED  = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_UI_ALLOWED     = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_OVERRIDE_APPS  = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_LIGHTEST_FIRST = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_LOCK_CONSOLE   = 0x20000000,
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_DISABLE_WAKES  = 0x40000000,
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_CRITICAL       = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // POWER_ACTION_POLICY.EventCode constants
4e2933c620 2015-04-21        kinaba: const ULONG
4e2933c620 2015-04-21        kinaba: 	POWER_LEVEL_USER_NOTIFY_TEXT  = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	POWER_LEVEL_USER_NOTIFY_SOUND = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	POWER_LEVEL_USER_NOTIFY_EXEC  = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	POWER_USER_NOTIFY_BUTTON      = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	POWER_USER_NOTIFY_SHUTDOWN    = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	POWER_FORCE_TRIGGER_RESET     = 0x80000000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const size_t
4e2933c620 2015-04-21        kinaba: 	DISCHARGE_POLICY_CRITICAL = 0,
4e2933c620 2015-04-21        kinaba: 	DISCHARGE_POLICY_LOW      = 1,
4e2933c620 2015-04-21        kinaba: 	NUM_DISCHARGE_POLICIES    = 4;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum : BYTE {
4e2933c620 2015-04-21        kinaba: 	PO_THROTTLE_NONE,
4e2933c620 2015-04-21        kinaba: 	PO_THROTTLE_CONSTANT,
4e2933c620 2015-04-21        kinaba: 	PO_THROTTLE_DEGRADE,
4e2933c620 2015-04-21        kinaba: 	PO_THROTTLE_ADAPTIVE,
4e2933c620 2015-04-21        kinaba: 	PO_THROTTLE_MAXIMUM
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_POWER_LEVEL {
4e2933c620 2015-04-21        kinaba: 	BOOLEAN             Enable;
4e2933c620 2015-04-21        kinaba: 	UCHAR[3]            Spare;
4e2933c620 2015-04-21        kinaba: 	ULONG               BatteryLevel;
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_POLICY PowerPolicy;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE  MinSystemState;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_POWER_LEVEL* PSYSTEM_POWER_LEVEL;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_POWER_POLICY {
4e2933c620 2015-04-21        kinaba: 	ULONG               Revision;
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_POLICY PowerButton;
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_POLICY SleepButton;
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_POLICY LidClose;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE  LidOpenWake;
4e2933c620 2015-04-21        kinaba: 	ULONG               Reserved;
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_POLICY Idle;
4e2933c620 2015-04-21        kinaba: 	ULONG               IdleTimeout;
4e2933c620 2015-04-21        kinaba: 	UCHAR               IdleSensitivity;
4e2933c620 2015-04-21        kinaba: 	UCHAR               DynamicThrottle;
4e2933c620 2015-04-21        kinaba: 	UCHAR[2]            Spare2;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE  MinSleep;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE  MaxSleep;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE  ReducedLatencySleep;
4e2933c620 2015-04-21        kinaba: 	ULONG               WinLogonFlags;
4e2933c620 2015-04-21        kinaba: 	ULONG               Spare3;
4e2933c620 2015-04-21        kinaba: 	ULONG               DozeS4Timeout;
4e2933c620 2015-04-21        kinaba: 	ULONG               BroadcastCapacityResolution;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_LEVEL[NUM_DISCHARGE_POLICIES] DischargePolicy;
4e2933c620 2015-04-21        kinaba: 	ULONG               VideoTimeout;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN             VideoDimDisplay;
4e2933c620 2015-04-21        kinaba: 	ULONG[3]            VideoReserved;
4e2933c620 2015-04-21        kinaba: 	ULONG               SpindownTimeout;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN             OptimizeForPower;
4e2933c620 2015-04-21        kinaba: 	UCHAR               FanThrottleTolerance;
4e2933c620 2015-04-21        kinaba: 	UCHAR               ForcedThrottle;
4e2933c620 2015-04-21        kinaba: 	UCHAR               MinThrottle;
4e2933c620 2015-04-21        kinaba: 	POWER_ACTION_POLICY OverThrottled;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_POWER_POLICY* PSYSTEM_POWER_POLICY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_POWER_CAPABILITIES {
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    PowerButtonPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    SleepButtonPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    LidPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    SystemS1;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    SystemS2;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    SystemS3;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    SystemS4;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    SystemS5;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    HiberFilePresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    FullWake;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    VideoDimPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    ApmPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    UpsPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    ThermalControl;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    ProcessorThrottle;
4e2933c620 2015-04-21        kinaba: 	UCHAR                      ProcessorMinThrottle;
4e2933c620 2015-04-21        kinaba: 	UCHAR                      ProcessorMaxThrottle;
4e2933c620 2015-04-21        kinaba: 	UCHAR[4]                   spare2;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    DiskSpinDown;
4e2933c620 2015-04-21        kinaba: 	UCHAR[8]                   spare3;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    SystemBatteriesPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN                    BatteriesAreShortTerm;
4e2933c620 2015-04-21        kinaba: 	BATTERY_REPORTING_SCALE[3] BatteryScale;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE         AcOnLineWake;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE         SoftLidWake;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE         RtcWake;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE         MinDeviceWakeState;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE         DefaultLowLatencyWake;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_POWER_CAPABILITIES* PSYSTEM_POWER_CAPABILITIES;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SYSTEM_BATTERY_STATE {
4e2933c620 2015-04-21        kinaba: 	BOOLEAN    AcOnLine;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN    BatteryPresent;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN    Charging;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN    Discharging;
4e2933c620 2015-04-21        kinaba: 	BOOLEAN[4] Spare1;
4e2933c620 2015-04-21        kinaba: 	ULONG      MaxCapacity;
4e2933c620 2015-04-21        kinaba: 	ULONG      RemainingCapacity;
4e2933c620 2015-04-21        kinaba: 	ULONG      Rate;
4e2933c620 2015-04-21        kinaba: 	ULONG      EstimatedTime;
4e2933c620 2015-04-21        kinaba: 	ULONG      DefaultAlert1;
4e2933c620 2015-04-21        kinaba: 	ULONG      DefaultAlert2;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_BATTERY_STATE* PSYSTEM_BATTERY_STATE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum POWER_INFORMATION_LEVEL {
4e2933c620 2015-04-21        kinaba: 	SystemPowerPolicyAc,
4e2933c620 2015-04-21        kinaba: 	SystemPowerPolicyDc,
4e2933c620 2015-04-21        kinaba: 	VerifySystemPolicyAc,
4e2933c620 2015-04-21        kinaba: 	VerifySystemPolicyDc,
4e2933c620 2015-04-21        kinaba: 	SystemPowerCapabilities,
4e2933c620 2015-04-21        kinaba: 	SystemBatteryState,
4e2933c620 2015-04-21        kinaba: 	SystemPowerStateHandler,
4e2933c620 2015-04-21        kinaba: 	ProcessorStateHandler,
4e2933c620 2015-04-21        kinaba: 	SystemPowerPolicyCurrent,
4e2933c620 2015-04-21        kinaba: 	AdministratorPowerPolicy,
4e2933c620 2015-04-21        kinaba: 	SystemReserveHiberFile,
4e2933c620 2015-04-21        kinaba: 	ProcessorInformation,
4e2933c620 2015-04-21        kinaba: 	SystemPowerInformation,
4e2933c620 2015-04-21        kinaba: 	ProcessorStateHandler2,
4e2933c620 2015-04-21        kinaba: 	LastWakeTime,
4e2933c620 2015-04-21        kinaba: 	LastSleepTime,
4e2933c620 2015-04-21        kinaba: 	SystemExecutionState,
4e2933c620 2015-04-21        kinaba: 	SystemPowerStateNotifyHandler,
4e2933c620 2015-04-21        kinaba: 	ProcessorPowerPolicyAc,
4e2933c620 2015-04-21        kinaba: 	ProcessorPowerPolicyDc,
4e2933c620 2015-04-21        kinaba: 	VerifyProcessorPowerPolicyAc,
4e2933c620 2015-04-21        kinaba: 	VerifyProcessorPowerPolicyDc,
4e2933c620 2015-04-21        kinaba: 	ProcessorPowerPolicyCurrent
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: //#if 1 /* (WIN32_WINNT >= 0x0500) */
4e2933c620 2015-04-21        kinaba: struct SYSTEM_POWER_INFORMATION {
4e2933c620 2015-04-21        kinaba: 	ULONG MaxIdlenessAllowed;
4e2933c620 2015-04-21        kinaba: 	ULONG Idleness;
4e2933c620 2015-04-21        kinaba: 	ULONG TimeRemaining;
4e2933c620 2015-04-21        kinaba: 	UCHAR CoolingMode;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SYSTEM_POWER_INFORMATION* PSYSTEM_POWER_INFORMATION;
4e2933c620 2015-04-21        kinaba: //#endif
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PROCESSOR_POWER_POLICY_INFO {
4e2933c620 2015-04-21        kinaba: 	ULONG    TimeCheck;
4e2933c620 2015-04-21        kinaba: 	ULONG    DemoteLimit;
4e2933c620 2015-04-21        kinaba: 	ULONG    PromoteLimit;
4e2933c620 2015-04-21        kinaba: 	UCHAR    DemotePercent;
4e2933c620 2015-04-21        kinaba: 	UCHAR    PromotePercent;
4e2933c620 2015-04-21        kinaba: 	UCHAR[2] Spare;
4e2933c620 2015-04-21        kinaba: 	uint     _bf;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	bool AllowDemotion()  { return cast(bool)(_bf & 1); }
4e2933c620 2015-04-21        kinaba: 	bool AllowPromotion() { return cast(bool)(_bf & 2); }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	bool AllowDemotion(bool a)  { _bf = (_bf & ~1) | a; return a; }
4e2933c620 2015-04-21        kinaba: 	bool AllowPromotion(bool a) { _bf = (_bf & ~2) | (a << 1); return a; }
4e2933c620 2015-04-21        kinaba: /+
4e2933c620 2015-04-21        kinaba: 	ULONG  AllowDemotion : 1;
4e2933c620 2015-04-21        kinaba: 	ULONG  AllowPromotion : 1;
4e2933c620 2015-04-21        kinaba: 	ULONG  Reserved : 30;
4e2933c620 2015-04-21        kinaba: +/
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PROCESSOR_POWER_POLICY_INFO* PPROCESSOR_POWER_POLICY_INFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct PROCESSOR_POWER_POLICY {
4e2933c620 2015-04-21        kinaba: 	ULONG    Revision;
4e2933c620 2015-04-21        kinaba: 	UCHAR    DynamicThrottle;
4e2933c620 2015-04-21        kinaba: 	UCHAR[3] Spare;
4e2933c620 2015-04-21        kinaba: 	ULONG    Reserved;
4e2933c620 2015-04-21        kinaba: 	ULONG    PolicyCount;
4e2933c620 2015-04-21        kinaba: 	PROCESSOR_POWER_POLICY_INFO[3] Policy;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias PROCESSOR_POWER_POLICY* PPROCESSOR_POWER_POLICY;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct ADMINISTRATOR_POWER_POLICY {
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE MinSleep;
4e2933c620 2015-04-21        kinaba: 	SYSTEM_POWER_STATE MaxSleep;
4e2933c620 2015-04-21        kinaba: 	ULONG              MinVideoTimeout;
4e2933c620 2015-04-21        kinaba: 	ULONG              MaxVideoTimeout;
4e2933c620 2015-04-21        kinaba: 	ULONG              MinSpindownTimeout;
4e2933c620 2015-04-21        kinaba: 	ULONG              MaxSpindownTimeout;
c2b7a98c21 2011-02-23        kinaba: }
4e2933c620 2015-04-21        kinaba: alias ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: //}//#endif /* _WIN32_WINNT >= 0x500 */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) {
4e2933c620 2015-04-21        kinaba: 	alias void function(PVOID, DWORD, PVOID) PIMAGE_TLS_CALLBACK;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: 	static if (_WIN32_WINNT >= 0x500) {
4e2933c620 2015-04-21        kinaba: 		alias LONG function(PEXCEPTION_POINTERS) PVECTORED_EXCEPTION_HANDLER;
4e2933c620 2015-04-21        kinaba: 		alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACKFUNC;
4e2933c620 2015-04-21        kinaba: 	}
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x501) {
4e2933c620 2015-04-21        kinaba: 	enum HEAP_INFORMATION_CLASS {
4e2933c620 2015-04-21        kinaba: 		HeapCompatibilityInformation
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	enum ACTIVATION_CONTEXT_INFO_CLASS {
4e2933c620 2015-04-21        kinaba: 		ActivationContextBasicInformation = 1,
4e2933c620 2015-04-21        kinaba: 		ActivationContextDetailedInformation,
4e2933c620 2015-04-21        kinaba: 		AssemblyDetailedInformationInActivationContext,
4e2933c620 2015-04-21        kinaba: 		FileInformationInAssemblyOfAssemblyInActivationContext
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION {
4e2933c620 2015-04-21        kinaba: 		DWORD         ulFlags;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulEncodedAssemblyIdentityLength;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulManifestPathType;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulManifestPathLength;
4e2933c620 2015-04-21        kinaba: 		LARGE_INTEGER liManifestLastWriteTime;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulPolicyPathType;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulPolicyPathLength;
4e2933c620 2015-04-21        kinaba: 		LARGE_INTEGER liPolicyLastWriteTime;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulMetadataSatelliteRosterIndex;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulManifestVersionMajor;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulManifestVersionMinor;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulPolicyVersionMajor;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulPolicyVersionMinor;
4e2933c620 2015-04-21        kinaba: 		DWORD         ulAssemblyDirectoryNameLength;
4e2933c620 2015-04-21        kinaba: 		PCWSTR        lpAssemblyEncodedAssemblyIdentity;
4e2933c620 2015-04-21        kinaba: 		PCWSTR        lpAssemblyManifestPath;
4e2933c620 2015-04-21        kinaba: 		PCWSTR        lpAssemblyPolicyPath;
4e2933c620 2015-04-21        kinaba: 		PCWSTR        lpAssemblyDirectoryName;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION*
4e2933c620 2015-04-21        kinaba: 	  PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
9b639cf2d6 2015-05-05        kinaba: 	alias const(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)*
4e2933c620 2015-04-21        kinaba: 	  PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct ACTIVATION_CONTEXT_DETAILED_INFORMATION {
4e2933c620 2015-04-21        kinaba: 		DWORD  dwFlags;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulFormatVersion;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulAssemblyCount;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulRootManifestPathType;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulRootManifestPathChars;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulRootConfigurationPathType;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulRootConfigurationPathChars;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulAppDirPathType;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulAppDirPathChars;
4e2933c620 2015-04-21        kinaba: 		PCWSTR lpRootManifestPath;
4e2933c620 2015-04-21        kinaba: 		PCWSTR lpRootConfigurationPath;
4e2933c620 2015-04-21        kinaba: 		PCWSTR lpAppDirPath;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias ACTIVATION_CONTEXT_DETAILED_INFORMATION*
4e2933c620 2015-04-21        kinaba: 	  PACTIVATION_CONTEXT_DETAILED_INFORMATION;
9b639cf2d6 2015-05-05        kinaba: 	alias const(ACTIVATION_CONTEXT_DETAILED_INFORMATION)*
4e2933c620 2015-04-21        kinaba: 	  PCACTIVATION_CONTEXT_DETAILED_INFORMATION;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct ACTIVATION_CONTEXT_QUERY_INDEX {
4e2933c620 2015-04-21        kinaba: 		ULONG ulAssemblyIndex;
4e2933c620 2015-04-21        kinaba: 		ULONG ulFileIndexInAssembly;
4e2933c620 2015-04-21        kinaba: 	}
9b639cf2d6 2015-05-05        kinaba: 	alias ACTIVATION_CONTEXT_QUERY_INDEX*        PACTIVATION_CONTEXT_QUERY_INDEX;
9b639cf2d6 2015-05-05        kinaba: 	alias const(ACTIVATION_CONTEXT_QUERY_INDEX)* PCACTIVATION_CONTEXT_QUERY_INDEX;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: 	struct ASSEMBLY_FILE_DETAILED_INFORMATION {
4e2933c620 2015-04-21        kinaba: 		DWORD  ulFlags;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulFilenameLength;
4e2933c620 2015-04-21        kinaba: 		DWORD  ulPathLength;
4e2933c620 2015-04-21        kinaba: 		PCWSTR lpFileName;
4e2933c620 2015-04-21        kinaba: 		PCWSTR lpFilePath;
4e2933c620 2015-04-21        kinaba: 	}
4e2933c620 2015-04-21        kinaba: 	alias ASSEMBLY_FILE_DETAILED_INFORMATION*
4e2933c620 2015-04-21        kinaba: 	  PASSEMBLY_FILE_DETAILED_INFORMATION;
9b639cf2d6 2015-05-05        kinaba: 	alias const(ASSEMBLY_FILE_DETAILED_INFORMATION)*
4e2933c620 2015-04-21        kinaba: 	  PCASSEMBLY_FILE_DETAILED_INFORMATION;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Unicode) {
4e2933c620 2015-04-21        kinaba: 	alias OSVERSIONINFOW OSVERSIONINFO;
4e2933c620 2015-04-21        kinaba: 	alias OSVERSIONINFOEXW OSVERSIONINFOEX;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	alias OSVERSIONINFOA OSVERSIONINFO;
4e2933c620 2015-04-21        kinaba: 	alias OSVERSIONINFOEXA OSVERSIONINFOEX;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: alias OSVERSIONINFO*   POSVERSIONINFO,   LPOSVERSIONINFO;
4e2933c620 2015-04-21        kinaba: alias OSVERSIONINFOEX* POSVERSIONINFOEX, LPOSVERSIONINFOEX;
4e2933c620 2015-04-21        kinaba: 
c2b7a98c21 2011-02-23        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static if (_WIN32_WINNT >= 0x500) {
4e2933c620 2015-04-21        kinaba: 	extern (Windows) ULONGLONG VerSetConditionMask(ULONGLONG, DWORD, BYTE);
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: version (Win64) {
4e2933c620 2015-04-21        kinaba: 	const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR64_MAGIC;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_ORDINAL_FLAG64 IMAGE_ORDINAL_FLAG;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_SNAP_BY_ORDINAL64 IMAGE_SNAP_BY_ORDINAL;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_ORDINAL64 IMAGE_ORDINAL;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_TLS_DIRECTORY64 IMAGE_TLS_DIRECTORY;
4e2933c620 2015-04-21        kinaba: } else {
4e2933c620 2015-04-21        kinaba: 	const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR32_MAGIC;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_ORDINAL_FLAG32 IMAGE_ORDINAL_FLAG;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_ORDINAL32 IMAGE_ORDINAL;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_SNAP_BY_ORDINAL32 IMAGE_SNAP_BY_ORDINAL;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;
4e2933c620 2015-04-21        kinaba: 	alias IMAGE_TLS_DIRECTORY32 IMAGE_TLS_DIRECTORY;
c2b7a98c21 2011-02-23        kinaba: }
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: alias IMAGE_OPTIONAL_HEADER* PIMAGE_OPTIONAL_HEADER;
4e2933c620 2015-04-21        kinaba: alias IMAGE_NT_HEADERS* PIMAGE_NT_HEADERS;
4e2933c620 2015-04-21        kinaba: alias IMAGE_THUNK_DATA* PIMAGE_THUNK_DATA;
4e2933c620 2015-04-21        kinaba: alias IMAGE_TLS_DIRECTORY* PIMAGE_TLS_DIRECTORY;
c2b7a98c21 2011-02-23        kinaba: 
4e2933c620 2015-04-21        kinaba: // TODO: MinGW implements these in assembly.  How to translate?
4e2933c620 2015-04-21        kinaba: PVOID GetCurrentFiber();
4e2933c620 2015-04-21        kinaba: PVOID GetFiberData();