123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369 |
- #ifndef _MINWINBASE_
- #define _MINWINBASE_
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define MoveMemory RtlMoveMemory
- #define CopyMemory RtlCopyMemory
- #define FillMemory RtlFillMemory
- #define ZeroMemory RtlZeroMemory
- typedef struct _SECURITY_ATTRIBUTES {
- DWORD nLength;
- LPVOID lpSecurityDescriptor;
- WINBOOL bInheritHandle;
- } SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
- typedef struct _OVERLAPPED {
- ULONG_PTR Internal;
- ULONG_PTR InternalHigh;
- __C89_NAMELESS union {
- struct {
- DWORD Offset;
- DWORD OffsetHigh;
- } DUMMYSTRUCTNAME;
- PVOID Pointer;
- } DUMMYUNIONNAME;
- HANDLE hEvent;
- } OVERLAPPED, *LPOVERLAPPED;
- typedef struct _OVERLAPPED_ENTRY {
- ULONG_PTR lpCompletionKey;
- LPOVERLAPPED lpOverlapped;
- ULONG_PTR Internal;
- DWORD dwNumberOfBytesTransferred;
- } OVERLAPPED_ENTRY, *LPOVERLAPPED_ENTRY;
- #ifndef _FILETIME_
- #define _FILETIME_
- typedef struct _FILETIME {
- DWORD dwLowDateTime;
- DWORD dwHighDateTime;
- } FILETIME,*PFILETIME,*LPFILETIME;
- #endif
- #ifndef _SYSTEMTIME_
- #define _SYSTEMTIME_
- typedef struct _SYSTEMTIME {
- WORD wYear;
- WORD wMonth;
- WORD wDayOfWeek;
- WORD wDay;
- WORD wHour;
- WORD wMinute;
- WORD wSecond;
- WORD wMilliseconds;
- } SYSTEMTIME, *PSYSTEMTIME, *LPSYSTEMTIME;
- #endif
- typedef struct _WIN32_FIND_DATAA {
- DWORD dwFileAttributes;
- FILETIME ftCreationTime;
- FILETIME ftLastAccessTime;
- FILETIME ftLastWriteTime;
- DWORD nFileSizeHigh;
- DWORD nFileSizeLow;
- DWORD dwReserved0;
- DWORD dwReserved1;
- CHAR cFileName[MAX_PATH];
- CHAR cAlternateFileName[14];
- #ifdef _MAC
- DWORD dwFileType;
- DWORD dwCreatorType;
- WORD wFinderFlags;
- #endif
- } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA;
- typedef struct _WIN32_FIND_DATAW {
- DWORD dwFileAttributes;
- FILETIME ftCreationTime;
- FILETIME ftLastAccessTime;
- FILETIME ftLastWriteTime;
- DWORD nFileSizeHigh;
- DWORD nFileSizeLow;
- DWORD dwReserved0;
- DWORD dwReserved1;
- WCHAR cFileName[MAX_PATH];
- WCHAR cAlternateFileName[14];
- #ifdef _MAC
- DWORD dwFileType;
- DWORD dwCreatorType;
- WORD wFinderFlags;
- #endif
- } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW;
- __MINGW_TYPEDEF_AW(WIN32_FIND_DATA)
- __MINGW_TYPEDEF_AW(PWIN32_FIND_DATA)
- __MINGW_TYPEDEF_AW(LPWIN32_FIND_DATA)
- #if _WIN32_WINNT >= 0x0400
- typedef enum _FINDEX_INFO_LEVELS {
- FindExInfoStandard,
- FindExInfoBasic,
- FindExInfoMaxInfoLevel
- } FINDEX_INFO_LEVELS;
- #define FIND_FIRST_EX_CASE_SENSITIVE 0x00000001
- #define FIND_FIRST_EX_LARGE_FETCH 0x00000002
- #if NTDDI_VERSION >= 0x0A000005
- #define FIND_FIRST_EX_ON_DISK_ENTRIES_ONLY 0x00000004
- #endif
- typedef enum _FINDEX_SEARCH_OPS {
- FindExSearchNameMatch,
- FindExSearchLimitToDirectories,
- FindExSearchLimitToDevices,
- FindExSearchMaxSearchOp
- } FINDEX_SEARCH_OPS;
- #endif
- #if _WIN32_WINNT >= 0x0400
- #if NTDDI_VERSION >= 0x0A000004
- typedef enum _READ_DIRECTORY_NOTIFY_INFORMATION_CLASS {
- ReadDirectoryNotifyInformation = 1,
- ReadDirectoryNotifyExtendedInformation = 2
- } READ_DIRECTORY_NOTIFY_INFORMATION_CLASS, *PREAD_DIRECTORY_NOTIFY_INFORMATION_CLASS;
- #endif
- #endif
- typedef enum _GET_FILEEX_INFO_LEVELS {
- GetFileExInfoStandard,
- GetFileExMaxInfoLevel
- } GET_FILEEX_INFO_LEVELS;
- #if _WIN32_WINNT >= 0x0600
- typedef enum _FILE_INFO_BY_HANDLE_CLASS {
- FileBasicInfo /* is zero? */,
- FileStandardInfo,
- FileNameInfo,
- FileRenameInfo,
- FileDispositionInfo,
- FileAllocationInfo,
- FileEndOfFileInfo,
- FileStreamInfo,
- FileCompressionInfo,
- FileAttributeTagInfo,
- FileIdBothDirectoryInfo,
- FileIdBothDirectoryRestartInfo,
- FileIoPriorityHintInfo,
- FileRemoteProtocolInfo,
- FileFullDirectoryInfo,
- FileFullDirectoryRestartInfo,
- #if _WIN32_WINNT >= 0x0602
- FileStorageInfo,
- FileAlignmentInfo,
- FileIdInfo,
- FileIdExtdDirectoryInfo,
- FileIdExtdDirectoryRestartInfo,
- #endif
- #if _WIN32_WINNT >= 0x0A000002
- FileDispositionInfoEx,
- FileRenameInfoEx,
- #endif
- FileCaseSensitiveInfo,
- FileNormalizedNameInfo,
- MaximumFileInfoByHandleClass
- } FILE_INFO_BY_HANDLE_CLASS, *PFILE_INFO_BY_HANDLE_CLASS;
- #endif
- typedef RTL_CRITICAL_SECTION CRITICAL_SECTION;
- typedef PRTL_CRITICAL_SECTION PCRITICAL_SECTION;
- typedef PRTL_CRITICAL_SECTION LPCRITICAL_SECTION;
- typedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
- typedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
- typedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
- typedef VOID (WINAPI *LPOVERLAPPED_COMPLETION_ROUTINE) (DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, LPOVERLAPPED lpOverlapped);
- #define LOCKFILE_FAIL_IMMEDIATELY 0x1
- #define LOCKFILE_EXCLUSIVE_LOCK 0x2
- typedef struct _PROCESS_HEAP_ENTRY {
- PVOID lpData;
- DWORD cbData;
- BYTE cbOverhead;
- BYTE iRegionIndex;
- WORD wFlags;
- __C89_NAMELESS union {
- struct {
- HANDLE hMem;
- DWORD dwReserved[3];
- } Block;
- struct {
- DWORD dwCommittedSize;
- DWORD dwUnCommittedSize;
- LPVOID lpFirstBlock;
- LPVOID lpLastBlock;
- } Region;
- } DUMMYUNIONNAME;
- } PROCESS_HEAP_ENTRY,*LPPROCESS_HEAP_ENTRY,*PPROCESS_HEAP_ENTRY;
- #define PROCESS_HEAP_REGION 0x1
- #define PROCESS_HEAP_UNCOMMITTED_RANGE 0x2
- #define PROCESS_HEAP_ENTRY_BUSY 0x4
- #define PROCESS_HEAP_SEG_ALLOC 0x8
- #define PROCESS_HEAP_ENTRY_MOVEABLE 0x10
- #define PROCESS_HEAP_ENTRY_DDESHARE 0x20
- typedef struct _REASON_CONTEXT {
- ULONG Version;
- DWORD Flags;
- union {
- struct {
- HMODULE LocalizedReasonModule;
- ULONG LocalizedReasonId;
- ULONG ReasonStringCount;
- LPWSTR *ReasonStrings;
- } Detailed;
- LPWSTR SimpleReasonString;
- } Reason;
- } REASON_CONTEXT, *PREASON_CONTEXT;
- #define EXCEPTION_DEBUG_EVENT 1
- #define CREATE_THREAD_DEBUG_EVENT 2
- #define CREATE_PROCESS_DEBUG_EVENT 3
- #define EXIT_THREAD_DEBUG_EVENT 4
- #define EXIT_PROCESS_DEBUG_EVENT 5
- #define LOAD_DLL_DEBUG_EVENT 6
- #define UNLOAD_DLL_DEBUG_EVENT 7
- #define OUTPUT_DEBUG_STRING_EVENT 8
- #define RIP_EVENT 9
- typedef DWORD (WINAPI *PTHREAD_START_ROUTINE) (LPVOID lpThreadParameter);
- typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
- typedef LPVOID (WINAPI *PENCLAVE_ROUTINE) (LPVOID lpThreadParameter);
- typedef PENCLAVE_ROUTINE LPENCLAVE_ROUTINE;
- typedef struct _EXCEPTION_DEBUG_INFO {
- EXCEPTION_RECORD ExceptionRecord;
- DWORD dwFirstChance;
- } EXCEPTION_DEBUG_INFO, *LPEXCEPTION_DEBUG_INFO;
- typedef struct _CREATE_THREAD_DEBUG_INFO {
- HANDLE hThread;
- LPVOID lpThreadLocalBase;
- LPTHREAD_START_ROUTINE lpStartAddress;
- } CREATE_THREAD_DEBUG_INFO, *LPCREATE_THREAD_DEBUG_INFO;
- typedef struct _CREATE_PROCESS_DEBUG_INFO {
- HANDLE hFile;
- HANDLE hProcess;
- HANDLE hThread;
- LPVOID lpBaseOfImage;
- DWORD dwDebugInfoFileOffset;
- DWORD nDebugInfoSize;
- LPVOID lpThreadLocalBase;
- LPTHREAD_START_ROUTINE lpStartAddress;
- LPVOID lpImageName;
- WORD fUnicode;
- } CREATE_PROCESS_DEBUG_INFO, *LPCREATE_PROCESS_DEBUG_INFO;
- typedef struct _EXIT_THREAD_DEBUG_INFO {
- DWORD dwExitCode;
- } EXIT_THREAD_DEBUG_INFO, *LPEXIT_THREAD_DEBUG_INFO;
- typedef struct _EXIT_PROCESS_DEBUG_INFO {
- DWORD dwExitCode;
- } EXIT_PROCESS_DEBUG_INFO, *LPEXIT_PROCESS_DEBUG_INFO;
- typedef struct _LOAD_DLL_DEBUG_INFO {
- HANDLE hFile;
- LPVOID lpBaseOfDll;
- DWORD dwDebugInfoFileOffset;
- DWORD nDebugInfoSize;
- LPVOID lpImageName;
- WORD fUnicode;
- } LOAD_DLL_DEBUG_INFO, *LPLOAD_DLL_DEBUG_INFO;
- typedef struct _UNLOAD_DLL_DEBUG_INFO {
- LPVOID lpBaseOfDll;
- } UNLOAD_DLL_DEBUG_INFO, *LPUNLOAD_DLL_DEBUG_INFO;
- typedef struct _OUTPUT_DEBUG_STRING_INFO {
- LPSTR lpDebugStringData;
- WORD fUnicode;
- WORD nDebugStringLength;
- } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO;
- typedef struct _RIP_INFO {
- DWORD dwError;
- DWORD dwType;
- } RIP_INFO, *LPRIP_INFO;
- typedef struct _DEBUG_EVENT {
- DWORD dwDebugEventCode;
- DWORD dwProcessId;
- DWORD dwThreadId;
- union {
- EXCEPTION_DEBUG_INFO Exception;
- CREATE_THREAD_DEBUG_INFO CreateThread;
- CREATE_PROCESS_DEBUG_INFO CreateProcessInfo;
- EXIT_THREAD_DEBUG_INFO ExitThread;
- EXIT_PROCESS_DEBUG_INFO ExitProcess;
- LOAD_DLL_DEBUG_INFO LoadDll;
- UNLOAD_DLL_DEBUG_INFO UnloadDll;
- OUTPUT_DEBUG_STRING_INFO DebugString;
- RIP_INFO RipInfo;
- } u;
- } DEBUG_EVENT, *LPDEBUG_EVENT;
- #ifndef __WIDL__
- typedef PCONTEXT LPCONTEXT;
- #endif
- #define STILL_ACTIVE STATUS_PENDING
- #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION
- #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT
- #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT
- #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP
- #define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED
- #define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND
- #define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO
- #define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT
- #define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION
- #define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW
- #define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK
- #define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW
- #define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO
- #define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW
- #define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION
- #define EXCEPTION_IN_PAGE_ERROR STATUS_IN_PAGE_ERROR
- #define EXCEPTION_ILLEGAL_INSTRUCTION STATUS_ILLEGAL_INSTRUCTION
- #define EXCEPTION_NONCONTINUABLE_EXCEPTION STATUS_NONCONTINUABLE_EXCEPTION
- #define EXCEPTION_STACK_OVERFLOW STATUS_STACK_OVERFLOW
- #define EXCEPTION_INVALID_DISPOSITION STATUS_INVALID_DISPOSITION
- #define EXCEPTION_GUARD_PAGE STATUS_GUARD_PAGE_VIOLATION
- #define EXCEPTION_INVALID_HANDLE STATUS_INVALID_HANDLE
- #define EXCEPTION_POSSIBLE_DEADLOCK STATUS_POSSIBLE_DEADLOCK
- #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
- #define LMEM_FIXED 0x0
- #define LMEM_MOVEABLE 0x2
- #define LMEM_NOCOMPACT 0x10
- #define LMEM_NODISCARD 0x20
- #define LMEM_ZEROINIT 0x40
- #define LMEM_MODIFY 0x80
- #define LMEM_DISCARDABLE 0xf00
- #define LMEM_VALID_FLAGS 0xf72
- #define LMEM_INVALID_HANDLE 0x8000
- #define LHND (LMEM_MOVEABLE | LMEM_ZEROINIT)
- #define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
- #define NONZEROLHND (LMEM_MOVEABLE)
- #define NONZEROLPTR (LMEM_FIXED)
- #define LocalDiscard(h) LocalReAlloc ((h), 0, LMEM_MOVEABLE)
- #define LMEM_DISCARDED 0x4000
- #define LMEM_LOCKCOUNT 0xff
- #define NUMA_NO_PREFERRED_NODE ((DWORD) -1)
- #ifdef __cplusplus
- }
- #endif
- #endif
|