This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/winbase.h

3600 lines
184 KiB
C
Raw Permalink Normal View History

/*
* winbase.h Win32 base functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _WINBASE_
#define _WINBASE_
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#include <winerror.h>
#ifdef __cplusplus
extern "C" {
#endif
/* Macros to specify kernel and advanced functions */
#define WINBASEAPI DECLSPEC_IMPORT
#define WINADVAPI DECLSPEC_IMPORT
/* Macro to define an atom identifier */
#define MAKEINTATOM( x ) ((LPTSTR)(ULONG_PTR)(WORD)(x))
/* Invalid return values */
#define INVALID_HANDLE_VALUE ((HANDLE)(LONG_PTR)-1)
#define INVALID_FILE_SIZE 0xFFFFFFFFL
#define INVALID_SET_FILE_POINTER 0xFFFFFFFFL
#define INVALID_FILE_ATTRIBUTES 0xFFFFFFFFL
/* SetFilePointer() options */
#define FILE_BEGIN 0L
#define FILE_CURRENT 1L
#define FILE_END 2L
/* Invalid time zone identifier */
#define TIME_ZONE_ID_INVALID 0xFFFFFFFFL
/* Return values for wait functions */
#define WAIT_FAILED 0xFFFFFFFFL
#define WAIT_OBJECT_0 STATUS_WAIT_0
#define WAIT_ABANDONED STATUS_ABANDONED_WAIT_0
#define WAIT_ABANDONED_0 STATUS_ABANDONED_WAIT_0
#define WAIT_IO_COMPLETION STATUS_USER_APC
/* Return value for GetExitCodeProcess() and GetExitCodeThread() */
#define STILL_ACTIVE STATUS_PENDING
/* Exception codes */
#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
/* CTRL+C exit value */
#define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT
/* File flags */
#define FILE_FLAG_WRITE_THROUGH 0x80000000L
#define FILE_FLAG_OVERLAPPED 0x40000000L
#define FILE_FLAG_NO_BUFFERING 0x20000000L
#define FILE_FLAG_RANDOM_ACCESS 0x10000000L
#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000L
#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000L
#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000L
#define FILE_FLAG_POSIX_SEMANTICS 0x01000000L
#define FILE_FLAG_OPEN_REPARSE_POINT 0x00200000L
#define FILE_FLAG_OPEN_NO_RECALL 0x00100000L
#define FILE_FLAG_FIRST_PIPE_INSTANCE 0x00080000L
/* File creation disposition */
#define CREATE_NEW 1L
#define CREATE_ALWAYS 2L
#define OPEN_EXISTING 3L
#define OPEN_ALWAYS 4L
#define TRUNCATE_EXISTING 5L
/* CopyFileEx() callback return codes */
#if (_WIN32_WINNT >= 0x0400)
#define PROGRESS_CONTINUE 0L
#define PROGRESS_CANCEL 1L
#define PROGRESS_STOP 2L
#define PROGRESS_QUIET 3L
#endif
/* CopyFileEx() callback flags */
#if (_WIN32_WINNT >= 0x0400)
#define CALLBACK_CHUNK_FINISHED 0x00000000L
#define CALLBACK_STREAM_SWITCH 0x00000001L
#endif
/* CopyFileEx() flags */
#if (_WIN32_WINNT >= 0x0400)
#define COPY_FILE_FAIL_IF_EXISTS 0x00000001L
#define COPY_FILE_RESTARTABLE 0x00000002L
#define COPY_FILE_OPEN_SOURCE_FOR_WRITE 0x00000004L
#define COPY_FILE_ALLOW_DECRYPTED_DESTINATION 0x00000008L
#endif
#if (_WIN32_WINNT >= 0x0600)
#define COPY_FILE_COPY_SYMLINK 0x00000800L
#define COPY_FILE_NO_BUFFERING 0x00001000L
#endif
/* ReplaceFile() flags */
#if (_WIN32_WINNT >= 0x0500)
#define REPLACEFILE_WRITE_THROUGH 0x00000001L
#define REPLACEFILE_IGNORE_MERGE_ERRORS 0x00000002L
#endif
#if (_WIN32_WINNT >= 0x0600)
#define REPLACEFILE_IGNORE_ACL_ERRORS 0x00000004L
#endif
/* Named pipe open modes */
#define PIPE_ACCESS_INBOUND 0x00000001L
#define PIPE_ACCESS_OUTBOUND 0x00000002L
#define PIPE_ACCESS_DUPLEX 0x00000003L
/* Named pipe end flags */
#define PIPE_CLIENT_END 0x00000000L
#define PIPE_SERVER_END 0x00000001L
/* Named pipe modes */
#define PIPE_WAIT 0x00000000L
#define PIPE_NOWAIT 0x00000001L
#define PIPE_READMODE_BYTE 0x00000000L
#define PIPE_READMODE_MESSAGE 0x00000002L
#define PIPE_TYPE_BYTE 0x00000000L
#define PIPE_TYPE_MESSAGE 0x00000004L
#define PIPE_ACCEPT_REMOTE_CLIENTS 0x00000000L
#define PIPE_REJECT_REMOTE_CLIENTS 0x00000008L
/* Special maximum instance values for CreateNamedPipe() */
#define PIPE_UNLIMITED_INSTANCES 255
/* Security quality of service flags for CreateFile() */
#define SECURITY_ANONYMOUS (SecurityAnonymous << 16)
#define SECURITY_IDENTIFICATION (SecurityIdentification << 16)
#define SECURITY_IMPERSONATION (SecurityImpersonation << 16)
#define SECURITY_DELEGATION (SecurityDelegation << 16)
#define SECURITY_CONTEXT_TRACKING 0x00040000L
#define SECURITY_EFFECTIVE_ONLY 0x00080000L
#define SECURITY_SQOS_PRESENT 0x00100000L
#define SECURITY_VALID_SQOS_FLAGS 0x001F0000L
/* Run once flags */
#define INIT_ONCE_CHECK_ONLY RTL_RUN_ONCE_CHECK_ONLY
#define INIT_ONCE_ASYNC RTL_RUN_ONCE_ASYNC
#define INIT_ONCE_INIT_FAILED RTL_RUN_ONCE_INIT_FAILED
/* RaiseFailFastException() flags */
#define FAIL_FAST_GENERATE_EXCEPTION_ADDRESS 0x00000001L
#define FAIL_FAST_NO_HARD_ERROR_DLG 0x00000002L
/* Condition variable flags */
#define CONDITION_VARIABLE_LOCKMODE_SHARED RTL_CONDITION_VARIABLE_LOCKMODE_SHARED
/* Mutex access rights */
#define MUTEX_MODIFY_STATE MUTANT_QUERY_STATE
#define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS
/* Communications provider type */
#define SP_SERIALCOMM 0x00000001L
/* Communications provider subtypes */
#define PST_UNSPECIFIED 0x00000000L
#define PST_RS232 0x00000001L
#define PST_PARALLELPORT 0x00000002L
#define PST_RS422 0x00000003L
#define PST_RS423 0x00000004L
#define PST_RS449 0x00000005L
#define PST_MODEM 0x00000006L
#define PST_FAX 0x00000021L
#define PST_SCANNER 0x00000022L
#define PST_NETWORK_BRIDGE 0x00000100L
#define PST_LAT 0x00000101L
#define PST_TCPIP_TELNET 0x00000102L
#define PST_X25 0x00000103L
/* Communications provider capabilities flags */
#define PCF_DTRDSR 0x00000001L
#define PCF_RTSCTS 0x00000002L
#define PCF_RLSD 0x00000004L
#define PCF_PARITY_CHECK 0x00000008L
#define PCF_XONXOFF 0x00000010L
#define PCF_SETXCHAR 0x00000020L
#define PCF_TOTALTIMEOUTS 0x00000040L
#define PCF_INTTIMEOUTS 0x00000080L
#define PCF_SPECIALCHARS 0x00000100L
#define PCF_16BITMODE 0x00000200L
/* Communications settable parameters */
#define SP_PARITY 0x00000001L
#define SP_BAUD 0x00000002L
#define SP_DATABITS 0x00000004L
#define SP_STOPBITS 0x00000008L
#define SP_HANDSHAKING 0x00000010L
#define SP_PARITY_CHECK 0x00000020L
#define SP_RLSD 0x00000040L
/* Communications baud rates */
#define BAUD_075 0x00000001L
#define BAUD_110 0x00000002L
#define BAUD_134_5 0x00000004L
#define BAUD_150 0x00000008L
#define BAUD_300 0x00000010L
#define BAUD_600 0x00000020L
#define BAUD_1200 0x00000040L
#define BAUD_1800 0x00000080L
#define BAUD_2400 0x00000100L
#define BAUD_4800 0x00000200L
#define BAUD_7200 0x00000400L
#define BAUD_9600 0x00000800L
#define BAUD_14400 0x00001000L
#define BAUD_19200 0x00002000L
#define BAUD_38400 0x00004000L
#define BAUD_56K 0x00008000L
#define BAUD_128K 0x00010000L
#define BAUD_115200 0x00020000L
#define BAUD_57600 0x00040000L
#define BAUD_USER 0x10000000L
/* Communications data bits */
#define DATABITS_5 0x0001
#define DATABITS_6 0x0002
#define DATABITS_7 0x0004
#define DATABITS_8 0x0008
#define DATABITS_16 0x0010
#define DATABITS_16X 0x0020
/* Stop bits and parity flags */
#define STOPBITS_10 0x0001
#define STOPBITS_15 0x0002
#define STOPBITS_20 0x0004
#define PARITY_NONE 0x0100
#define PARITY_ODD 0x0200
#define PARITY_EVEN 0x0400
#define PARITY_MARK 0x0800
#define PARITY_SPACE 0x1000
/* Special value used with COMMPROP */
#define COMMPROP_INITIALIZED 0xE73CF52EL
/* DTR control values */
#define DTR_CONTROL_DISABLE 0x00
#define DTR_CONTROL_ENABLE 0x01
#define DTR_CONTROL_HANDSHAKE 0x02
/* RTS control values */
#define RTS_CONTROL_DISABLE 0x00
#define RTS_CONTROL_ENABLE 0x01
#define RTS_CONTROL_HANDSHAKE 0x02
#define RTS_CONTROL_TOGGLE 0x03
/* Global memory flags */
#define GMEM_FIXED 0x0000
#define GMEM_MOVEABLE 0x0002
#define GMEM_NOCOMPACT 0x0010
#define GMEM_NODISCARD 0x0020
#define GMEM_ZEROINIT 0x0040
#define GMEM_MODIFY 0x0080
#define GMEM_DISCARDABLE 0x0100
#define GMEM_NOT_BANKED 0x1000
#define GMEM_SHARE 0x2000
#define GMEM_DDESHARE 0x2000
#define GMEM_NOTIFY 0x4000
#define GMEM_LOWER GMEM_NOT_BANKED
#define GMEM_VALID_FLAGS 0x7F72
#define GMEM_INVALID_HANDLE 0x8000
#define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT)
#define GPTR (GMEM_FIXED | GMEM_ZEROINIT)
/* Flags used with GlobalFlags() */
#define GMEM_DISCARDED 0x4000
#define GMEM_LOCKCOUNT 0x00FF
/* Local memory flags */
#define LMEM_FIXED 0x0000
#define LMEM_MOVEABLE 0x0002
#define LMEM_NOCOMPACT 0x0010
#define LMEM_NODISCARD 0x0020
#define LMEM_ZEROINIT 0x0040
#define LMEM_MODIFY 0x0080
#define LMEM_DISCARDABLE 0x0F00
#define LMEM_VALID_FLAGS 0x0F72
#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)
/* Flags used with LocalFlags() */
#define LMEM_DISCARDED 0x4000
#define LMEM_LOCKCOUNT 0x00FF
/* Numa special values */
#define NUMA_NO_PREFERRED_NODE 0xFFFFFFFFL
/* Process creation flags */
#define DEBUG_PROCESS 0x00000001L
#define DEBUG_ONLY_THIS_PROCESS 0x00000002L
#define CREATE_SUSPENDED 0x00000004L
#define DETACHED_PROCESS 0x00000008L
#define CREATE_NEW_CONSOLE 0x00000010L
#define NORMAL_PRIORITY_CLASS 0x00000020L
#define IDLE_PRIORITY_CLASS 0x00000040L
#define HIGH_PRIORITY_CLASS 0x00000080L
#define REALTIME_PRIORITY_CLASS 0x00000100L
#define CREATE_NEW_PROCESS_GROUP 0x00000200L
#define CREATE_UNICODE_ENVIRONMENT 0x00000400L
#define CREATE_SEPARATE_WOW_VDM 0x00000800L
#define CREATE_SHARED_WOW_VDM 0x00001000L
#define CREATE_FORCEDOS 0x00002000L
#define BELOW_NORMAL_PRIORITY_CLASS 0x00004000L
#define ABOVE_NORMAL_PRIORITY_CLASS 0x00008000L
#define INHERIT_PARENT_AFFINITY 0x00010000L
#define INHERIT_CALLER_PRIORITY 0x00020000L
#define CREATE_PROTECTED_PROCESS 0x00040000L
#define EXTENDED_STARTUPINFO_PRESENT 0x00080000L
#define PROCESS_MODE_BACKGROUND_BEGIN 0x00100000L
#define PROCESS_MODE_BACKGROUND_END 0x00200000L
#define CREATE_BREAKAWAY_FROM_JOB 0x01000000L
#define CREATE_PRESERVE_CODE_AUTHZ_LEVEL 0x02000000L
#define CREATE_DEFAULT_ERROR_MODE 0x04000000L
#define CREATE_NO_WINDOW 0x08000000L
#define PROFILE_USER 0x10000000L
#define PROFILE_KERNEL 0x20000000L
#define PROFILE_SERVER 0x40000000L
#define CREATE_IGNORE_SYSTEM_DEFAULT 0x80000000L
/* Thread creation flags */
#define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000L
/* Thread priority values */
#define THREAD_PRIORITY_LOWEST THREAD_BASE_PRIORITY_MIN
#define THREAD_PRIORITY_BELOW_NORMAL (THREAD_PRIORITY_LOWEST + 1)
#define THREAD_PRIORITY_NORMAL 0
#define THREAD_PRIORITY_HIGHEST THREAD_BASE_PRIORITY_MAX
#define THREAD_PRIORITY_ABOVE_NORMAL (THREAD_PRIORITY_HIGHEST - 1)
#define THREAD_PRIORITY_ERROR_RETURN MAXLONG
#define THREAD_PRIORITY_TIME_CRITICAL THREAD_BASE_PRIORITY_LOWRT
#define THREAD_PRIORITY_IDLE THREAD_BASE_PRIORITY_IDLE
/* Thread modes */
#define THREAD_MODE_BACKGROUND_BEGIN 0x00010000L
#define THREAD_MODE_BACKGROUND_END 0x00020000L
/* GetFinalPathNameByHandle() flags */
#define VOLUME_NAME_DOS 0x00000000L
#define VOLUME_NAME_GUID 0x00000001L
#define VOLUME_NAME_NT 0x00000002L
#define VOLUME_NAME_NONE 0x00000004L
#define FILE_NAME_NORMALIZED 0x00000000L
#define FILE_NAME_OPENED 0x00000008L
/* Debug event types */
#define EXCEPTION_DEBUG_EVENT 1L
#define CREATE_THREAD_DEBUG_EVENT 2L
#define CREATE_PROCESS_DEBUG_EVENT 3L
#define EXIT_THREAD_DEBUG_EVENT 4L
#define EXIT_PROCESS_DEBUG_EVENT 5L
#define LOAD_DLL_DEBUG_EVENT 6L
#define UNLOAD_DLL_DEBUG_EVENT 7L
#define OUTPUT_DEBUG_STRING_EVENT 8L
#define RIP_EVENT 9L
/* Drive types */
#define DRIVE_UNKNOWN 0
#define DRIVE_NO_ROOT_DIR 1
#define DRIVE_REMOVABLE 2
#define DRIVE_FIXED 3
#define DRIVE_REMOTE 4
#define DRIVE_CDROM 5
#define DRIVE_RAMDISK 6
/* File types */
#define FILE_TYPE_UNKNOWN 0x00000000L
#define FILE_TYPE_DISK 0x00000001L
#define FILE_TYPE_CHAR 0x00000002L
#define FILE_TYPE_PIPE 0x00000003L
#define FILE_TYPE_REMOTE 0x00008000L
/* Standard handles */
#define STD_INPUT_HANDLE ((DWORD)-10)
#define STD_OUTPUT_HANDLE ((DWORD)-11)
#define STD_ERROR_HANDLE ((DWORD)-12)
/* Communications parity values */
#define NOPARITY 0
#define ODDPARITY 1
#define EVENPARITY 2
#define MARKPARITY 3
#define SPACEPARITY 4
/* Communications stop bits */
#define ONESTOPBIT 0
#define ONE5STOPBITS 1
#define TWOSTOPBITS 2
/* Infinite timeout value */
#define INFINITE 0xFFFFFFFFL
/* Communications baud rates */
#define CBR_110 110L
#define CBR_300 300L
#define CBR_600 600L
#define CBR_1200 1200L
#define CBR_2400 2400L
#define CBR_4800 4800L
#define CBR_9600 9600L
#define CBR_14400 14400L
#define CBR_19200 19200L
#define CBR_38400 38400L
#define CBR_56000 56000L
#define CBR_57600 57600L
#define CBR_115200 115200L
#define CBR_128000 128000L
#define CBR_256000 256000L
/* Communications error flags */
#define CE_RXOVER 0x00000001L
#define CE_OVERRUN 0x00000002L
#define CE_RXPARITY 0x00000004L
#define CE_FRAME 0x00000008L
#define CE_BREAK 0x00000010L
#define CE_TXFULL 0x00000100L
#define CE_PTO 0x00000200L
#define CE_IOE 0x00000400L
#define CE_DNS 0x00000800L
#define CE_OOP 0x00001000L
#define CE_MODE 0x00008000L
/* Communications events */
#define EV_RXCHAR 0x00000001L
#define EV_RXFLAG 0x00000002L
#define EV_TXEMPTY 0x00000004L
#define EV_CTS 0x00000008L
#define EV_DSR 0x00000010L
#define EV_RLSD 0x00000020L
#define EV_BREAK 0x00000040L
#define EV_ERR 0x00000080L
#define EV_RING 0x00000100L
#define EV_PERR 0x00000200L
#define EV_RX80FULL 0x00000400L
#define EV_EVENT1 0x00000800L
#define EV_EVENT2 0x00001000L
/* Communications escape functions */
#define SETXOFF 1L
#define SETXON 2L
#define SETRTS 3L
#define CLRRTS 4L
#define SETDTR 5L
#define CLRDTR 6L
#define RESETDEV 7L
#define SETBREAK 8L
#define CLRBREAK 9L
/* PurgeComm() flags */
#define PURGE_TXABORT 0x00000001L
#define PURGE_RXABORT 0x00000002L
#define PURGE_TXCLEAR 0x00000004L
#define PURGE_RXCLEAR 0x00000008L
/* Communications modem status flags */
#define MS_CTS_ON 0x00000010L
#define MS_DSR_ON 0x00000020L
#define MS_RING_ON 0x00000040L
#define MS_RLSD_ON 0x00000080L
/* WaitNamedPipe() special timeout values */
#define NMPWAIT_WAIT_FOREVER 0xFFFFFFFFL
#define NMPWAIT_NOWAIT 0x00000001L
#define NMPWAIT_USE_DEFAULT_WAIT 0x00000000L
/* File system flags */
#define FS_CASE_IS_PRESERVED FILE_CASE_PRESERVED_NAMES
#define FS_CASE_SENSITIVE FILE_CASE_SENSITIVE_SEARCH
#define FS_UNICODE_STORED_ON_DISK FILE_UNICODE_ON_DISK
#define FS_PERSISTENT_ACLS FILE_PERSISTENT_ACLS
#define FS_VOL_IS_COMPRESSED FILE_VOLUME_IS_COMPRESSED
#define FS_FILE_COMPRESSION FILE_FILE_COMPRESSION
#define FS_FILE_ENCRYPTION FILE_SUPPORTS_ENCRYPTION
/* File mapping access rights */
#define FILE_MAP_COPY SECTION_QUERY
#define FILE_MAP_WRITE SECTION_MAP_WRITE
#define FILE_MAP_READ SECTION_MAP_READ
#define FILE_MAP_ALL_ACCESS SECTION_ALL_ACCESS
#define FILE_MAP_EXECUTE SECTION_MAP_EXECUTE_EXPLICIT
/* OpenFile() flags */
#define OF_READ 0x00000000
#define OF_WRITE 0x00000001
#define OF_READWRITE 0x00000002
#define OF_SHARE_COMPAT 0x00000000
#define OF_SHARE_EXCLUSIVE 0x00000010
#define OF_SHARE_DENY_WRITE 0x00000020
#define OF_SHARE_DENY_READ 0x00000030
#define OF_SHARE_DENY_NONE 0x00000040
#define OF_PARSE 0x00000100
#define OF_DELETE 0x00000200
#define OF_VERIFY 0x00000400
#define OF_CANCEL 0x00000800
#define OF_CREATE 0x00001000
#define OF_PROMPT 0x00002000
#define OF_EXIST 0x00004000
#define OF_REOPEN 0x00008000
/* Maximum path name size for OFSTRUCT */
#define OFS_MAXPATHNAME 128
/* Process heap flags */
#define PROCESS_HEAP_REGION 0x0001
#define PROCESS_HEAP_UNCOMMITTED_RANGE 0x0002
#define PROCESS_HEAP_ENTRY_BUSY 0x0004
#define PROCESS_HEAP_ENTRY_MOVEABLE 0x0010
#define PROCESS_HEAP_ENTRY_DDESHARE 0x0020
/* GetBinaryType() return values */
#define SCS_32BIT_BINARY 0L
#define SCS_DOS_BINARY 1L
#define SCS_WOW_BINARY 2L
#define SCS_PIF_BINARY 3L
#define SCS_POSIX_BINARY 4L
#define SCS_OS216_BINARY 5L
#define SCS_64BIT_BINARY 6L
#define SCS_THIS_PLATFORM_BINARY SCS_32BIT_BINARY
/* Process affinity update mode flags */
#if (_WIN32_WINNT >= 0x0600)
#define PROCESS_AFFINITY_ENABLE_AUTO_UPDATE 0x00000001L
#endif
/* CreateFiberEx() flags */
#if (_WIN32_WINNT >= 0x0400)
#define FIBER_FLAG_FLOAT_SWITCH 0x00000001L
#endif
/* Process data execution prevention (DEP) flags */
#if (_WIN32_WINNT >= 0x0600)
#define PROCESS_DEP_ENABLE 0x00000001L
#define PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION 0x00000002L
#endif
/* SetFileCompletionNotificationModes() flags */
#if (_WIN32_WINNT >= 0x0600)
#define FILE_SKIP_COMPLETION_PORT_ON_SUCCESS 0x01
#define FILE_SKIP_SET_EVENT_ON_HANDLE 0x02
#endif
/* SetErrorMode() modes */
#define SEM_FAILCRITICALERRORS 0x0001
#define SEM_NOGPFAULTERRORBOX 0x0002
#define SEM_NOALIGNMENTFAULTEXCEPT 0x0004
#define SEM_NOOPENFILEERRORBOX 0x8000
/* Critical section flags */
#if (_WIN32_WINNT >= 0x0403)
#define CRITICAL_SECTION_NO_DEBUG_INFO RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO
#endif
/* LockFileEx() flags */
#define LOCKFILE_FAIL_IMMEDIATELY 0x00000001L
#define LOCKFILE_EXCLUSIVE_LOCK 0x00000002L
/* Handle flags */
#define HANDLE_FLAG_INHERIT 0x00000001L
#define HANDLE_FLAG_PROTECT_FROM_CLOSE 0x00000002L
/* Invalid instance handle value */
#define HINSTANCE_ERROR 32
/* GetTapeParameters() operations */
#define GET_TAPE_MEDIA_INFORMATION 0L
#define GET_TAPE_DRIVE_INFORMATION 1L
/* SetTapeParameters() operations */
#define SET_TAPE_MEDIA_INFORMATION 0L
#define SET_TAPE_DRIVE_INFORMATION 1L
/* File cache flags */
#if (_WIN32_WINNT >= 0x0502)
#define FILE_CACHE_MAX_HARD_ENABLE 0x00000001L
#define FILE_CACHE_MAX_HARD_DISABLE 0x00000002L
#define FILE_CACHE_MIN_HARD_ENABLE 0x00000004L
#define FILE_CACHE_MIN_HARD_DISABLE 0x00000008L
#endif
/* FormatMessage() flags */
#define FORMAT_MESSAGE_ALLOCATE_BUFFER 0x00000100L
#define FORMAT_MESSAGE_IGNORE_INSERTS 0x00000200L
#define FORMAT_MESSAGE_FROM_STRING 0x00000400L
#define FORMAT_MESSAGE_FROM_HMODULE 0x00000800L
#define FORMAT_MESSAGE_FROM_SYSTEM 0x00001000L
#define FORMAT_MESSAGE_ARGUMENT_ARRAY 0x00002000L
#define FORMAT_MESSAGE_MAX_WIDTH_MASK 0x000000FFL
/* File encryption status values */
#define FILE_ENCRYPTABLE 0L
#define FILE_IS_ENCRYPTED 1L
#define FILE_SYSTEM_ATTR 2L
#define FILE_ROOT_DIR 3L
#define FILE_SYSTEM_DIR 4L
#define FILE_UNKNOWN 5L
#define FILE_SYSTEM_NOT_SUPPORT 6L
#define FILE_USER_DISALLOWED 7L
#define FILE_READ_ONLY 8L
#define FILE_DIR_DISALLOWED 9L
/* OpenEncryptedFileRaw() flags */
#define CREATE_FOR_IMPORT 1L
#define CREATE_FOR_DIR 2L
#define OVERWRITE_HIDDEN 4L
#define EFSRPC_SECURE_ONLY 8L
/* FLS and TLS error values */
#define FLS_OUT_OF_INDEXES 0xFFFFFFFFL
#define TLS_OUT_OF_INDEXES 0xFFFFFFFFL
/* Stream identifiers */
#define BACKUP_INVALID 0x00000000L
#define BACKUP_DATA 0x00000001L
#define BACKUP_EA_DATA 0x00000002L
#define BACKUP_SECURITY_DATA 0x00000003L
#define BACKUP_ALTERNATE_DATA 0x00000004L
#define BACKUP_LINK 0x00000005L
#define BACKUP_PROPERTY_DATA 0x00000006L
#define BACKUP_OBJECT_ID 0x00000007L
#define BACKUP_REPARSE_DATA 0x00000008L
#define BACKUP_SPARSE_BLOCK 0x00000009L
#define BACKUP_TXFS_DATA 0x0000000AL
/* Stream attributes */
#define STREAM_NORMAL_ATTRIBUTE 0x00000000L
#define STREAM_MODIFIED_WHEN_READ 0x00000001L
#define STREAM_CONTAINS_SECURITY 0x00000002L
#define STREAM_CONTAINS_PROPERTIES 0x00000004L
#define STREAM_SPARSE_ATTRIBUTE 0x00000008L
/* Startup information flags */
#define STARTF_USESHOWWINDOW 0x00000001L
#define STARTF_USESIZE 0x00000002L
#define STARTF_USEPOSITION 0x00000004L
#define STARTF_USECOUNTCHARS 0x00000008L
#define STARTF_USEFILLATTRIBUTE 0x00000010L
#define STARTF_RUNFULLSCREEN 0x00000020L
#define STARTF_FORCEONFEEDBACK 0x00000040L
#define STARTF_FORCEOFFFEEDBACK 0x00000080L
#define STARTF_USESTDHANDLES 0x00000100L
#if (WINVER >= 0x0400)
#define STARTF_USEHOTKEY 0x00000200L
#define STARTF_TITLEISLINKNAME 0x00000800L
#define STARTF_TITLEISAPPID 0x00001000L
#define STARTF_PREVENTPINNING 0x00002000L
#endif
/* Process shutdown flags */
#define SHUTDOWN_NORETRY 0x00000001L
/* CreateMutexEx() flags */
#if (_WIN32_WINNT >= 0x0600)
#define CREATE_MUTEX_INITIAL_OWNER 0x00000001L
#endif
/* CreateEventEx() flags */
#if (_WIN32_WINNT >= 0x0600)
#define CREATE_EVENT_MANUAL_RESET 0x00000001L
#define CREATE_EVENT_INITIAL_SET 0x00000002L
#endif
/* CreateWaitableTimerEx() flags */
#if (_WIN32_WINNT >= 0x0600)
#define CREATE_WAITABLE_TIMER_MANUAL_RESET 0x00000001L
#endif
/* LoadLibraryEx() flags */
#define DONT_RESOLVE_DLL_REFERENCES 0x00000001L
#define LOAD_LIBRARY_AS_DATAFILE 0x00000002L
#define LOAD_WITH_ALTERED_SEARCH_PATH 0x00000008L
#define LOAD_IGNORE_CODE_AUTHZ_LEVEL 0x00000010L
#define LOAD_LIBRARY_AS_IMAGE_RESOURCE 0x00000020L
#define LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE 0x00000040L
#define LOAD_LIBRARY_REQUIRE_SIGNED_TARGET 0x00000080L
/* GetModuleHandleEx() flags */
#if (_WIN32_WINNT >= 0x0501)
#define GET_MODULE_HANDLE_EX_FLAG_PIN 0x00000001L
#define GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT 0x00000002L
#define GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS 0x00000004L
#endif
/* QueryFullProcessImageName() flags */
#if (_WIN32_WINNT >= 0x0600)
#define PROCESS_NAME_NATIVE 0x00000001L
#endif
/* DefineDosDevice() flags */
#define DDD_RAW_TARGET_PATH 0x00000001L
#define DDD_REMOVE_DEFINITION 0x00000002L
#define DDD_EXACT_MATCH_ON_REMOVE 0x00000004L
#define DDD_NO_BROADCAST_SYSTEM 0x00000008L
#define DDD_LUID_BROADCAST_DEVICE 0x00000010L
/* FindFirstFileEx() flags */
#if (_WIN32_WINNT >= 0x0400)
#define FIND_FIRST_EX_CASE_SENSITIVE 0x00000001L
#define FIND_FIRST_EX_LARGE_FETCH 0x00000002L
#endif
/* Process and thread attributes */
#if (_WIN32_WINNT >= 0x0600)
#define PROC_THREAD_ATTRIBUTE_NUMBER 0x0000FFFFL
#define PROC_THREAD_ATTRIBUTE_THREAD 0x00010000L
#define PROC_THREAD_ATTRIBUTE_INPUT 0x00020000L
#define PROC_THREAD_ATTRIBUTE_ADDITIVE 0x00040000L
#endif
/* Process creation mitigation policy flags */
#if (_WIN32_WINNT >= 0x0600)
#define PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE 0x00000001L
#define PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE 0x00000002L
#define PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE 0x00000004L
#endif
/* UpdateProcThreadAttribute() flags */
#if (_WIN32_WINNT >= 0x0600)
#define PROC_THREAD_ATTRIBUTE_REPLACE_VALUE 0x00000001L
#endif
/* Resource enumeration flags */
#define RESOURCE_ENUM_LN 0x00000001L
#define RESOURCE_ENUM_MUI 0x00000002L
#define RESOURCE_ENUM_MUI_SYSTEM 0x00000004L
#define RESOURCE_ENUM_VALIDATE 0x00000008L
#define RESOURCE_ENUM_MODULE_EXACT 0x00000010L
/* SetSearchPathMode() flags */
#define BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE 0x00000001L
#define BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE 0x00010000L
#define BASE_SEARCH_PATH_PERMANENT 0x00008000L
/* MoveFileEx() and MoveFileWithProgress() flags */
#define MOVEFILE_REPLACE_EXISTING 0x00000001L
#define MOVEFILE_COPY_ALLOWED 0x00000002L
#define MOVEFILE_DELAY_UNTIL_REBOOT 0x00000004L
#define MOVEFILE_WRITE_THROUGH 0x00000008L
#if (_WIN32_WINNT >= 0x0500)
#define MOVEFILE_CREATE_HARDLINK 0x00000010L
#define MOVEFILE_FAIL_IF_NOT_TRACKABLE 0x00000020L
#endif
/* Event log information classes */
#define EVENTLOG_FULL_INFO 0
/* Maximum computer name length */
#define MAX_COMPUTERNAME_LENGTH 15
/* Logon types */
#define LOGON32_LOGON_INTERACTIVE 2L
#define LOGON32_LOGON_NETWORK 3L
#define LOGON32_LOGON_BATCH 4L
#define LOGON32_LOGON_SERVICE 5L
#define LOGON32_LOGON_UNLOCK 7L
#if (_WIN32_WINNT >= 0x0500)
#define LOGON32_LOGON_NETWORK_CLEARTEXT 8L
#define LOGON32_LOGON_NEW_CREDENTIALS 9L
#endif
/* Logon providers */
#define LOGON32_PROVIDER_DEFAULT 0L
#define LOGON32_PROVIDER_WINNT35 1L
#if (_WIN32_WINNT >= 0x0400)
#define LOGON32_PROVIDER_WINNT40 2L
#endif
#if (_WIN32_WINNT >= 0x0500)
#define LOGON32_PROVIDER_WINNT50 3L
#endif
#if (_WIN32_WINNT >= 0x0600)
#define LOGON32_PROVIDER_VIRTUAL 4L
#endif
/* CreateProcessWithLogonW() flags */
#if (_WIN32_WINNT >= 0x0500)
#define LOGON_WITH_PROFILE 0x00000001L
#define LOGON_NETCREDENTIALS_ONLY 0x00000002L
#define LOGON_ZERO_PASSWORD_BUFFER 0x80000000L
#endif
/* Hardware profile GUID length */
#if (_WIN32_WINNT >= 0x0400)
#define HW_PROFILE_GUIDLEN 39
#endif
/* Maximum hardware profile name length */
#if (_WIN32_WINNT >= 0x0400)
#define MAX_PROFILE_LEN 80
#endif
/* Hardware profile docking flags */
#if (_WIN32_WINNT >= 0x0400)
#define DOCKINFO_UNDOCKED 0x00000001L
#define DOCKINFO_DOCKED 0x00000002L
#define DOCKINFO_USER_SUPPLIED 0x00000004L
#define DOCKINFO_USER_UNDOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_UNDOCKED)
#define DOCKINFO_USER_DOCKED (DOCKINFO_USER_SUPPLIED | DOCKINFO_DOCKED)
#endif
/* AC line status values */
#if (WINVER >= 0x0400)
#define AC_LINE_OFFLINE 0x00
#define AC_LINE_ONLINE 0x01
#define AC_LINE_BACKUP_POWER 0x02
#define AC_LINE_UNKNOWN 0xFF
#endif
/* Battery flags */
#if (WINVER >= 0x0400)
#define BATTERY_FLAG_HIGH 0x01
#define BATTERY_FLAG_LOW 0x02
#define BATTERY_FLAG_CRITICAL 0x04
#define BATTERY_FLAG_CHARGING 0x08
#define BATTERY_FLAG_NO_BATTERY 0x80
#define BATTERY_FLAG_UNKNOWN 0xFF
#endif
/* Battery percentage special value */
#if (WINVER >= 0x0400)
#define BATTERY_PERCENTAGE_UNKNOWN 0xFF
#endif
/* Battery life special value */
#if (WINVER >= 0x0400)
#define BATTERY_LIFE_UNKNOWN 0xFFFFFFFFL
#endif
/* ClosePrivateNamespcae() flags */
#if (_WIN32_WINNT >= 0x0600)
#define PRIVATE_NAMESPACE_FLAG_DESTROY 0x00000001L
#endif
/* Activation context flags */
#if (_WIN32_WINNT >= 0x0500)
#define ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID 0x00000001L
#define ACTCTX_FLAG_LANGID_VALID 0x00000002L
#define ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID 0x00000004L
#define ACTCTX_FLAG_RESOURCE_NAME_VALID 0x00000008L
#define ACTCTX_FLAG_SET_PROCESS_DEFAULT 0x00000010L
#define ACTCTX_FLAG_APPLICATION_NAME_VALID 0x00000020L
#define ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF 0x00000040L
#define ACTCTX_FLAG_HMODULE_VALID 0x00000080L
#endif
/* DeactivateActCtx() flags */
#if (_WIN32_WINNT >= 0x0500)
#define DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION 0x00000001L
#endif
/* FindActCtxSectionString() and FindActCtxSectionGuid() flags */
#if (_WIN32_WINNT >= 0x0500)
#define FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX 0x00000001L
#define FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS 0x00000002L
#define FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA 0x00000004L
#endif
/* QueryActCtxW() flags */
#if (_WIN32_WINNT >= 0x0500)
#define QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX 0x00000004L
#define QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE 0x00000008L
#define QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS 0x00000010L
#define QUERY_ACTCTX_FLAG_NO_ADDREF 0x80000000L
#endif
/* Maximum command line length */
#define RESTART_MAX_CMD_LINE 1024
/* Restart flags */
#define RESTART_NO_CRASH 1L
#define RESTART_NO_HANG 2L
#define RESTART_NO_PATCH 4L
#define RESTART_NO_REBOOT 8L
/* Application recovery constants */
#define RECOVERY_DEFAULT_PING_INTERVAL 5000L
#define RECOVERY_MAX_PING_INTERVAL 300000L
/* File remote protocol information flags */
#if (_WIN32_WINNT >= 0x0600)
#define REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK 0x00000001L
#define REMOTE_PROTOCOL_INFO_FLAG_OFFLINE 0x00000002L
#endif
/* Symbolic link flags */
#if (_WIN32_WINNT >= 0x0600)
#define SYMBOLIC_LINK_FLAG_DIRECTORY 0x00000001L
#define VALID_SYMBOLIC_LINK_FLAGS SYMBOLIC_LINK_FLAG_DIRECTORY
#endif
/* Aliases for types defined in winnt.h */
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;
#if defined(_X86_)
typedef PLDT_ENTRY LPLDT_ENTRY;
#else
typedef LPVOID LPLDT_ENTRY;
#endif
typedef PCONTEXT LPCONTEXT;
typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD;
typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS;
#if (_WIN32_WINNT >= 0x0500)
typedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
#endif
#if (_WIN32_WINNT >= 0x0600)
typedef RTL_RUN_ONCE INIT_ONCE;
typedef PRTL_RUN_ONCE PINIT_ONCE;
typedef PRTL_RUN_ONCE LPINIT_ONCE;
#endif
typedef RTL_SRWLOCK SRWLOCK;
typedef RTL_SRWLOCK *PSRWLOCK;
typedef RTL_CONDITION_VARIABLE CONDITION_VARIABLE;
typedef RTL_CONDITION_VARIABLE *PCONDITION_VARIABLE;
/* Opaque data types */
typedef struct _PROC_THREAD_ATTRIBUTE_LIST *PPROC_THREAD_ATTRIBUTE_LIST;
typedef struct _PROC_THREAD_ATTRIBUTE_LIST *LPPROC_THREAD_ATTRIBUTE_LIST;
/* Structure for asynchronous I/O */
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED;
typedef OVERLAPPED *LPOVERLAPPED;
/* Overlapped entry */
typedef struct _OVERLAPPED_ENTRY {
ULONG_PTR lpCompletionKey;
LPOVERLAPPED lpOverlapped;
ULONG_PTR Internal;
DWORD dwNumberOfBytesTransferred;
} OVERLAPPED_ENTRY;
typedef OVERLAPPED_ENTRY *LPOVERLAPPED_ENTRY;
/* Kernel object security attributes */
typedef struct _SECURITY_ATTRIBUTES {
DWORD nLength;
LPVOID lpSecurityDescriptor;
BOOL bInheritHandle;
} SECURITY_ATTRIBUTES;
typedef SECURITY_ATTRIBUTES *PSECURITY_ATTRIBUTES;
typedef SECURITY_ATTRIBUTES *LPSECURITY_ATTRIBUTES;
/* Process information returned by CreateProcess() */
typedef struct _PROCESS_INFORMATION {
HANDLE hProcess;
HANDLE hThread;
DWORD dwProcessId;
DWORD dwThreadId;
} PROCESS_INFORMATION;
typedef PROCESS_INFORMATION *PPROCESS_INFORMATION;
typedef PROCESS_INFORMATION *LPPROCESS_INFORMATION;
/* File time */
#ifndef _FILETIME_
#define _FILETIME_
typedef struct _FILETIME {
DWORD dwLowDateTime;
DWORD dwHighDateTime;
} FILETIME;
typedef FILETIME *PFILETIME;
typedef FILETIME *LPFILETIME;
#endif
/* System time */
typedef struct _SYSTEMTIME {
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;
typedef SYSTEMTIME *PSYSTEMTIME;
typedef SYSTEMTIME *LPSYSTEMTIME;
/* Run once callback */
#if (_WIN32_WINNT >= 0x0600)
typedef BOOL (WINAPI *PINIT_ONCE_FN)( PINIT_ONCE, PVOID, PVOID * );
#endif
/* Thread procedure */
typedef DWORD (WINAPI *PTHREAD_START_ROUTINE)( LPVOID );
typedef PTHREAD_START_ROUTINE LPTHREAD_START_ROUTINE;
/* Fiber procedure */
#if (_WIN32_WINNT >= 0x0400)
typedef VOID (WINAPI *PFIBER_START_ROUTINE)( LPVOID );
typedef PFIBER_START_ROUTINE LPFIBER_START_ROUTINE;
#endif
/* Communications properties */
typedef struct _COMMPROP {
WORD wPacketLength;
WORD wPacketVersion;
DWORD dwServiceMask;
DWORD dwReserved1;
DWORD dwMaxTxQueue;
DWORD dwMaxRxQueue;
DWORD dwMaxBaud;
DWORD dwProvSubType;
DWORD dwProvCapabilities;
DWORD dwSettableParams;
DWORD dwSettableBaud;
WORD wSettableData;
WORD wSettableStopParity;
DWORD dwCurrentTxQueue;
DWORD dwCurrentRxQueue;
DWORD dwProvSpec1;
DWORD dwProvSpec2;
WCHAR wcProvChar[1];
} COMMPROP;
typedef COMMPROP *LPCOMMPROP;
/* Communications status */
typedef struct _COMSTAT {
DWORD fCtsHold : 1;
DWORD fDsrHold : 1;
DWORD fRlsdHold : 1;
DWORD fXoffHold : 1;
DWORD fXoffSent : 1;
DWORD fEof : 1;
DWORD fTxim : 1;
DWORD fReserved : 25;
DWORD cbInQue;
DWORD cbOutQue;
} COMSTAT;
typedef COMSTAT *LPCOMSTAT;
/* Communications device settings */
typedef struct _DCB {
DWORD DCBlength;
DWORD BaudRate;
DWORD fBinary : 1;
DWORD fParity : 1;
DWORD fOutxCtsFlow : 1;
DWORD fOutxDsrFlow : 1;
DWORD fDtrControl : 2;
DWORD fDsrSensitivity : 1;
DWORD fTXContinueOnXoff : 1;
DWORD fOutX : 1;
DWORD fInX : 1;
DWORD fErrorChar : 1;
DWORD fNull : 1;
DWORD fRtsControl : 2;
DWORD fAbortOnError : 1;
DWORD fDummy2 : 17;
WORD wReserved;
WORD XonLim;
WORD XoffLim;
BYTE ByteSize;
BYTE Parity;
BYTE StopBits;
char XonChar;
char XoffChar;
char ErrorChar;
char EofChar;
char EvtChar;
WORD wReserved1;
} DCB;
typedef DCB *LPDCB;
/* Communications timeouts */
typedef struct _COMMTIMEOUTS {
DWORD ReadIntervalTimeout;
DWORD ReadTotalTimeoutMultiplier;
DWORD ReadTotalTimeoutConstant;
DWORD WriteTotalTimeoutMultiplier;
DWORD WriteTotalTimeoutConstant;
} COMMTIMEOUTS;
typedef COMMTIMEOUTS *LPCOMMTIMEOUTS;
/* Communications configuration */
typedef struct _COMMCONFIG {
DWORD dwSize;
WORD wVersion;
WORD wReserved;
DCB dcb;
DWORD dwProviderSubType;
DWORD dwProviderOffset;
DWORD dwProviderSize;
WCHAR wcProviderData[1];
} COMMCONFIG;
typedef COMMCONFIG *LPCOMMCONFIG;
/* System information */
typedef struct _SYSTEM_INFO {
union {
DWORD dwOemId;
struct {
WORD wProcessorArchitecture;
WORD wReserved;
};
};
DWORD dwPageSize;
LPVOID lpMinimumApplicationAddress;
LPVOID lpMaximumApplicationAddress;
DWORD_PTR dwActiveProcessorMask;
DWORD dwNumberOfProcessors;
DWORD dwProcessorType;
DWORD dwAllocationGranularity;
WORD wProcessorLevel;
WORD wProcessorRevision;
} SYSTEM_INFO;
typedef SYSTEM_INFO *LPSYSTEM_INFO;
/* Memory status */
typedef struct _MEMORYSTATUS {
DWORD dwLength;
DWORD dwMemoryLoad;
SIZE_T dwTotalPhys;
SIZE_T dwAvailPhys;
SIZE_T dwTotalPageFile;
SIZE_T dwAvailPageFile;
SIZE_T dwTotalVirtual;
SIZE_T dwAvailVirtual;
} MEMORYSTATUS;
typedef MEMORYSTATUS *LPMEMORYSTATUS;
/* Exception debug information */
typedef struct _EXCEPTION_DEBUG_INFO {
EXCEPTION_RECORD ExceptionRecord;
DWORD dwFirstChance;
} EXCEPTION_DEBUG_INFO;
typedef EXCEPTION_DEBUG_INFO *LPEXCEPTION_DEBUG_INFO;
/* Create thread debug information */
typedef struct _CREATE_THREAD_DEBUG_INFO {
HANDLE hThread;
LPVOID lpThreadLocalBase;
LPTHREAD_START_ROUTINE lpStartAddress;
} CREATE_THREAD_DEBUG_INFO;
typedef CREATE_THREAD_DEBUG_INFO *LPCREATE_THREAD_DEBUG_INFO;
/* Create process debug information */
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;
typedef CREATE_PROCESS_DEBUG_INFO *LPCREATE_PROCESS_DEBUG_INFO;
/* Exit thread debug information */
typedef struct _EXIT_THREAD_DEBUG_INFO {
DWORD dwExitCode;
} EXIT_THREAD_DEBUG_INFO;
typedef EXIT_THREAD_DEBUG_INFO *LPEXIT_THREAD_DEBUG_INFO;
/* Exit process debug information */
typedef struct _EXIT_PROCESS_DEBUG_INFO {
DWORD dwExitCode;
} EXIT_PROCESS_DEBUG_INFO;
typedef EXIT_PROCESS_DEBUG_INFO *LPEXIT_PROCESS_DEBUG_INFO;
/* Load DLL debug information */
typedef struct _LOAD_DLL_DEBUG_INFO {
HANDLE hFile;
LPVOID lpBaseOfDll;
DWORD dwDebugInfoFileOffset;
DWORD nDebugInfoSize;
LPVOID lpImageName;
WORD fUnicode;
} LOAD_DLL_DEBUG_INFO;
typedef LOAD_DLL_DEBUG_INFO *LPLOAD_DLL_DEBUG_INFO;
/* Unload DLL debug information */
typedef struct _UNLOAD_DLL_DEBUG_INFO {
LPVOID lpBaseOfDll;
} UNLOAD_DLL_DEBUG_INFO;
typedef UNLOAD_DLL_DEBUG_INFO *LPUNLOAD_DLL_DEBUG_INFO;
/* Debug string information */
typedef struct _OUTPUT_DEBUG_STRING_INFO {
LPSTR lpDebugStringData;
WORD fUnicode;
WORD nDebugStringLength;
} OUTPUT_DEBUG_STRING_INFO;
typedef OUTPUT_DEBUG_STRING_INFO *LPOUTPUT_DEBUG_STRING_INFO;
/* Debug error information */
typedef struct _RIP_INFO {
DWORD dwError;
DWORD dwType;
} RIP_INFO;
typedef RIP_INFO *LPRIP_INFO;
/* Debug event */
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;
typedef DEBUG_EVENT *LPDEBUG_EVENT;
/* JIT debugging information */
typedef struct _JIT_DEBUG_INFO {
DWORD dwSize;
DWORD dwProcessorArchitecture;
DWORD dwThreadID;
DWORD dwReserved0;
ULONG64 lpExceptionAddress;
ULONG64 lpExceptionRecord;
ULONG64 lpContextRecord;
} JIT_DEBUG_INFO;
typedef JIT_DEBUG_INFO *PJIT_DEBUG_INFO;
typedef JIT_DEBUG_INFO JIT_DEBUG_INFO32;
typedef JIT_DEBUG_INFO *PJIT_DEBUG_INFO32;
typedef JIT_DEBUG_INFO JIT_DEBUG_INFO64;
typedef JIT_DEBUG_INFO *PJIT_DEBUG_INFO64;
/* OpenFile() structure */
typedef struct _OFSTRUCT {
BYTE cBytes;
BYTE fFixedDisk;
WORD nErrCode;
WORD Reserved1;
WORD Reserved2;
CHAR szPathName[OFS_MAXPATHNAME];
} OFSTRUCT;
typedef OFSTRUCT *POFSTRUCT;
typedef OFSTRUCT *LPOFSTRUCT;
/* Memory status (extended version) */
typedef struct _MEMORYSTATUSEX {
DWORD dwLength;
DWORD dwMemoryLoad;
DWORDLONG ullTotalPhys;
DWORDLONG ullAvailPhys;
DWORDLONG ullTotalPageFile;
DWORDLONG ullAvailPageFile;
DWORDLONG ullTotalVirtual;
DWORDLONG ullAvailVirtual;
DWORDLONG ullAvailExtendedVirtual;
} MEMORYSTATUSEX;
typedef MEMORYSTATUSEX *LPMEMORYSTATUSEX;
/* Process heap entry */
typedef struct _PROCESS_HEAP_ENTRY {
PVOID lpData;
DWORD cbData;
BYTE cbOverhead;
BYTE iRegionIndex;
WORD wFlags;
union {
struct {
HANDLE hMem;
DWORD dwReserved[3];
} Block;
struct {
DWORD dwCommittedSize;
DWORD dwUnCommittedSize;
LPVOID lpFirstBlock;
LPVOID lpLastBlock;
} Region;
};
} PROCESS_HEAP_ENTRY;
typedef PROCESS_HEAP_ENTRY *PPROCESS_HEAP_ENTRY;
typedef PROCESS_HEAP_ENTRY *LPPROCESS_HEAP_ENTRY;
/* Unhandled exception filter callback */
typedef LONG (WINAPI *PTOP_LEVEL_EXCEPTION_FILTER)( struct _EXCEPTION_POINTERS * );
typedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
/* Reason context */
#if (_WIN32_WINNT >= 0x0601)
typedef struct _REASON_CONTEXT {
ULONG Version;
DWORD Flags;
union {
struct {
HMODULE LocalizedReasonModule;
ULONG LocalizedReasonId;
ULONG ReasonStringCount;
LPWSTR *ReasonStrings;
} Detailed;
LPWSTR SimpleReasonString;
} Reason;
} REASON_CONTEXT;
typedef REASON_CONTEXT *PREASON_CONTEXT;
typedef REASON_CONTEXT POWER_REQUEST_CONTEXT;
typedef REASON_CONTEXT *PPOWER_REQUEST_CONTEXT;
typedef REASON_CONTEXT *LPPOWER_REQUEST_CONTEXT;
#endif
/* Structure returned by GetFileInformationByHandle() */
typedef struct _BY_HANDLE_FILE_INFORMATION {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD dwVolumeSerialNumber;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
DWORD nNumberOfLinks;
DWORD nFileIndexHigh;
DWORD nFileIndexLow;
} BY_HANDLE_FILE_INFORMATION;
typedef BY_HANDLE_FILE_INFORMATION *PBY_HANDLE_FILE_INFORMATION;
typedef BY_HANDLE_FILE_INFORMATION *LPBY_HANDLE_FILE_INFORMATION;
/* Data execution prevention (DEP) system policy types */
typedef enum _DEP_SYSTEM_POLICY_TYPE {
DEPPolicyAlwaysOff = 0,
DEPPolicyAlwaysOn = 1,
DEPPolicyOptIn = 2,
DEPPolicyOptOut = 3,
DEPTotalPolicyCount = 4
} DEP_SYSTEM_POLICY_TYPE;
/* Time zone information */
typedef struct _TIME_ZONE_INFORMATION {
LONG Bias;
WCHAR StandardName[32];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[32];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
} TIME_ZONE_INFORMATION;
typedef TIME_ZONE_INFORMATION *PTIME_ZONE_INFORMATION;
typedef TIME_ZONE_INFORMATION *LPTIME_ZONE_INFORMATION;
/* Dynamic time zone information */
typedef struct _TIME_DYNAMIC_ZONE_INFORMATION {
LONG Bias;
WCHAR StandardName[32];
SYSTEMTIME StandardDate;
LONG StandardBias;
WCHAR DaylightName[32];
SYSTEMTIME DaylightDate;
LONG DaylightBias;
WCHAR TimeZoneKeyName[128];
BOOLEAN DynamicDaylightTimeDisabled;
} DYNAMIC_TIME_ZONE_INFORMATION;
typedef DYNAMIC_TIME_ZONE_INFORMATION *PDYNAMIC_TIME_ZONE_INFORMATION;
/* Encryption callbacks */
typedef DWORD (WINAPI* PFE_EXPORT_FUNC)( PBYTE, PVOID, ULONG );
typedef DWORD (WINAPI* PFE_IMPORT_FUNC)( PBYTE, PVOID, PULONG );
/* Asynchronous I/O completion callback */
typedef VOID (WINAPI* LPOVERLAPPED_COMPLETION_ROUTINE)( DWORD, DWORD, LPOVERLAPPED );
/* Stream identifier */
typedef struct _WIN32_STREAM_ID {
DWORD dwStreamId;
DWORD dwStreamAttributes;
LARGE_INTEGER Size;
DWORD dwStreamNameSize;
WCHAR cStreamName[ANYSIZE_ARRAY];
} WIN32_STREAM_ID;
typedef WIN32_STREAM_ID *PWIN32_STREAM_ID;
/* Process startup information */
typedef struct _STARTUPINFOA {
DWORD cb;
LPSTR lpReserved;
LPSTR lpDesktop;
LPSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFOA;
typedef STARTUPINFOA *LPSTARTUPINFOA;
typedef struct _STARTUPINFOW {
DWORD cb;
LPWSTR lpReserved;
LPWSTR lpDesktop;
LPWSTR lpTitle;
DWORD dwX;
DWORD dwY;
DWORD dwXSize;
DWORD dwYSize;
DWORD dwXCountChars;
DWORD dwYCountChars;
DWORD dwFillAttribute;
DWORD dwFlags;
WORD wShowWindow;
WORD cbReserved2;
LPBYTE lpReserved2;
HANDLE hStdInput;
HANDLE hStdOutput;
HANDLE hStdError;
} STARTUPINFOW;
typedef STARTUPINFOW *LPSTARTUPINFOW;
#ifdef UNICODE
typedef STARTUPINFOW STARTUPINFO;
typedef LPSTARTUPINFOW LPSTARTUPINFO;
#else
typedef STARTUPINFOA STARTUPINFO;
typedef LPSTARTUPINFOA LPSTARTUPINFO;
#endif
/* Process startup information (extended version) */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _STARTUPINFOEXA {
STARTUPINFOA StartupInfo;
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
} STARTUPINFOEXA;
typedef STARTUPINFOEXA *LPSTARTUPINFOEXA;
typedef struct _STARTUPINFOEXW {
STARTUPINFOW StartupInfo;
LPPROC_THREAD_ATTRIBUTE_LIST lpAttributeList;
} STARTUPINFOEXW;
typedef STARTUPINFOEXW *LPSTARTUPINFOEXW;
#ifdef UNICODE
typedef STARTUPINFOEXW STARTUPINFOEX;
typedef LPSTARTUPINFOEXW LPSTARTUPINFOEX;
#else
typedef STARTUPINFOEXA STARTUPINFOEX;
typedef LPSTARTUPINFOEXA LPSTARTUPINFOEX;
#endif
#endif
/* Structure used with FindFirstFile(), etc. */
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];
} WIN32_FIND_DATAA;
typedef WIN32_FIND_DATAA *PWIN32_FIND_DATAA;
typedef WIN32_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];
} WIN32_FIND_DATAW;
typedef WIN32_FIND_DATAW *PWIN32_FIND_DATAW;
typedef WIN32_FIND_DATAW *LPWIN32_FIND_DATAW;
#ifdef UNICODE
typedef WIN32_FIND_DATAW WIN32_FIND_DATA;
typedef PWIN32_FIND_DATAW PWIN32_FIND_DATA;
typedef LPWIN32_FIND_DATAW LPWIN32_FIND_DATA;
#else
typedef WIN32_FIND_DATAA WIN32_FIND_DATA;
typedef PWIN32_FIND_DATAA PWIN32_FIND_DATA;
typedef LPWIN32_FIND_DATAA LPWIN32_FIND_DATA;
#endif
/* File attribute data */
typedef struct _WIN32_FILE_ATTRIBUTE_DATA {
DWORD dwFileAttributes;
FILETIME ftCreationTime;
FILETIME ftLastAccessTime;
FILETIME ftLastWriteTime;
DWORD nFileSizeHigh;
DWORD nFileSizeLow;
} WIN32_FILE_ATTRIBUTE_DATA;
typedef WIN32_FILE_ATTRIBUTE_DATA *LPWIN32_FILE_ATTRIBUTE_DATA;
/* Waitable timer callback */
#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
typedef VOID (WINAPI *PTIMERAPCROUTINE)( LPVOID, DWORD, DWORD );
#endif
/* Memory resource notification types */
#if (_WIN32_WINNT >= 0x0501)
typedef enum _MEMORY_RESOURCE_NOTIFICATION_TYPE {
LowMemoryResourceNotification,
HighMemoryResourceNotification
} MEMORY_RESOURCE_NOTIFICATION_TYPE;
#endif
/* Process and thread attribute numbers */
#if (_WIN32_WINNT >= 0x0600)
typedef enum _PROC_THREAD_ATTRIBUTE_NUM {
ProcThreadAttributeParentProcess = 0,
ProcThreadAttributeExtendedFlags = 1,
ProcThreadAttributeHandleList = 2,
ProcThreadAttributeGroupAffinity = 3,
ProcThreadAttributePreferredNode = 4,
ProcThreadAttributeIdealProcessor = 5,
ProcThreadAttributeUmsThread = 6,
ProcThreadAttributeMitigationPolicy = 7,
ProcThreadAttributeMax = 8
} PROC_THREAD_ATTRIBUTE_NUM;
#endif
/* Resource enumeration callbacks */
typedef BOOL (CALLBACK *ENUMRESTYPEPROCA)( HMODULE, LPSTR, LONG_PTR );
typedef BOOL (CALLBACK *ENUMRESTYPEPROCW)( HMODULE, LPWSTR, LONG_PTR );
typedef BOOL (CALLBACK *ENUMRESNAMEPROCA)( HMODULE, LPCSTR, LPSTR, LONG_PTR );
typedef BOOL (CALLBACK *ENUMRESNAMEPROCW)( HMODULE, LPCWSTR, LPWSTR, LONG_PTR );
typedef BOOL (CALLBACK *ENUMRESLANGPROCA)( HMODULE, LPCSTR, LPCSTR, WORD, LONG_PTR );
typedef BOOL (CALLBACK *ENUMRESLANGPROCW)( HMODULE, LPCWSTR, LPCWSTR, WORD, LONG_PTR );
#ifdef UNICODE
#define ENUMRESTYPEPROC ENUMRESTYPEPROCW
#define ENUMRESNAMEPROC ENUMRESNAMEPROCW
#define ENUMRESLANGPROC ENUMRESLANGPROCW
#else
#define ENUMRESTYPEPROC ENUMRESTYPEPROCA
#define ENUMRESNAMEPROC ENUMRESNAMEPROCA
#define ENUMRESLANGPROC ENUMRESLANGPROCA
#endif
/* GetFileAttributesEx() information levels */
typedef enum _GET_FILEEX_INFO_LEVELS {
GetFileExInfoStandard,
GetFileExMaxInfoLevel
} GET_FILEEX_INFO_LEVELS;
/* FindFirstFileEx() information levels */
#if (_WIN32_WINNT >= 0x0400)
typedef enum _FINDEX_INFO_LEVELS {
FindExInfoStandard = 0,
FindExInfoBasic = 1,
FindExInfoMaxInfoLevel = 2
} FINDEX_INFO_LEVELS;
#endif
/* FindFirstFileEx() search operations */
#if (_WIN32_WINNT >= 0x0400)
typedef enum _FINDEX_SEARCH_OPS {
FindExSearchNameMatch,
FindExSearchLimitToDirectories,
FindExSearchLimitToDevices,
FindExSearchMaxSearchOp
} FINDEX_SEARCH_OPS;
#endif
/* Copy progress callback */
#if (_WIN32_WINNT >= 0x0400)
typedef DWORD (WINAPI *LPPROGRESS_ROUTINE)( LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, LARGE_INTEGER, DWORD, DWORD, HANDLE, HANDLE, LPVOID );
#endif
/* Stream information levels */
#if (_WIN32_WINNT >= 0x0501)
typedef enum _STREAM_INFO_LEVELS {
FindStreamInfoStandard,
FindStreamInfoMaxInfoLevel
} STREAM_INFO_LEVELS;
#endif
/* Structure used with FindFirstStreamW(), etc. */
#if (_WIN32_WINNT >= 0x0501)
typedef struct _WIN32_FIND_STREAM_DATA {
LARGE_INTEGER StreamSize;
WCHAR cStreamName[MAX_PATH + 36];
} WIN32_FIND_STREAM_DATA;
typedef WIN32_FIND_STREAM_DATA *PWIN32_FIND_STREAM_DATA;
#endif
/* Pipe attribute types */
typedef enum {
PipeAttribute,
PipeConnectionAttribute,
PipeHandleAttribute
} PIPE_ATTRIBUTE_TYPE;
/* Event log full information */
typedef struct _EVENTLOG_FULL_INFORMATION {
DWORD dwFull;
} EVENTLOG_FULL_INFORMATION;
typedef EVENTLOG_FULL_INFORMATION *LPEVENTLOG_FULL_INFORMATION;
/* Thread pool callback */
#if (_WIN32_WINNT >= 0x0600)
typedef VOID (WINAPI *PTP_WIN32_IO_CALLBACK)( PTP_CALLBACK_INSTANCE, PVOID, PVOID, ULONG, ULONG_PTR, PTP_IO );
#endif
/* Computer name formats */
#if (_WIN32_WINNT >= 0x0500)
typedef enum _COMPUTER_NAME_FORMAT {
ComputerNameNetBIOS,
ComputerNameDnsHostname,
ComputerNameDnsDomain,
ComputerNameDnsFullyQualified,
ComputerNamePhysicalNetBIOS,
ComputerNamePhysicalDnsHostname,
ComputerNamePhysicalDnsDomain,
ComputerNamePhysicalDnsFullyQualified,
ComputerNameMax
} COMPUTER_NAME_FORMAT;
#endif
/* Hardware profile information */
#if (_WIN32_WINNT >= 0x0400)
typedef struct tagHW_PROFILE_INFOA {
DWORD dwDockInfo;
CHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
CHAR szHwProfileName[MAX_PROFILE_LEN];
} HW_PROFILE_INFOA;
typedef HW_PROFILE_INFOA *LPHW_PROFILE_INFOA;
typedef struct tagHW_PROFILE_INFOW {
DWORD dwDockInfo;
WCHAR szHwProfileGuid[HW_PROFILE_GUIDLEN];
WCHAR szHwProfileName[MAX_PROFILE_LEN];
} HW_PROFILE_INFOW;
typedef HW_PROFILE_INFOW *LPHW_PROFILE_INFOW;
#ifdef UNICODE
typedef HW_PROFILE_INFOW HW_PROFILE_INFO;
typedef LPHW_PROFILE_INFOW LPHW_PROFILE_INFO;
#else
typedef HW_PROFILE_INFOA HW_PROFILE_INFO;
typedef LPHW_PROFILE_INFOA LPHW_PROFILE_INFO;
#endif
#endif
/* System power status */
#if (WINVER >= 0x0400)
typedef struct _SYSTEM_POWER_STATUS {
BYTE ACLineStatus;
BYTE BatteryFlag;
BYTE BatteryLifePercent;
BYTE Reserved1;
DWORD BatteryLifeTime;
DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS;
typedef SYSTEM_POWER_STATUS *LPSYSTEM_POWER_STATUS;
#endif
/* Activation context */
#if (_WIN32_WINNT >= 0x0500)
typedef struct tagACTCTXA {
ULONG cbSize;
DWORD dwFlags;
LPCSTR lpSource;
USHORT wProcessorArchitecture;
LANGID wLangId;
LPCSTR lpAssemblyDirectory;
LPCSTR lpResourceName;
LPCSTR lpApplicationName;
HMODULE hModule;
} ACTCTXA;
typedef ACTCTXA *PACTCTXA;
typedef const ACTCTXA *PCACTCTXA;
typedef struct tagACTCTXW {
ULONG cbSize;
DWORD dwFlags;
LPCWSTR lpSource;
USHORT wProcessorArchitecture;
LANGID wLangId;
LPCWSTR lpAssemblyDirectory;
LPCWSTR lpResourceName;
LPCWSTR lpApplicationName;
HMODULE hModule;
} ACTCTXW;
typedef ACTCTXW *PACTCTXW;
typedef const ACTCTXW *PCACTCTXW;
#ifdef UNICODE
typedef ACTCTXW ACTCTXW;
typedef PACTCTXW PACTCTXW;
typedef PCACTCTXW PCACTCTXW;
#else
typedef ACTCTXA ACTCTXA;
typedef PACTCTXA PACTCTXA;
typedef PCACTCTXA PCACTCTXA;
#endif
#endif
/* Activation context section keyed data (version from build 2600) */
#if (_WIN32_WINNT >= 0x0500)
typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
ULONG cbSize;
ULONG ulDataFormatVersion;
PVOID lpData;
ULONG ulLength;
PVOID lpSectionGlobalData;
ULONG ulSectionGlobalDataLength;
PVOID lpSectionBase;
ULONG ulSectionTotalLength;
HANDLE hActCtx;
ULONG ulAssemblyRosterIndex;
} ACTCTX_SECTION_KEYED_DATA_2600;
typedef ACTCTX_SECTION_KEYED_DATA_2600 *PACTCTX_SECTION_KEYED_DATA_2600;
typedef const ACTCTX_SECTION_KEYED_DATA_2600 *PCACTCTX_SECTION_KEYED_DATA_2600;
#endif
/* Activation context section keyed data assembly metadata */
#if (_WIN32_WINNT >= 0x0500)
typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
PVOID lpInformation;
PVOID lpSectionBase;
ULONG ulSectionLength;
PVOID lpSectionGlobalDataBase;
ULONG ulSectionGlobalDataLength;
} ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
typedef ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
#endif
/* Activation context section keyed data */
#if (_WIN32_WINNT >= 0x0500)
typedef struct tagACTCTX_SECTION_KEYED_DATA {
ULONG cbSize;
ULONG ulDataFormatVersion;
PVOID lpData;
ULONG ulLength;
PVOID lpSectionGlobalData;
ULONG ulSectionGlobalDataLength;
PVOID lpSectionBase;
ULONG ulSectionTotalLength;
HANDLE hActCtx;
ULONG ulAssemblyRosterIndex;
ULONG ulFlags;
ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA AssemblyMetadata;
} ACTCTX_SECTION_KEYED_DATA;
typedef ACTCTX_SECTION_KEYED_DATA *PACTCTX_SECTION_KEYED_DATA;
typedef const ACTCTX_SECTION_KEYED_DATA *PCACTCTX_SECTION_KEYED_DATA;
#endif
/* Activation context basic information */
#if (_WIN32_WINNT >= 0x0500)
typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
HANDLE hActCtx;
DWORD dwFlags;
} ACTIVATION_CONTEXT_BASIC_INFORMATION;
typedef ACTIVATION_CONTEXT_BASIC_INFORMATION *PACTIVATION_CONTEXT_BASIC_INFORMATION;
typedef const ACTIVATION_CONTEXT_BASIC_INFORMATION *PCACTIVATION_CONTEXT_BASIC_INFORMATION;
#endif
/* Application recovery callback */
typedef DWORD (WINAPI *APPLICATION_RECOVERY_CALLBACK)( PVOID );
/* By handle file information classes */
#if (_WIN32_WINNT >= 0x0600)
typedef enum _FILE_INFO_BY_HANDLE_CLASS {
FileBasicInfo = 0,
FileStandardInfo = 1,
FileNameInfo = 2,
FileRenameInfo = 3,
FileDispositionInfo = 4,
FileAllocationInfo = 5,
FileEndOfFileInfo = 6,
FileStreamInfo = 7,
FileCompressionInfo = 8,
FileAttributeTagInfo = 9,
FileIdBothDirectoryInfo = 10,
FileIdBothDirectoryRestartInfo = 11,
FileIoPriorityHintInfo = 12,
FileRemoteProtocolInfo = 13,
MaximumFileInfoByHandleClass = 14
} FILE_INFO_BY_HANDLE_CLASS;
typedef FILE_INFO_BY_HANDLE_CLASS *PFILE_INFO_BY_HANDLE_CLASS;
#endif
/* File basic information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_BASIC_INFO {
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
DWORD FileAttributes;
} FILE_BASIC_INFO;
typedef FILE_BASIC_INFO *PFILE_BASIC_INFO;
#endif
/* File standard information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_STANDARD_INFO {
LARGE_INTEGER AllocationSize;
LARGE_INTEGER EndOfFile;
DWORD NumberOfLinks;
BOOLEAN DeletePending;
BOOLEAN Directory;
} FILE_STANDARD_INFO;
typedef FILE_STANDARD_INFO *PFILE_STANDARD_INFO;
#endif
/* File name information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_NAME_INFO {
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_NAME_INFO;
typedef FILE_NAME_INFO *PFILE_NAME_INFO;
#endif
/* File rename information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_RENAME_INFO {
BOOLEAN ReplaceIfExists;
HANDLE RootDirectory;
DWORD FileNameLength;
WCHAR FileName[1];
} FILE_RENAME_INFO;
typedef FILE_RENAME_INFO *PFILE_RENAME_INFO;
#endif
/* File allocation information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_ALLOCATION_INFO {
LARGE_INTEGER AllocationSize;
} FILE_ALLOCATION_SIZE;
typedef FILE_ALLOCATION_SIZE *PFILE_ALLOCATION_SIZE;
#endif
/* File end of file information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_END_OF_FILE_INFO {
LARGE_INTEGER EndOfFile;
} FILE_END_OF_FILE_INFO;
typedef FILE_END_OF_FILE_INFO *PFILE_END_OF_FILE_INFO;
#endif
/* File stream information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_STREAM_INFO {
DWORD NextEntryOffset;
DWORD StreamNameLength;
LARGE_INTEGER StreamSize;
LARGE_INTEGER StreamAllocationSize;
WCHAR StreamName[1];
} FILE_STREAM_INFO;
typedef FILE_STREAM_INFO *PFILE_STREAM_INFO;
#endif
/* File compression information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_COMPRESSION_INFO {
LARGE_INTEGER CompressedFileSize;
WORD CompressionFormat;
UCHAR CompressionUnitShift;
UCHAR ChunkShift;
UCHAR ClusterShift;
UCHAR Reserved[3];
} FILE_COMPRESSION_INFO;
typedef FILE_COMPRESSION_INFO *PFILE_COMPRESSION_INFO;
#endif
/* File attribute tag information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_ATTRIBUTE_TAG_INFO {
DWORD FileAttributes;
DWORD ReparseTag;
} FILE_ATTRIBUTE_TAG_INFO;
typedef FILE_ATTRIBUTE_TAG_INFO *PFILE_ATTRIBUTE_TAG_INFO;
#endif
/* File disposition information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_DISPOSITION_INFO {
BOOLEAN DeleteFile;
} FILE_DISPOSITION_INFO;
typedef FILE_DISPOSITION_INFO *PFILE_DISPOSITION_INFO;
#endif
/* File ID both directory information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_ID_BOTH_DIR_INFO {
DWORD NextEntryOffset;
DWORD FileIndex;
LARGE_INTEGER CreationTime;
LARGE_INTEGER LastAccessTime;
LARGE_INTEGER LastWriteTime;
LARGE_INTEGER ChangeTime;
LARGE_INTEGER EndOfFile;
LARGE_INTEGER AllocationSize;
DWORD FileAttributes;
DWORD FileNameLength;
DWORD EaSize;
CCHAR ShortNameLength;
WCHAR ShortName[12];
LARGE_INTEGER FileId;
WCHAR FileName[1];
} FILE_ID_BOTH_DIR_INFO;
typedef FILE_ID_BOTH_DIR_INFO *PFILE_ID_BOTH_DIR_INFO;
#endif
/* I/O priority hint types */
#if (_WIN32_WINNT >= 0x0600)
typedef enum _PRIORITY_HINT {
IoPriorityHintVeryLow = 0,
IoPriorityHintLow = 1,
IoPriorityHintNormal = 2,
MaximumIoPriorityHintType = 3
} PRIORITY_HINT;
#endif
/* File I/O priority hint information */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_IO_PRIORITY_HINT_INFO {
PRIORITY_HINT PriorityHint;
} FILE_IO_PRIORITY_HINT_INFO;
typedef FILE_IO_PRIORITY_HINT_INFO *PFILE_IO_PRIORITY_HINT_INFO;
#endif
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_REMOTE_PROTOCOL_INFO {
USHORT StructureVersion;
USHORT StructureSize;
DWORD Protocol;
USHORT ProtocolMajorVersion;
USHORT ProtocolMinorVersion;
USHORT ProtocolRevision;
USHORT Reserved;
DWORD Flags;
struct {
DWORD Reserved[8];
} GenericReserved;
struct {
DWORD Reserved[16];
} ProtocolSpecificReserved;
} FILE_REMOTE_PROTOCOL_INFO;
typedef FILE_REMOTE_PROTOCOL_INFO *PFILE_REMOTE_PROTOCOL_INFO;
#endif
/* File ID types */
#if (_WIN32_WINNT >= 0x0600)
typedef enum _FILE_ID_TYPE {
FileIdType,
ObjectIdType,
MaximumFileIdType
} FILE_ID_TYPE;
typedef FILE_ID_TYPE *PFILE_ID_TYPE;
#endif
/* File ID descriptor */
#if (_WIN32_WINNT >= 0x0600)
typedef struct _FILE_ID_DESCRIPTOR {
DWORD dwSize;
FILE_ID_TYPE Type;
union {
LARGE_INTEGER FileId;
GUID ObjectId;
};
} FILE_ID_DESCRIPTOR;
typedef FILE_ID_DESCRIPTOR *LPFILE_ID_DESCRIPTOR;
#endif
/* Entry point for Win32 applications */
int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int );
int WINAPI wWinMain( HINSTANCE, HINSTANCE, LPWSTR, int );
/* Functions in KERNEL32.DLL */
WINBASEAPI VOID WINAPI AcquireSRWLockExclusive( PSRWLOCK );
WINBASEAPI VOID WINAPI AcquireSRWLockShared( PSRWLOCK );
WINBASEAPI ATOM WINAPI AddAtomA( LPCSTR );
WINBASEAPI ATOM WINAPI AddAtomW( LPCWSTR );
WINBASEAPI VOID WINAPI ApplicationRecoveryFinished( BOOL );
WINBASEAPI HRESULT WINAPI ApplicationRecoveryInProgress( PBOOL );
WINBASEAPI BOOL WINAPI AreFileApisANSI( VOID );
WINBASEAPI BOOL WINAPI BackupRead( HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID * );
WINBASEAPI BOOL WINAPI BackupSeek( HANDLE, DWORD, DWORD, LPDWORD, LPDWORD, LPVOID * );
WINBASEAPI BOOL WINAPI BackupWrite( HANDLE, LPBYTE, DWORD, LPDWORD, BOOL, BOOL, LPVOID * );
WINBASEAPI BOOL WINAPI Beep( DWORD, DWORD );
WINBASEAPI HANDLE WINAPI BeginUpdateResourceA( LPCSTR, BOOL );
WINBASEAPI HANDLE WINAPI BeginUpdateResourceW( LPCWSTR, BOOL );
WINBASEAPI BOOL WINAPI BuildCommDCBA( LPCSTR, LPDCB );
WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsA( LPCSTR, LPDCB, LPCOMMTIMEOUTS );
WINBASEAPI BOOL WINAPI BuildCommDCBAndTimeoutsW( LPCWSTR, LPDCB, LPCOMMTIMEOUTS );
WINBASEAPI BOOL WINAPI BuildCommDCBW( LPCWSTR, LPDCB );
WINBASEAPI BOOL WINAPI CallNamedPipeA( LPCSTR, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, DWORD );
WINBASEAPI BOOL WINAPI CallNamedPipeW( LPCWSTR, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, DWORD );
WINBASEAPI BOOL WINAPI CancelDeviceWakeupRequest( HANDLE );
WINBASEAPI BOOL WINAPI CancelIo( HANDLE );
WINBASEAPI BOOL WINAPI CancelIoEx( HANDLE, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI CancelSynchronousIo( HANDLE );
WINBASEAPI BOOL WINAPI ClearCommBreak( HANDLE );
WINBASEAPI BOOL WINAPI ClearCommError( HANDLE, LPDWORD, LPCOMSTAT );
WINBASEAPI BOOL WINAPI CloseHandle( HANDLE );
WINBASEAPI BOOL WINAPI CommConfigDialogA( LPCSTR, HWND, LPCOMMCONFIG );
WINBASEAPI BOOL WINAPI CommConfigDialogW( LPCWSTR, HWND, LPCOMMCONFIG );
WINBASEAPI LONG WINAPI CompareFileTime( CONST FILETIME *, CONST FILETIME * );
WINBASEAPI BOOL WINAPI ConnectNamedPipe( HANDLE, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI ContinueDebugEvent( DWORD, DWORD, DWORD );
WINBASEAPI BOOL WINAPI CopyFileA( LPCSTR, LPCSTR, BOOL );
WINBASEAPI BOOL WINAPI CopyFileW( LPCWSTR, LPCWSTR, BOOL );
WINBASEAPI BOOL WINAPI CreateDirectoryA( LPCSTR, LPSECURITY_ATTRIBUTES );
WINBASEAPI BOOL WINAPI CreateDirectoryExA( LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES );
WINBASEAPI BOOL WINAPI CreateDirectoryExW( LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES );
WINBASEAPI BOOL WINAPI CreateDirectoryW( LPCWSTR, LPSECURITY_ATTRIBUTES );
WINBASEAPI HANDLE WINAPI CreateEventA( LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI CreateEventW( LPSECURITY_ATTRIBUTES, BOOL, BOOL, LPCWSTR );
WINBASEAPI HANDLE WINAPI CreateFileA( LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE );
WINBASEAPI HANDLE WINAPI CreateFileMappingA( HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR );
WINBASEAPI HANDLE WINAPI CreateFileMappingW( HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR );
WINBASEAPI HANDLE WINAPI CreateFileW( LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE );
WINBASEAPI HANDLE WINAPI CreateIoCompletionPort( HANDLE, HANDLE, ULONG_PTR, DWORD );
WINBASEAPI HANDLE WINAPI CreateMailslotA( LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES );
WINBASEAPI HANDLE WINAPI CreateMailslotW( LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES );
WINBASEAPI HANDLE WINAPI CreateMutexA( LPSECURITY_ATTRIBUTES, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI CreateMutexW( LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR );
WINBASEAPI HANDLE WINAPI CreateNamedPipeA( LPCSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES );
WINBASEAPI HANDLE WINAPI CreateNamedPipeW( LPCWSTR, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, LPSECURITY_ATTRIBUTES );
WINBASEAPI BOOL WINAPI CreatePipe( PHANDLE, PHANDLE, LPSECURITY_ATTRIBUTES, DWORD );
WINBASEAPI BOOL WINAPI CreateProcessA( LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION );
WINBASEAPI BOOL WINAPI CreateProcessW( LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION );
WINBASEAPI HANDLE WINAPI CreateRemoteThread( HANDLE, LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD );
WINBASEAPI HANDLE WINAPI CreateRemoteThreadEx( HANDLE, LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPPROC_THREAD_ATTRIBUTE_LIST, LPDWORD );
WINBASEAPI HANDLE WINAPI CreateSemaphoreA( LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR );
WINBASEAPI HANDLE WINAPI CreateSemaphoreW( LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR );
WINBASEAPI DWORD WINAPI CreateTapePartition( HANDLE, DWORD, DWORD, DWORD );
WINBASEAPI HANDLE WINAPI CreateThread( LPSECURITY_ATTRIBUTES, SIZE_T, LPTHREAD_START_ROUTINE, LPVOID, DWORD, LPDWORD );
WINBASEAPI BOOL WINAPI DebugActiveProcess( DWORD );
WINBASEAPI BOOL WINAPI DebugActiveProcessStop( DWORD );
WINBASEAPI VOID WINAPI DebugBreak( VOID );
WINBASEAPI BOOL WINAPI DebugBreakProcess( HANDLE );
WINBASEAPI BOOL WINAPI DebugSetProcessKillOnExit( BOOL );
WINBASEAPI PVOID WINAPI DecodePointer( PVOID );
WINBASEAPI PVOID WINAPI DecodeSystemPointer( PVOID );
WINBASEAPI BOOL WINAPI DefineDosDeviceA( DWORD, LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI DefineDosDeviceW( DWORD, LPCWSTR, LPCWSTR );
WINBASEAPI ATOM WINAPI DeleteAtom( ATOM );
WINBASEAPI VOID WINAPI DeleteCriticalSection( LPCRITICAL_SECTION );
WINBASEAPI BOOL WINAPI DeleteFileA( LPCSTR );
WINBASEAPI BOOL WINAPI DeleteFileW( LPCWSTR );
WINBASEAPI BOOL WINAPI DeviceIoControl( HANDLE, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI DisableThreadLibraryCalls( HMODULE );
WINBASEAPI BOOL WINAPI DisconnectNamedPipe( HANDLE );
WINBASEAPI BOOL WINAPI DosDateTimeToFileTime( WORD, WORD, LPFILETIME );
WINBASEAPI BOOL WINAPI DuplicateHandle( HANDLE, HANDLE, HANDLE, LPHANDLE, DWORD, BOOL, DWORD );
WINBASEAPI PVOID WINAPI EncodePointer( PVOID );
WINBASEAPI PVOID WINAPI EncodeSystemPointer( PVOID );
WINBASEAPI BOOL WINAPI EndUpdateResourceA( HANDLE, BOOL );
WINBASEAPI BOOL WINAPI EndUpdateResourceW( HANDLE, BOOL );
WINBASEAPI VOID WINAPI EnterCriticalSection( LPCRITICAL_SECTION );
WINBASEAPI BOOL WINAPI EnumResourceLanguagesA( HMODULE, LPCSTR, LPCSTR, ENUMRESLANGPROCA, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumResourceLanguagesExA( HMODULE, LPCSTR, LPCSTR, ENUMRESLANGPROCA, LONG_PTR, DWORD, LANGID );
WINBASEAPI BOOL WINAPI EnumResourceLanguagesExW( HMODULE, LPCWSTR, LPCWSTR, ENUMRESLANGPROCW, LONG_PTR, DWORD, LANGID );
WINBASEAPI BOOL WINAPI EnumResourceLanguagesW( HMODULE, LPCWSTR, LPCWSTR, ENUMRESLANGPROCW, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumResourceNamesA( HMODULE, LPCSTR, ENUMRESNAMEPROCA, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumResourceNamesExA( HMODULE, LPCSTR, ENUMRESNAMEPROCA, LONG_PTR, DWORD, LANGID );
WINBASEAPI BOOL WINAPI EnumResourceNamesExW( HMODULE, LPCWSTR, ENUMRESNAMEPROCW, LONG_PTR, DWORD, LANGID );
WINBASEAPI BOOL WINAPI EnumResourceNamesW( HMODULE, LPCWSTR, ENUMRESNAMEPROCW, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumResourceTypesA( HMODULE, ENUMRESTYPEPROCA, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumResourceTypesExA( HMODULE, ENUMRESTYPEPROCA, LONG_PTR, DWORD, LANGID );
WINBASEAPI BOOL WINAPI EnumResourceTypesExW( HMODULE, ENUMRESTYPEPROCW, LONG_PTR, DWORD, LANGID );
WINBASEAPI BOOL WINAPI EnumResourceTypesW( HMODULE, ENUMRESTYPEPROCW, LONG_PTR );
WINBASEAPI UINT WINAPI EnumSystemFirmwareTables( DWORD, PVOID, DWORD );
WINBASEAPI DWORD WINAPI EraseTape( HANDLE, DWORD, BOOL );
WINBASEAPI BOOL WINAPI EscapeCommFunction( HANDLE, DWORD );
WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitProcess( UINT );
WINBASEAPI DECLSPEC_NORETURN VOID WINAPI ExitThread( DWORD );
WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsA( LPCSTR, LPSTR, DWORD );
WINBASEAPI DWORD WINAPI ExpandEnvironmentStringsW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI VOID WINAPI FatalAppExitA( UINT, LPCSTR );
WINBASEAPI VOID WINAPI FatalAppExitW( UINT, LPCWSTR );
WINBASEAPI VOID WINAPI FatalExit( int );
WINBASEAPI BOOL WINAPI FileTimeToDosDateTime( CONST FILETIME *, LPWORD, LPWORD );
WINBASEAPI BOOL WINAPI FileTimeToLocalFileTime( CONST FILETIME *, LPFILETIME );
WINBASEAPI BOOL WINAPI FileTimeToSystemTime( CONST FILETIME *, LPSYSTEMTIME );
WINBASEAPI ATOM WINAPI FindAtomA( LPCSTR );
WINBASEAPI ATOM WINAPI FindAtomW( LPCWSTR );
WINBASEAPI BOOL WINAPI FindClose( HANDLE );
WINBASEAPI BOOL WINAPI FindCloseChangeNotification( HANDLE );
WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationA( LPCSTR, BOOL, DWORD );
WINBASEAPI HANDLE WINAPI FindFirstChangeNotificationW( LPCWSTR, BOOL, DWORD );
WINBASEAPI HANDLE WINAPI FindFirstFileA( LPCSTR, LPWIN32_FIND_DATAA );
WINBASEAPI HANDLE WINAPI FindFirstFileW( LPCWSTR, LPWIN32_FIND_DATAW );
WINBASEAPI BOOL WINAPI FindNextChangeNotification( HANDLE );
WINBASEAPI BOOL WINAPI FindNextFileA( HANDLE, LPWIN32_FIND_DATAA );
WINBASEAPI BOOL WINAPI FindNextFileW( HANDLE, LPWIN32_FIND_DATAW );
WINBASEAPI HRSRC WINAPI FindResourceA( HMODULE, LPCSTR, LPCSTR );
WINBASEAPI HRSRC WINAPI FindResourceExA( HMODULE, LPCSTR, LPCSTR, WORD );
WINBASEAPI HRSRC WINAPI FindResourceExW( HMODULE, LPCWSTR, LPCWSTR, WORD );
WINBASEAPI HRSRC WINAPI FindResourceW( HMODULE, LPCWSTR, LPCWSTR );
WINBASEAPI DWORD WINAPI FlsAlloc( PFLS_CALLBACK_FUNCTION );
WINBASEAPI BOOL WINAPI FlsFree( DWORD );
WINBASEAPI PVOID WINAPI FlsGetValue( DWORD );
WINBASEAPI BOOL WINAPI FlsSetValue( DWORD, PVOID );
WINBASEAPI BOOL WINAPI FlushFileBuffers( HANDLE );
WINBASEAPI BOOL WINAPI FlushInstructionCache( HANDLE, LPCVOID, SIZE_T );
WINBASEAPI BOOL WINAPI FlushViewOfFile( LPCVOID, SIZE_T );
WINBASEAPI DWORD WINAPI FormatMessageA( DWORD, LPCVOID, DWORD, DWORD, LPSTR, DWORD, va_list * );
WINBASEAPI DWORD WINAPI FormatMessageW( DWORD, LPCVOID, DWORD, DWORD, LPWSTR, DWORD, va_list * );
WINBASEAPI BOOL WINAPI FreeEnvironmentStringsA( LPCH );
WINBASEAPI BOOL WINAPI FreeEnvironmentStringsW( LPWCH );
WINBASEAPI BOOL WINAPI FreeLibrary( HMODULE );
WINBASEAPI DECLSPEC_NORETURN VOID WINAPI FreeLibraryAndExitThread( HMODULE, DWORD );
WINBASEAPI BOOL WINAPI FreeResource( HGLOBAL );
WINBASEAPI HRESULT WINAPI GetApplicationRecoveryCallback( HANDLE, APPLICATION_RECOVERY_CALLBACK *, PVOID *, PDWORD, PDWORD );
WINBASEAPI HRESULT WINAPI GetApplicationRestartSettings( HANDLE, PWSTR, PDWORD, PDWORD );
WINBASEAPI UINT WINAPI GetAtomNameA( ATOM, LPSTR, int );
WINBASEAPI UINT WINAPI GetAtomNameW( ATOM, LPWSTR, int );
WINBASEAPI BOOL WINAPI GetBinaryTypeA( LPCSTR, LPDWORD );
WINBASEAPI BOOL WINAPI GetBinaryTypeW( LPCWSTR, LPDWORD );
WINBASEAPI BOOL WINAPI GetCommConfig( HANDLE, LPCOMMCONFIG, LPDWORD );
WINBASEAPI BOOL WINAPI GetCommMask( HANDLE, LPDWORD );
WINBASEAPI BOOL WINAPI GetCommModemStatus( HANDLE, LPDWORD );
WINBASEAPI BOOL WINAPI GetCommProperties( HANDLE, LPCOMMPROP );
WINBASEAPI BOOL WINAPI GetCommState( HANDLE, LPDCB );
WINBASEAPI BOOL WINAPI GetCommTimeouts( HANDLE, LPCOMMTIMEOUTS );
WINBASEAPI LPSTR WINAPI GetCommandLineA( VOID );
WINBASEAPI LPWSTR WINAPI GetCommandLineW( VOID );
WINBASEAPI DWORD WINAPI GetCompressedFileSizeA( LPCSTR, LPDWORD );
WINBASEAPI DWORD WINAPI GetCompressedFileSizeW( LPCWSTR, LPDWORD );
WINBASEAPI BOOL WINAPI GetComputerNameA( LPSTR, LPDWORD );
WINBASEAPI BOOL WINAPI GetComputerNameW( LPWSTR, LPDWORD );
WINBASEAPI DWORD WINAPI GetCurrentDirectoryA( DWORD, LPSTR );
WINBASEAPI DWORD WINAPI GetCurrentDirectoryW( DWORD, LPWSTR );
WINBASEAPI HANDLE WINAPI GetCurrentProcess( VOID );
WINBASEAPI DWORD WINAPI GetCurrentProcessId( VOID );
WINBASEAPI DWORD WINAPI GetCurrentProcessorNumber( VOID );
WINBASEAPI HANDLE WINAPI GetCurrentThread( VOID );
WINBASEAPI DWORD WINAPI GetCurrentThreadId( VOID );
WINBASEAPI BOOL WINAPI GetDefaultCommConfigA( LPCSTR, LPCOMMCONFIG, LPDWORD );
WINBASEAPI BOOL WINAPI GetDefaultCommConfigW( LPCWSTR, LPCOMMCONFIG, LPDWORD );
WINBASEAPI BOOL WINAPI GetDevicePowerState( HANDLE, BOOL * );
WINBASEAPI BOOL WINAPI GetDiskFreeSpaceA( LPCSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD );
WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExA( LPCSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER );
WINBASEAPI BOOL WINAPI GetDiskFreeSpaceExW( LPCWSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER );
WINBASEAPI BOOL WINAPI GetDiskFreeSpaceW( LPCWSTR, LPDWORD, LPDWORD, LPDWORD, LPDWORD );
WINBASEAPI UINT WINAPI GetDriveTypeA( LPCSTR );
WINBASEAPI UINT WINAPI GetDriveTypeW( LPCWSTR );
WINBASEAPI DWORD WINAPI GetDynamicTimeZoneInformation( PDYNAMIC_TIME_ZONE_INFORMATION );
WINBASEAPI LPCH WINAPI GetEnvironmentStringsA( VOID );
WINBASEAPI LPWCH WINAPI GetEnvironmentStringsW( VOID );
WINBASEAPI DWORD WINAPI GetEnvironmentVariableA( LPCSTR, LPSTR, DWORD );
WINBASEAPI DWORD WINAPI GetEnvironmentVariableW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI UINT WINAPI GetErrorMode( VOID );
WINBASEAPI BOOL WINAPI GetExitCodeProcess( HANDLE, LPDWORD );
WINBASEAPI BOOL WINAPI GetExitCodeThread( HANDLE, LPDWORD );
WINBASEAPI DWORD WINAPI GetFileAttributesA( LPCSTR );
WINBASEAPI BOOL WINAPI GetFileAttributesExA( LPCSTR, GET_FILEEX_INFO_LEVELS, LPVOID );
WINBASEAPI BOOL WINAPI GetFileAttributesExW( LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID );
WINBASEAPI DWORD WINAPI GetFileAttributesW( LPCWSTR );
WINBASEAPI BOOL WINAPI GetFileBandwidthReservation( HANDLE, LPDWORD, LPDWORD, LPBOOL, LPDWORD, LPDWORD );
WINBASEAPI BOOL WINAPI GetFileInformationByHandle( HANDLE, LPBY_HANDLE_FILE_INFORMATION );
WINBASEAPI DWORD WINAPI GetFileSize( HANDLE, LPDWORD );
WINBASEAPI BOOL WINAPI GetFileSizeEx( HANDLE, PLARGE_INTEGER );
WINBASEAPI BOOL WINAPI GetFileTime( HANDLE, LPFILETIME, LPFILETIME, LPFILETIME );
WINBASEAPI DWORD WINAPI GetFileType( HANDLE );
WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableA( LPCSTR, LPCSTR, PVOID, DWORD );
WINBASEAPI DWORD WINAPI GetFirmwareEnvironmentVariableW( LPCWSTR, LPCWSTR, PVOID, DWORD );
WINBASEAPI DWORD WINAPI GetFullPathNameA( LPCSTR, DWORD, LPSTR, LPSTR * );
WINBASEAPI DWORD WINAPI GetFullPathNameW( LPCWSTR, DWORD, LPWSTR, LPWSTR * );
WINBASEAPI BOOL WINAPI GetHandleInformation( HANDLE, LPDWORD );
WINBASEAPI DWORD WINAPI GetLastError( VOID );
WINBASEAPI SIZE_T WINAPI GetLargePageMinimum( VOID );
WINBASEAPI VOID WINAPI GetLocalTime( LPSYSTEMTIME );
WINBASEAPI DWORD WINAPI GetLogicalDriveStringsA( DWORD, LPSTR );
WINBASEAPI DWORD WINAPI GetLogicalDriveStringsW( DWORD, LPWSTR );
WINBASEAPI DWORD WINAPI GetLogicalDrives( VOID );
WINBASEAPI BOOL WINAPI GetLogicalProcessorInformation( PSYSTEM_LOGICAL_PROCESSOR_INFORMATION, PDWORD );
WINBASEAPI DWORD WINAPI GetLongPathNameA( LPCSTR, LPSTR, DWORD );
WINBASEAPI DWORD WINAPI GetLongPathNameW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI GetMailslotInfo( HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD );
WINBASEAPI DWORD WINAPI GetModuleFileNameA( HMODULE, LPCH, DWORD );
WINBASEAPI DWORD WINAPI GetModuleFileNameW( HMODULE, LPWCH, DWORD );
WINBASEAPI HMODULE WINAPI GetModuleHandleA( LPCSTR );
WINBASEAPI HMODULE WINAPI GetModuleHandleW( LPCWSTR );
WINBASEAPI BOOL WINAPI GetNamedPipeAttribute( HANDLE, PIPE_ATTRIBUTE_TYPE, PSTR, PVOID, PSIZE_T );
WINBASEAPI BOOL WINAPI GetNamedPipeClientComputerNameA( HANDLE, LPSTR, ULONG );
WINBASEAPI BOOL WINAPI GetNamedPipeClientComputerNameW( HANDLE, LPWSTR, ULONG );
WINBASEAPI BOOL WINAPI GetNamedPipeClientProcessId( HANDLE, PULONG );
WINBASEAPI BOOL WINAPI GetNamedPipeClientSessionId( HANDLE, PULONG );
WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateA( HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPSTR, DWORD );
WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateW( HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI GetNamedPipeInfo( HANDLE, LPDWORD, LPDWORD, LPDWORD, LPDWORD );
WINBASEAPI BOOL WINAPI GetNamedPipeServerProcessId( HANDLE, PULONG );
WINBASEAPI BOOL WINAPI GetNamedPipeServerSessionId( HANDLE, PULONG );
WINBASEAPI BOOL WINAPI GetNumaAvailableMemoryNode( UCHAR, PULONGLONG );
WINBASEAPI BOOL WINAPI GetNumaHighestNodeNumber( PULONG );
WINBASEAPI BOOL WINAPI GetNumaNodeProcessorMask( UCHAR, PULONGLONG );
WINBASEAPI BOOL WINAPI GetNumaProcessorNode( UCHAR, PUCHAR );
WINBASEAPI BOOL WINAPI GetOverlappedResult( HANDLE, LPOVERLAPPED, LPDWORD, BOOL );
WINBASEAPI BOOL WINAPI GetPhysicallyInstalledSystemMemory( PULONGLONG );
WINBASEAPI DWORD WINAPI GetPriorityClass( HANDLE );
WINBASEAPI UINT WINAPI GetPrivateProfileIntA( LPCSTR, LPCSTR, INT, LPCSTR );
WINBASEAPI UINT WINAPI GetPrivateProfileIntW( LPCWSTR, LPCWSTR, INT, LPCWSTR );
WINBASEAPI DWORD WINAPI GetPrivateProfileSectionA( LPCSTR, LPSTR, DWORD, LPCSTR );
WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesA( LPSTR, DWORD, LPCSTR );
WINBASEAPI DWORD WINAPI GetPrivateProfileSectionNamesW( LPWSTR, DWORD, LPCWSTR );
WINBASEAPI DWORD WINAPI GetPrivateProfileSectionW( LPCWSTR, LPWSTR, DWORD, LPCWSTR );
WINBASEAPI DWORD WINAPI GetPrivateProfileStringA( LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD, LPCSTR );
WINBASEAPI DWORD WINAPI GetPrivateProfileStringW( LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD, LPCWSTR );
WINBASEAPI BOOL WINAPI GetPrivateProfileStructA( LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR );
WINBASEAPI BOOL WINAPI GetPrivateProfileStructW( LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR );
WINBASEAPI FARPROC WINAPI GetProcAddress( HMODULE, LPCSTR );
WINBASEAPI BOOL WINAPI GetProcessAffinityMask( HANDLE, PDWORD_PTR, PDWORD_PTR );
WINBASEAPI HANDLE WINAPI GetProcessHeap( VOID );
WINBASEAPI DWORD WINAPI GetProcessHeaps( DWORD, PHANDLE );
WINBASEAPI DWORD WINAPI GetProcessId( HANDLE );
WINBASEAPI DWORD WINAPI GetProcessIdOfThread( HANDLE );
WINBASEAPI BOOL WINAPI GetProcessIoCounters( HANDLE, PIO_COUNTERS );
WINBASEAPI BOOL WINAPI GetProcessPriorityBoost( HANDLE, PBOOL );
WINBASEAPI BOOL WINAPI GetProcessShutdownParameters( LPDWORD, LPDWORD );
WINBASEAPI BOOL WINAPI GetProcessTimes( HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME );
WINBASEAPI DWORD WINAPI GetProcessVersion( DWORD );
WINBASEAPI BOOL WINAPI GetProcessWorkingSetSize( HANDLE, PSIZE_T, PSIZE_T );
WINBASEAPI BOOL WINAPI GetProcessWorkingSetSizeEx( HANDLE, PSIZE_T, PSIZE_T, PDWORD );
WINBASEAPI UINT WINAPI GetProfileIntA( LPCSTR, LPCSTR, INT );
WINBASEAPI UINT WINAPI GetProfileIntW( LPCWSTR, LPCWSTR, INT );
WINBASEAPI DWORD WINAPI GetProfileSectionA( LPCSTR, LPSTR, DWORD );
WINBASEAPI DWORD WINAPI GetProfileSectionW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI DWORD WINAPI GetProfileStringA( LPCSTR, LPCSTR, LPCSTR, LPSTR, DWORD );
WINBASEAPI DWORD WINAPI GetProfileStringW( LPCWSTR, LPCWSTR, LPCWSTR, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI GetQueuedCompletionStatus( HANDLE, LPDWORD, PULONG_PTR, LPOVERLAPPED *, DWORD );
WINBASEAPI DWORD WINAPI GetShortPathNameA( LPCSTR, LPSTR, DWORD );
WINBASEAPI DWORD WINAPI GetShortPathNameW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI VOID WINAPI GetStartupInfoA( LPSTARTUPINFOA );
WINBASEAPI VOID WINAPI GetStartupInfoW( LPSTARTUPINFOW );
WINBASEAPI HANDLE WINAPI GetStdHandle( DWORD );
WINBASEAPI DEP_SYSTEM_POLICY_TYPE WINAPI GetSystemDEPPolicy( VOID );
WINBASEAPI UINT WINAPI GetSystemDirectoryA( LPSTR, UINT );
WINBASEAPI UINT WINAPI GetSystemDirectoryW( LPWSTR, UINT );
WINBASEAPI UINT WINAPI GetSystemFirmwareTable( DWORD, DWORD, PVOID, DWORD );
WINBASEAPI VOID WINAPI GetSystemInfo( LPSYSTEM_INFO );
WINBASEAPI VOID WINAPI GetSystemTime( LPSYSTEMTIME );
WINBASEAPI BOOL WINAPI GetSystemTimeAdjustment( PDWORD, PDWORD, PBOOL );
WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime( LPFILETIME );
WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA( LPSTR, UINT );
WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW( LPWSTR, UINT );
WINBASEAPI DWORD WINAPI GetTapeParameters( HANDLE, DWORD, LPDWORD, LPVOID );
WINBASEAPI DWORD WINAPI GetTapePosition( HANDLE, DWORD, LPDWORD, LPDWORD, LPDWORD );
WINBASEAPI DWORD WINAPI GetTapeStatus( HANDLE );
WINBASEAPI UINT WINAPI GetTempFileNameA( LPCSTR, LPCSTR, UINT, LPSTR );
WINBASEAPI UINT WINAPI GetTempFileNameW( LPCWSTR, LPCWSTR, UINT, LPWSTR );
WINBASEAPI DWORD WINAPI GetTempPathA( DWORD, LPSTR );
WINBASEAPI DWORD WINAPI GetTempPathW( DWORD, LPWSTR );
WINBASEAPI BOOL WINAPI GetThreadContext( HANDLE, LPCONTEXT );
WINBASEAPI DWORD WINAPI GetThreadErrorMode( VOID );
WINBASEAPI int WINAPI GetThreadPriority( HANDLE );
WINBASEAPI BOOL WINAPI GetThreadPriorityBoost( HANDLE, PBOOL );
WINBASEAPI BOOL WINAPI GetThreadSelectorEntry( HANDLE, DWORD, LPLDT_ENTRY );
WINBASEAPI BOOL WINAPI GetThreadTimes( HANDLE, LPFILETIME, LPFILETIME, LPFILETIME, LPFILETIME );
WINBASEAPI DWORD WINAPI GetTickCount( VOID );
WINBASEAPI DWORD WINAPI GetTimeZoneInformation( LPTIME_ZONE_INFORMATION );
WINBASEAPI BOOL WINAPI GetTimeZoneInformationForYear( USHORT, PDYNAMIC_TIME_ZONE_INFORMATION, LPTIME_ZONE_INFORMATION );
WINBASEAPI DWORD WINAPI GetVersion( VOID );
WINBASEAPI BOOL WINAPI GetVersionExA( LPOSVERSIONINFOA );
WINBASEAPI BOOL WINAPI GetVersionExW( LPOSVERSIONINFOW );
WINBASEAPI BOOL WINAPI GetVolumeInformationA( LPCSTR, LPSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPSTR, DWORD );
WINBASEAPI BOOL WINAPI GetVolumeInformationW( LPCWSTR, LPWSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPWSTR, DWORD );
WINBASEAPI UINT WINAPI GetWindowsDirectoryA( LPSTR, UINT );
WINBASEAPI UINT WINAPI GetWindowsDirectoryW( LPWSTR, UINT );
WINBASEAPI UINT WINAPI GetWriteWatch( DWORD, PVOID, SIZE_T, PVOID *, ULONG_PTR *, PULONG );
WINBASEAPI ATOM WINAPI GlobalAddAtomA( LPCSTR );
WINBASEAPI ATOM WINAPI GlobalAddAtomW( LPCWSTR );
WINBASEAPI HGLOBAL WINAPI GlobalAlloc( UINT, SIZE_T );
WINBASEAPI SIZE_T WINAPI GlobalCompact( DWORD );
WINBASEAPI ATOM WINAPI GlobalDeleteAtom( ATOM );
WINBASEAPI ATOM WINAPI GlobalFindAtomA( LPCSTR );
WINBASEAPI ATOM WINAPI GlobalFindAtomW( LPCWSTR );
WINBASEAPI VOID WINAPI GlobalFix( HGLOBAL );
WINBASEAPI UINT WINAPI GlobalFlags( HGLOBAL );
WINBASEAPI HGLOBAL WINAPI GlobalFree( HGLOBAL );
WINBASEAPI UINT WINAPI GlobalGetAtomNameA( ATOM, LPSTR, int );
WINBASEAPI UINT WINAPI GlobalGetAtomNameW( ATOM, LPWSTR, int );
WINBASEAPI HGLOBAL WINAPI GlobalHandle( LPCVOID );
WINBASEAPI LPVOID WINAPI GlobalLock( LPVOID );
WINBASEAPI VOID WINAPI GlobalMemoryStatus( LPMEMORYSTATUS );
WINBASEAPI BOOL WINAPI GlobalMemoryStatusEx( LPMEMORYSTATUSEX );
WINBASEAPI HGLOBAL WINAPI GlobalReAlloc( HGLOBAL, SIZE_T, UINT );
WINBASEAPI SIZE_T WINAPI GlobalSize( HGLOBAL );
WINBASEAPI BOOL WINAPI GlobalUnWire( HGLOBAL );
WINBASEAPI VOID WINAPI GlobalUnfix( HGLOBAL );
WINBASEAPI BOOL WINAPI GlobalUnlock( HGLOBAL );
WINBASEAPI LPVOID WINAPI GlobalWire( HGLOBAL );
WINBASEAPI LPVOID WINAPI HeapAlloc( HANDLE, DWORD, SIZE_T );
WINBASEAPI SIZE_T WINAPI HeapCompact( HANDLE, DWORD );
WINBASEAPI HANDLE WINAPI HeapCreate( DWORD, SIZE_T, SIZE_T );
WINBASEAPI BOOL WINAPI HeapDestroy( HANDLE );
WINBASEAPI BOOL WINAPI HeapFree( HANDLE, DWORD, LPVOID );
WINBASEAPI BOOL WINAPI HeapLock( HANDLE );
WINBASEAPI BOOL WINAPI HeapQueryInformation( HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T );
WINBASEAPI LPVOID WINAPI HeapReAlloc( HANDLE, DWORD, LPVOID, SIZE_T );
WINBASEAPI BOOL WINAPI HeapSetInformation( HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T );
WINBASEAPI SIZE_T WINAPI HeapSize( HANDLE, DWORD, LPCVOID );
WINBASEAPI BOOL WINAPI HeapUnlock( HANDLE );
WINBASEAPI BOOL WINAPI HeapValidate( HANDLE, DWORD, LPCVOID );
WINBASEAPI BOOL WINAPI HeapWalk( HANDLE, LPPROCESS_HEAP_ENTRY );
WINBASEAPI BOOL WINAPI InitAtomTable( DWORD );
WINBASEAPI VOID WINAPI InitializeConditionVariable( PCONDITION_VARIABLE );
WINBASEAPI VOID WINAPI InitializeCriticalSection( LPCRITICAL_SECTION );
WINBASEAPI VOID WINAPI InitializeSListHead( PSLIST_HEADER );
WINBASEAPI VOID WINAPI InitializeSRWLock( PSRWLOCK );
WINBASEAPI LONG WINAPI InterlockedCompareExchange( LONG volatile *, LONG, LONG );
WINBASEAPI LONG WINAPI InterlockedDecrement( LONG volatile * );
WINBASEAPI LONG WINAPI InterlockedExchange( LONG volatile *, LONG );
WINBASEAPI LONG WINAPI InterlockedExchangeAdd( LONG volatile *, LONG );
WINBASEAPI PSLIST_ENTRY WINAPI InterlockedFlushSList( PSLIST_HEADER );
WINBASEAPI LONG WINAPI InterlockedIncrement( LONG volatile * );
WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPopEntrySList( PSLIST_HEADER );
WINBASEAPI PSLIST_ENTRY WINAPI InterlockedPushEntrySList( PSLIST_HEADER, PSLIST_ENTRY );
WINBASEAPI BOOL WINAPI IsBadCodePtr( FARPROC );
WINBASEAPI BOOL WINAPI IsBadHugeReadPtr( CONST VOID*, UINT_PTR );
WINBASEAPI BOOL WINAPI IsBadHugeWritePtr( LPVOID, UINT_PTR );
WINBASEAPI BOOL WINAPI IsBadReadPtr( CONST VOID *, UINT_PTR );
WINBASEAPI BOOL WINAPI IsBadStringPtrA( LPCSTR, UINT_PTR );
WINBASEAPI BOOL WINAPI IsBadStringPtrW( LPCWSTR, UINT_PTR );
WINBASEAPI BOOL WINAPI IsBadWritePtr( LPVOID, UINT_PTR );
WINBASEAPI BOOL WINAPI IsProcessorFeaturePresent( DWORD );
WINBASEAPI BOOL WINAPI IsSystemResumeAutomatic( VOID );
WINBASEAPI VOID WINAPI LeaveCriticalSection( LPCRITICAL_SECTION );
WINBASEAPI HMODULE WINAPI LoadLibraryA( LPCSTR );
WINBASEAPI HMODULE WINAPI LoadLibraryExA( LPCSTR, HANDLE, DWORD );
WINBASEAPI HMODULE WINAPI LoadLibraryExW( LPCWSTR, HANDLE, DWORD );
WINBASEAPI HMODULE WINAPI LoadLibraryW( LPCWSTR );
WINBASEAPI DWORD WINAPI LoadModule( LPCSTR, LPVOID );
WINBASEAPI HGLOBAL WINAPI LoadResource( HMODULE, HRSRC );
WINBASEAPI HLOCAL WINAPI LocalAlloc( UINT, SIZE_T );
WINBASEAPI SIZE_T WINAPI LocalCompact( UINT );
WINBASEAPI BOOL WINAPI LocalFileTimeToFileTime( CONST FILETIME *, LPFILETIME );
WINBASEAPI UINT WINAPI LocalFlags( HLOCAL );
WINBASEAPI HLOCAL WINAPI LocalFree( HLOCAL );
WINBASEAPI HLOCAL WINAPI LocalHandle( LPCVOID );
WINBASEAPI LPVOID WINAPI LocalLock( HLOCAL );
WINBASEAPI HLOCAL WINAPI LocalReAlloc( HLOCAL, SIZE_T, UINT );
WINBASEAPI SIZE_T WINAPI LocalShrink( HLOCAL, UINT );
WINBASEAPI SIZE_T WINAPI LocalSize( HLOCAL );
WINBASEAPI BOOL WINAPI LocalUnlock( HLOCAL );
WINBASEAPI BOOL WINAPI LockFile( HANDLE, DWORD, DWORD, DWORD, DWORD );
WINBASEAPI BOOL WINAPI LockFileEx( HANDLE, DWORD, DWORD, DWORD, DWORD, LPOVERLAPPED );
WINBASEAPI LPVOID WINAPI LockResource( HGLOBAL );
WINBASEAPI LPVOID WINAPI MapViewOfFile( HANDLE, DWORD, DWORD, DWORD, SIZE_T );
WINBASEAPI LPVOID WINAPI MapViewOfFileEx( HANDLE, DWORD, DWORD, DWORD, SIZE_T, LPVOID );
WINBASEAPI BOOL WINAPI MoveFileA( LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI MoveFileExA( LPCSTR, LPCSTR, DWORD );
WINBASEAPI BOOL WINAPI MoveFileExW( LPCWSTR, LPCWSTR, DWORD );
WINBASEAPI BOOL WINAPI MoveFileW( LPCWSTR, LPCWSTR );
WINBASEAPI int WINAPI MulDiv( int, int, int );
WINBASEAPI HANDLE WINAPI OpenEventA( DWORD, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI OpenEventW( DWORD, BOOL, LPCWSTR );
WINBASEAPI HFILE WINAPI OpenFile( LPCSTR, LPOFSTRUCT, UINT );
WINBASEAPI HANDLE WINAPI OpenFileMappingA( DWORD, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI OpenFileMappingW( DWORD, BOOL, LPCWSTR );
WINBASEAPI HANDLE WINAPI OpenMutexA( DWORD, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI OpenMutexW( DWORD, BOOL, LPCWSTR );
WINBASEAPI HANDLE WINAPI OpenProcess( DWORD, BOOL, DWORD );
WINBASEAPI HANDLE WINAPI OpenSemaphoreA( DWORD, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI OpenSemaphoreW( DWORD, BOOL, LPCWSTR );
WINBASEAPI HANDLE WINAPI OpenThread( DWORD, BOOL, DWORD );
WINBASEAPI VOID WINAPI OutputDebugStringA( LPCSTR );
WINBASEAPI VOID WINAPI OutputDebugStringW( LPCWSTR );
WINBASEAPI BOOL WINAPI PeekNamedPipe( HANDLE, LPVOID, DWORD, LPDWORD, LPDWORD, LPDWORD );
WINBASEAPI BOOL WINAPI PostQueuedCompletionStatus( HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED );
WINBASEAPI DWORD WINAPI PrepareTape( HANDLE, DWORD, BOOL );
WINBASEAPI BOOL WINAPI ProcessIdToSessionId( DWORD, DWORD * );
WINBASEAPI BOOL WINAPI PulseEvent( HANDLE );
WINBASEAPI BOOL WINAPI PurgeComm( HANDLE, DWORD );
WINBASEAPI USHORT WINAPI QueryDepthSList( PSLIST_HEADER );
WINBASEAPI DWORD WINAPI QueryDosDeviceA( LPCSTR, LPSTR, DWORD );
WINBASEAPI DWORD WINAPI QueryDosDeviceW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI QueryPerformanceCounter( LARGE_INTEGER * );
WINBASEAPI BOOL WINAPI QueryPerformanceFrequency( LARGE_INTEGER * );
WINBASEAPI VOID WINAPI RaiseException( DWORD, DWORD, DWORD, CONST ULONG_PTR * );
WINBASEAPI VOID WINAPI RaiseFailFastException( PEXCEPTION_RECORD, PCONTEXT, DWORD );
WINBASEAPI BOOL WINAPI ReadFile( HANDLE, LPVOID, DWORD, LPDWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI ReadFileEx( HANDLE, LPVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE );
WINBASEAPI BOOL WINAPI ReadFileScatter( HANDLE, FILE_SEGMENT_ELEMENT [], DWORD, LPDWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI ReadProcessMemory( HANDLE, LPCVOID, LPVOID, SIZE_T, SIZE_T * );
WINBASEAPI HRESULT WINAPI RegisterApplicationRecoveryCallback( APPLICATION_RECOVERY_CALLBACK, PVOID, DWORD, DWORD );
WINBASEAPI HRESULT WINAPI RegisterApplicationRestart( PCWSTR, DWORD );
WINBASEAPI BOOL WINAPI ReleaseMutex( HANDLE );
WINBASEAPI VOID WINAPI ReleaseSRWLockExclusive( PSRWLOCK );
WINBASEAPI VOID WINAPI ReleaseSRWLockShared( PSRWLOCK );
WINBASEAPI BOOL WINAPI ReleaseSemaphore( HANDLE, LONG, LPLONG );
WINBASEAPI BOOL WINAPI RemoveDirectoryA( LPCSTR );
WINBASEAPI BOOL WINAPI RemoveDirectoryW( LPCWSTR );
WINBASEAPI BOOL WINAPI RequestDeviceWakeup( HANDLE );
WINBASEAPI BOOL WINAPI RequestWakeupLatency( LATENCY_TIME );
WINBASEAPI BOOL WINAPI ResetEvent( HANDLE );
WINBASEAPI UINT WINAPI ResetWriteWatch( LPVOID, SIZE_T );
WINBASEAPI VOID WINAPI RestoreLastError( DWORD );
WINBASEAPI DWORD WINAPI ResumeThread( HANDLE );
WINBASEAPI DWORD WINAPI SearchPathA( LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR * );
WINBASEAPI DWORD WINAPI SearchPathW( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR * );
WINBASEAPI BOOL WINAPI SetCommBreak( HANDLE );
WINBASEAPI BOOL WINAPI SetCommConfig( HANDLE, LPCOMMCONFIG, DWORD );
WINBASEAPI BOOL WINAPI SetCommMask( HANDLE, DWORD );
WINBASEAPI BOOL WINAPI SetCommState( HANDLE, LPDCB );
WINBASEAPI BOOL WINAPI SetCommTimeouts( HANDLE, LPCOMMTIMEOUTS );
WINBASEAPI BOOL WINAPI SetComputerNameA( LPCSTR );
WINBASEAPI BOOL WINAPI SetComputerNameW( LPCWSTR );
WINBASEAPI BOOL WINAPI SetCurrentDirectoryA( LPCSTR );
WINBASEAPI BOOL WINAPI SetCurrentDirectoryW( LPCWSTR );
WINBASEAPI BOOL WINAPI SetDefaultCommConfigA( LPCSTR, LPCOMMCONFIG, DWORD );
WINBASEAPI BOOL WINAPI SetDefaultCommConfigW( LPCWSTR, LPCOMMCONFIG, DWORD );
WINBASEAPI BOOL WINAPI SetDynamicTimeZoneInformation( CONST DYNAMIC_TIME_ZONE_INFORMATION * );
WINBASEAPI BOOL WINAPI SetEndOfFile( HANDLE );
WINBASEAPI BOOL WINAPI SetEnvironmentStringsA( LPCH );
WINBASEAPI BOOL WINAPI SetEnvironmentStringsW( LPWCH );
WINBASEAPI BOOL WINAPI SetEnvironmentVariableA( LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI SetEnvironmentVariableW( LPCWSTR, LPCWSTR );
WINBASEAPI UINT WINAPI SetErrorMode( UINT );
WINBASEAPI BOOL WINAPI SetEvent( HANDLE );
WINBASEAPI VOID WINAPI SetFileApisToANSI( VOID );
WINBASEAPI VOID WINAPI SetFileApisToOEM( VOID );
WINBASEAPI BOOL WINAPI SetFileAttributesA( LPCSTR, DWORD );
WINBASEAPI BOOL WINAPI SetFileAttributesW( LPCWSTR, DWORD );
WINBASEAPI BOOL WINAPI SetFileBandwidthReservation( HANDLE, DWORD, DWORD, BOOL, LPDWORD, LPDWORD );
WINBASEAPI DWORD WINAPI SetFilePointer( HANDLE, LONG, PLONG, DWORD );
WINBASEAPI BOOL WINAPI SetFilePointerEx( HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD );
WINBASEAPI BOOL WINAPI SetFileShortNameA( HANDLE, LPCSTR );
WINBASEAPI BOOL WINAPI SetFileShortNameW( HANDLE, LPCWSTR );
WINBASEAPI BOOL WINAPI SetFileTime( HANDLE, CONST FILETIME *, CONST FILETIME *, CONST FILETIME * );
WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableA( LPCSTR, LPCSTR, PVOID, DWORD );
WINBASEAPI BOOL WINAPI SetFirmwareEnvironmentVariableW( LPCWSTR, LPCWSTR, PVOID, DWORD );
WINBASEAPI UINT WINAPI SetHandleCount( UINT );
WINBASEAPI BOOL WINAPI SetHandleInformation( HANDLE, DWORD, DWORD );
WINBASEAPI VOID WINAPI SetLastError( DWORD );
WINBASEAPI BOOL WINAPI SetLocalTime( CONST SYSTEMTIME * );
WINBASEAPI BOOL WINAPI SetMailslotInfo( HANDLE, DWORD );
WINBASEAPI BOOL WINAPI SetMessageWaitingIndicator( HANDLE, ULONG );
WINBASEAPI BOOL WINAPI SetNamedPipeAttribute( HANDLE, PIPE_ATTRIBUTE_TYPE, PSTR, PVOID, SIZE_T );
WINBASEAPI BOOL WINAPI SetNamedPipeHandleState( HANDLE, LPDWORD, LPDWORD, LPDWORD );
WINBASEAPI BOOL WINAPI SetPriorityClass( HANDLE, DWORD );
WINBASEAPI BOOL WINAPI SetProcessAffinityMask( HANDLE, DWORD_PTR );
WINBASEAPI BOOL WINAPI SetProcessPriorityBoost( HANDLE, BOOL );
WINBASEAPI BOOL WINAPI SetProcessShutdownParameters( DWORD, DWORD );
WINBASEAPI BOOL WINAPI SetProcessWorkingSetSize( HANDLE, SIZE_T, SIZE_T );
WINBASEAPI BOOL WINAPI SetProcessWorkingSetSizeEx( HANDLE, SIZE_T, SIZE_T, DWORD );
WINBASEAPI BOOL WINAPI SetSearchPathMode( DWORD );
WINBASEAPI BOOL WINAPI SetStdHandle( DWORD, HANDLE );
WINBASEAPI BOOL WINAPI SetSystemTime( CONST SYSTEMTIME * );
WINBASEAPI BOOL WINAPI SetSystemTimeAdjustment( DWORD, BOOL );
WINBASEAPI DWORD WINAPI SetTapeParameters( HANDLE, DWORD, LPVOID );
WINBASEAPI DWORD WINAPI SetTapePosition( HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL );
WINBASEAPI DWORD_PTR WINAPI SetThreadAffinityMask( HANDLE, DWORD_PTR );
WINBASEAPI BOOL WINAPI SetThreadContext( HANDLE, CONST CONTEXT * );
WINBASEAPI BOOL WINAPI SetThreadErrorMode( DWORD, LPDWORD );
WINBASEAPI EXECUTION_STATE WINAPI SetThreadExecutionState( EXECUTION_STATE );
WINBASEAPI BOOL WINAPI SetThreadPriority( HANDLE, int );
WINBASEAPI BOOL WINAPI SetThreadPriorityBoost( HANDLE, BOOL );
WINBASEAPI BOOL WINAPI SetThreadStackGuarantee( PULONG );
WINBASEAPI BOOL WINAPI SetTimeZoneInformation( CONST TIME_ZONE_INFORMATION * );
WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter( LPTOP_LEVEL_EXCEPTION_FILTER );
WINBASEAPI BOOL WINAPI SetVolumeLabelA( LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI SetVolumeLabelW( LPCWSTR, LPCWSTR );
WINBASEAPI BOOL WINAPI SetupComm( HANDLE, DWORD, DWORD );
WINBASEAPI DWORD WINAPI SizeofResource( HMODULE, HRSRC );
WINBASEAPI VOID WINAPI Sleep( DWORD );
WINBASEAPI BOOL WINAPI SleepConditionVariableCS( PCONDITION_VARIABLE, PCRITICAL_SECTION, DWORD );
WINBASEAPI BOOL WINAPI SleepConditionVariableSRW( PCONDITION_VARIABLE, PSRWLOCK, DWORD, ULONG );
WINBASEAPI DWORD WINAPI SleepEx( DWORD, BOOL );
WINBASEAPI DWORD WINAPI SuspendThread( HANDLE );
WINBASEAPI BOOL WINAPI SystemTimeToFileTime( CONST SYSTEMTIME *, LPFILETIME );
WINBASEAPI BOOL WINAPI SystemTimeToTzSpecificLocalTime( LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME );
WINBASEAPI BOOL WINAPI TerminateProcess( HANDLE, UINT );
WINBASEAPI BOOL WINAPI TerminateThread( HANDLE, DWORD );
WINBASEAPI DWORD WINAPI TlsAlloc( VOID );
WINBASEAPI BOOL WINAPI TlsFree( DWORD );
WINBASEAPI LPVOID WINAPI TlsGetValue( DWORD );
WINBASEAPI BOOL WINAPI TlsSetValue( DWORD, LPVOID );
WINBASEAPI BOOL WINAPI TransactNamedPipe( HANDLE, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI TransmitCommChar( HANDLE, char );
WINBASEAPI BOOLEAN WINAPI TryAcquireSRWLockExclusive( PSRWLOCK );
WINBASEAPI BOOLEAN WINAPI TryAcquireSRWLockShared( PSRWLOCK );
WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime( CONST TIME_ZONE_INFORMATION *, LPSYSTEMTIME, LPSYSTEMTIME );
WINBASEAPI LONG WINAPI UnhandledExceptionFilter( struct _EXCEPTION_POINTERS * );
WINBASEAPI BOOL WINAPI UnlockFile( HANDLE, DWORD, DWORD, DWORD, DWORD );
WINBASEAPI BOOL WINAPI UnlockFileEx( HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI UnmapViewOfFile( LPCVOID );
WINBASEAPI HRESULT WINAPI UnregisterApplicationRecoveryCallback( void );
WINBASEAPI HRESULT WINAPI UnregisterApplicationRestart( void );
WINBASEAPI BOOL WINAPI UpdateResourceA( HANDLE, LPCSTR, LPCSTR, WORD, LPVOID, DWORD );
WINBASEAPI BOOL WINAPI UpdateResourceW( HANDLE, LPCWSTR, LPCWSTR, WORD, LPVOID, DWORD );
WINBASEAPI BOOL WINAPI VerifyVersionInfoA( LPOSVERSIONINFOEXA, DWORD, DWORDLONG );
WINBASEAPI BOOL WINAPI VerifyVersionInfoW( LPOSVERSIONINFOEXW, DWORD, DWORDLONG );
WINBASEAPI LPVOID WINAPI VirtualAlloc( LPVOID, SIZE_T, DWORD, DWORD );
WINBASEAPI LPVOID WINAPI VirtualAllocEx( HANDLE, LPVOID, SIZE_T, DWORD, DWORD );
WINBASEAPI BOOL WINAPI VirtualFree( LPVOID, SIZE_T, DWORD );
WINBASEAPI BOOL WINAPI VirtualFreeEx( HANDLE, LPVOID, SIZE_T, DWORD );
WINBASEAPI BOOL WINAPI VirtualLock( LPVOID, SIZE_T );
WINBASEAPI BOOL WINAPI VirtualProtect( LPVOID, SIZE_T, DWORD, PDWORD );
WINBASEAPI BOOL WINAPI VirtualProtectEx( HANDLE, LPVOID, SIZE_T, DWORD, PDWORD );
WINBASEAPI SIZE_T WINAPI VirtualQuery( LPCVOID, PMEMORY_BASIC_INFORMATION, SIZE_T );
WINBASEAPI SIZE_T WINAPI VirtualQueryEx( HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, SIZE_T );
WINBASEAPI BOOL WINAPI VirtualUnlock( LPVOID, SIZE_T );
WINBASEAPI BOOL WINAPI WaitCommEvent( HANDLE, LPDWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI WaitForDebugEvent( LPDEBUG_EVENT, DWORD );
WINBASEAPI DWORD WINAPI WaitForMultipleObjects( DWORD, CONST HANDLE *, BOOL, DWORD );
WINBASEAPI DWORD WINAPI WaitForMultipleObjectsEx( DWORD, CONST HANDLE *, BOOL, DWORD, BOOL );
WINBASEAPI DWORD WINAPI WaitForSingleObject( HANDLE, DWORD );
WINBASEAPI DWORD WINAPI WaitForSingleObjectEx( HANDLE, DWORD, BOOL );
WINBASEAPI BOOL WINAPI WaitNamedPipeA( LPCSTR, DWORD );
WINBASEAPI BOOL WINAPI WaitNamedPipeW( LPCWSTR, DWORD );
WINBASEAPI VOID WINAPI WakeAllConditionVariable( PCONDITION_VARIABLE );
WINBASEAPI VOID WINAPI WakeConditionVariable( PCONDITION_VARIABLE );
WINBASEAPI UINT WINAPI WinExec( LPCSTR, UINT );
WINBASEAPI BOOL WINAPI Wow64GetThreadContext( HANDLE, PWOW64_CONTEXT );
WINBASEAPI BOOL WINAPI Wow64SetThreadContext( HANDLE, CONST WOW64_CONTEXT * );
WINBASEAPI DWORD WINAPI Wow64SuspendThread( HANDLE );
WINBASEAPI BOOL WINAPI WriteFile( HANDLE, LPCVOID, DWORD, LPDWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI WriteFileEx( HANDLE, LPCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE );
WINBASEAPI BOOL WINAPI WriteFileGather( HANDLE, FILE_SEGMENT_ELEMENT [], DWORD, LPDWORD, LPOVERLAPPED );
WINBASEAPI BOOL WINAPI WritePrivateProfileSectionA( LPCSTR, LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI WritePrivateProfileSectionW( LPCWSTR, LPCWSTR, LPCWSTR );
WINBASEAPI BOOL WINAPI WritePrivateProfileStringA( LPCSTR, LPCSTR, LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI WritePrivateProfileStringW( LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR );
WINBASEAPI BOOL WINAPI WritePrivateProfileStructA( LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR );
WINBASEAPI BOOL WINAPI WritePrivateProfileStructW( LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR );
WINBASEAPI BOOL WINAPI WriteProcessMemory( HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T * );
WINBASEAPI BOOL WINAPI WriteProfileSectionA( LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI WriteProfileSectionW( LPCWSTR, LPCWSTR );
WINBASEAPI BOOL WINAPI WriteProfileStringA( LPCSTR, LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI WriteProfileStringW( LPCWSTR, LPCWSTR, LPCWSTR );
WINBASEAPI DWORD WINAPI WriteTapemark( HANDLE, DWORD, DWORD, BOOL );
WINBASEAPI long WINAPI _hread( HFILE, LPVOID, long );
WINBASEAPI long WINAPI _hwrite( HFILE, LPCCH, long );
WINBASEAPI HFILE WINAPI _lclose( HFILE );
WINBASEAPI HFILE WINAPI _lcreat( LPCSTR, int );
WINBASEAPI LONG WINAPI _llseek( HFILE, LONG, int );
WINBASEAPI HFILE WINAPI _lopen( LPCSTR, int );
WINBASEAPI UINT WINAPI _lread( HFILE, LPVOID, UINT );
WINBASEAPI UINT WINAPI _lwrite( HFILE, LPCCH, UINT );
WINBASEAPI LPSTR WINAPI lstrcatA( LPSTR, LPCSTR );
WINBASEAPI LPWSTR WINAPI lstrcatW( LPWSTR, LPCWSTR );
WINBASEAPI int WINAPI lstrcmpA( LPCSTR, LPCSTR );
WINBASEAPI int WINAPI lstrcmpW( LPCWSTR, LPCWSTR );
WINBASEAPI int WINAPI lstrcmpiA( LPCSTR, LPCSTR );
WINBASEAPI int WINAPI lstrcmpiW( LPCWSTR, LPCWSTR );
WINBASEAPI LPSTR WINAPI lstrcpyA( LPSTR, LPCSTR );
WINBASEAPI LPWSTR WINAPI lstrcpyW( LPWSTR, LPCWSTR );
WINBASEAPI LPSTR WINAPI lstrcpynA( LPSTR, LPCSTR, int );
WINBASEAPI LPWSTR WINAPI lstrcpynW( LPWSTR, LPCWSTR, int );
WINBASEAPI int WINAPI lstrlenA( LPCSTR );
WINBASEAPI int WINAPI lstrlenW( LPCWSTR );
#if (WINVER >= 0x0400)
WINBASEAPI BOOL WINAPI GetSystemPowerStatus( LPSYSTEM_POWER_STATUS );
WINBASEAPI BOOL WINAPI SetSystemPowerState( BOOL, BOOL );
#endif
#if (_WIN32_WINNT >= 0x0400)
WINBASEAPI LPVOID WINAPI ConvertThreadToFiber( LPVOID );
WINBASEAPI LPVOID WINAPI ConvertThreadToFiberEx( LPVOID, DWORD );
WINBASEAPI BOOL WINAPI CopyFileExA( LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD );
WINBASEAPI BOOL WINAPI CopyFileExW( LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD );
WINBASEAPI LPVOID WINAPI CreateFiber( SIZE_T, LPFIBER_START_ROUTINE, LPVOID );
WINBASEAPI LPVOID WINAPI CreateFiberEx( SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID );
WINBASEAPI VOID WINAPI DeleteFiber( LPVOID );
WINBASEAPI HANDLE WINAPI FindFirstFileExA( LPCSTR, FINDEX_INFO_LEVELS, LPVOID, FINDEX_SEARCH_OPS, LPVOID, DWORD );
WINBASEAPI HANDLE WINAPI FindFirstFileExW( LPCWSTR, FINDEX_INFO_LEVELS, LPVOID, FINDEX_SEARCH_OPS, LPVOID, DWORD );
WINBASEAPI BOOL WINAPI ReadDirectoryChangesW( HANDLE, LPVOID, DWORD, BOOL, DWORD, LPDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE );
WINBASEAPI DWORD WINAPI SetThreadIdealProcessor( HANDLE, DWORD );
WINBASEAPI DWORD WINAPI SignalObjectAndWait( HANDLE, HANDLE, DWORD, BOOL );
WINBASEAPI VOID WINAPI SwitchToFiber( LPVOID );
WINBASEAPI BOOL WINAPI SwitchToThread( VOID );
WINBASEAPI BOOL WINAPI TryEnterCriticalSection( LPCRITICAL_SECTION );
#endif
#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
WINBASEAPI BOOL WINAPI CancelWaitableTimer( HANDLE );
WINBASEAPI HANDLE WINAPI CreateWaitableTimerA( LPSECURITY_ATTRIBUTES, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI CreateWaitableTimerW( LPSECURITY_ATTRIBUTES, BOOL, LPCWSTR );
WINBASEAPI BOOL WINAPI IsDebuggerPresent( VOID );
WINBASEAPI HANDLE WINAPI OpenWaitableTimerA( DWORD, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI OpenWaitableTimerW( DWORD, BOOL, LPCWSTR );
WINBASEAPI DWORD WINAPI QueueUserAPC( PAPCFUNC, HANDLE, ULONG_PTR );
WINBASEAPI BOOL WINAPI SetWaitableTimer( HANDLE, const LARGE_INTEGER *, LONG, PTIMERAPCROUTINE, LPVOID, BOOL );
#endif
#if (_WIN32_WINNT >= 0x0403)
WINBASEAPI BOOL WINAPI InitializeCriticalSectionAndSpinCount( LPCRITICAL_SECTION, DWORD );
WINBASEAPI BOOL WINAPI InitializeCriticalSectionEx( LPCRITICAL_SECTION, DWORD, DWORD );
WINBASEAPI DWORD WINAPI SetCriticalSectionSpinCount( LPCRITICAL_SECTION, DWORD );
#endif
#if (_WIN32_WINNT >= 0x0500)
WINBASEAPI BOOL WINAPI ActivateActCtx( HANDLE, ULONG_PTR * );
WINBASEAPI VOID WINAPI AddRefActCtx( HANDLE );
WINBASEAPI PVOID WINAPI AddVectoredContinueHandler( ULONG, PVECTORED_EXCEPTION_HANDLER );
WINBASEAPI PVOID WINAPI AddVectoredExceptionHandler( ULONG, PVECTORED_EXCEPTION_HANDLER );
WINBASEAPI BOOL WINAPI AllocateUserPhysicalPages( HANDLE, PULONG_PTR, PULONG_PTR );
WINBASEAPI BOOL WINAPI AssignProcessToJobObject( HANDLE, HANDLE );
WINBASEAPI BOOL WINAPI BindIoCompletionCallback( HANDLE, LPOVERLAPPED_COMPLETION_ROUTINE, ULONG );
WINBASEAPI BOOL WINAPI CancelTimerQueueTimer( HANDLE, HANDLE );
WINBASEAPI BOOL WINAPI ChangeTimerQueueTimer( HANDLE, HANDLE, ULONG, ULONG );
WINBASEAPI HANDLE WINAPI CreateActCtxA( PCACTCTXA );
WINBASEAPI HANDLE WINAPI CreateActCtxW( PCACTCTXW );
WINBASEAPI BOOL WINAPI CreateHardLinkA( LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES );
WINBASEAPI BOOL WINAPI CreateHardLinkW( LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES );
WINBASEAPI HANDLE WINAPI CreateJobObjectA( LPSECURITY_ATTRIBUTES, LPCSTR );
WINBASEAPI HANDLE WINAPI CreateJobObjectW( LPSECURITY_ATTRIBUTES, LPCWSTR );
WINBASEAPI BOOL WINAPI CreateJobSet( ULONG, PJOB_SET_ARRAY, ULONG );
WINBASEAPI HANDLE WINAPI CreateTimerQueue( VOID );
WINBASEAPI BOOL WINAPI CreateTimerQueueTimer( PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG );
WINBASEAPI BOOL WINAPI DeactivateActCtx( DWORD, ULONG_PTR );
WINBASEAPI BOOL WINAPI DeleteTimerQueue( HANDLE );
WINBASEAPI BOOL WINAPI DeleteTimerQueueEx( HANDLE, HANDLE );
WINBASEAPI BOOL WINAPI DeleteTimerQueueTimer( HANDLE, HANDLE, HANDLE );
WINBASEAPI BOOL WINAPI DeleteVolumeMountPointA( LPCSTR );
WINBASEAPI BOOL WINAPI DeleteVolumeMountPointW( LPCWSTR );
WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameA( LPCSTR, LPSTR, LPDWORD );
WINBASEAPI BOOL WINAPI DnsHostnameToComputerNameW( LPCWSTR, LPWSTR, LPDWORD );
WINBASEAPI BOOL WINAPI FindActCtxSectionGuid( DWORD, const GUID *, ULONG, const GUID *, PACTCTX_SECTION_KEYED_DATA );
WINBASEAPI BOOL WINAPI FindActCtxSectionStringA( DWORD, const GUID *, ULONG, LPCSTR, PACTCTX_SECTION_KEYED_DATA );
WINBASEAPI BOOL WINAPI FindActCtxSectionStringW( DWORD, const GUID *, ULONG, LPCWSTR, PACTCTX_SECTION_KEYED_DATA );
WINBASEAPI HANDLE WINAPI FindFirstVolumeA( LPSTR, DWORD );
WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointA( LPCSTR, LPSTR, DWORD );
WINBASEAPI HANDLE WINAPI FindFirstVolumeMountPointW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI HANDLE WINAPI FindFirstVolumeW( LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI FindNextVolumeA( HANDLE, LPSTR, DWORD );
WINBASEAPI BOOL WINAPI FindNextVolumeMountPointA( HANDLE, LPSTR, DWORD );
WINBASEAPI BOOL WINAPI FindNextVolumeMountPointW( HANDLE, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI FindNextVolumeW( HANDLE, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI FindVolumeClose( HANDLE );
WINBASEAPI BOOL WINAPI FindVolumeMountPointClose( HANDLE );
WINBASEAPI BOOL WINAPI FreeUserPhysicalPages( HANDLE, PULONG_PTR, PULONG_PTR );
WINBASEAPI BOOL WINAPI GetComputerNameExA( COMPUTER_NAME_FORMAT, LPSTR, LPDWORD );
WINBASEAPI BOOL WINAPI GetComputerNameExW( COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD );
WINBASEAPI BOOL WINAPI GetCurrentActCtx( HANDLE * );
WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointA( LPCSTR, LPSTR, DWORD );
WINBASEAPI BOOL WINAPI GetVolumeNameForVolumeMountPointW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI GetVolumePathNameA( LPCSTR, LPSTR, DWORD );
WINBASEAPI BOOL WINAPI GetVolumePathNameW( LPCWSTR, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI MapUserPhysicalPages( PVOID, ULONG_PTR, PULONG_PTR );
WINBASEAPI BOOL WINAPI MapUserPhysicalPagesScatter( PVOID *, ULONG_PTR, PULONG_PTR );
WINBASEAPI BOOL WINAPI MoveFileWithProgressA( LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, DWORD );
WINBASEAPI BOOL WINAPI MoveFileWithProgressW( LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, DWORD );
WINBASEAPI HANDLE WINAPI OpenJobObjectA( DWORD, BOOL, LPCSTR );
WINBASEAPI HANDLE WINAPI OpenJobObjectW( DWORD, BOOL, LPCWSTR );
WINBASEAPI BOOL WINAPI QueryActCtxW( DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T * );
WINBASEAPI BOOL WINAPI QueryInformationJobObject( HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD );
WINBASEAPI BOOL WINAPI QueueUserWorkItem( LPTHREAD_START_ROUTINE, PVOID, ULONG );
WINBASEAPI BOOL WINAPI RegisterWaitForSingleObject( PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, ULONG, ULONG );
WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx( HANDLE, WAITORTIMERCALLBACK, PVOID, ULONG, ULONG );
WINBASEAPI VOID WINAPI ReleaseActCtx( HANDLE );
WINBASEAPI ULONG WINAPI RemoveVectoredContinueHandler( PVOID );
WINBASEAPI ULONG WINAPI RemoveVectoredExceptionHandler( PVOID );
WINBASEAPI BOOL WINAPI ReplaceFileA( LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID );
WINBASEAPI BOOL WINAPI ReplaceFileW( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID );
WINBASEAPI BOOL WINAPI SetComputerNameExA( COMPUTER_NAME_FORMAT, LPCSTR );
WINBASEAPI BOOL WINAPI SetComputerNameExW( COMPUTER_NAME_FORMAT, LPCWSTR );
WINBASEAPI BOOL WINAPI SetInformationJobObject( HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD );
WINBASEAPI HANDLE WINAPI SetTimerQueueTimer( HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, BOOL );
WINBASEAPI BOOL WINAPI SetVolumeMountPointA( LPCSTR, LPCSTR );
WINBASEAPI BOOL WINAPI SetVolumeMountPointW( LPCWSTR, LPCWSTR );
WINBASEAPI BOOL WINAPI TerminateJobObject( HANDLE, UINT );
WINBASEAPI BOOL WINAPI UnregisterWait( HANDLE );
WINBASEAPI BOOL WINAPI UnregisterWaitEx( HANDLE, HANDLE );
WINBASEAPI BOOL WINAPI ZombifyActCtx( HANDLE );
#endif
#if (_WIN32_WINNT >= 0x0501)
WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3A( LPCSTR, LPSTR, DWORD, PBOOL, PBOOL );
WINBASEAPI BOOL WINAPI CheckNameLegalDOS8Dot3W( LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL );
WINBASEAPI BOOL WINAPI CheckRemoteDebuggerPresent( HANDLE, PBOOL );
WINBASEAPI BOOL WINAPI ConvertFiberToThread( VOID );
WINBASEAPI HANDLE WINAPI CreateMemoryResourceNotification( MEMORY_RESOURCE_NOTIFICATION_TYPE );
WINBASEAPI HANDLE WINAPI FindFirstStreamW( LPCWSTR, STREAM_INFO_LEVELS, LPVOID, DWORD );
WINBASEAPI BOOL WINAPI FindNextStreamW( HANDLE, LPVOID );
WINBASEAPI BOOL WINAPI GetModuleHandleExA( DWORD, LPCSTR, HMODULE * );
WINBASEAPI BOOL WINAPI GetModuleHandleExW( DWORD, LPCWSTR, HMODULE * );
WINBASEAPI VOID WINAPI GetNativeSystemInfo( LPSYSTEM_INFO );
WINBASEAPI BOOL WINAPI GetProcessHandleCount( HANDLE, PDWORD );
WINBASEAPI BOOL WINAPI GetSystemRegistryQuota( PDWORD, PDWORD );
WINBASEAPI BOOL WINAPI GetSystemTimes( LPFILETIME, LPFILETIME, LPFILETIME );
WINBASEAPI UINT WINAPI GetSystemWow64DirectoryA( LPSTR, UINT );
WINBASEAPI UINT WINAPI GetSystemWow64DirectoryW( LPWSTR, UINT );
WINBASEAPI BOOL WINAPI GetThreadIOPendingFlag( HANDLE, PBOOL );
WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameA( LPCSTR, LPCH, DWORD, PDWORD );
WINBASEAPI BOOL WINAPI GetVolumePathNamesForVolumeNameW( LPCWSTR, LPWCH, DWORD, PDWORD );
WINBASEAPI BOOL WINAPI IsProcessInJob( HANDLE, HANDLE, PBOOL );
WINBASEAPI BOOL WINAPI IsWow64Process( HANDLE, PBOOL );
WINBASEAPI BOOL WINAPI QueryMemoryResourceNotification( HANDLE, PBOOL );
WINBASEAPI BOOL WINAPI SetFileValidData( HANDLE, LONGLONG );
WINBASEAPI DWORD WINAPI WTSGetActiveConsoleSessionId( VOID );
WINBASEAPI BOOL WINAPI Wow64DisableWow64FsRedirection( PVOID * );
WINBASEAPI BOOLEAN WINAPI Wow64EnableWow64FsRedirection( BOOLEAN );
WINBASEAPI BOOL WINAPI Wow64RevertWow64FsRedirection( PVOID );
#endif
#if (_WIN32_WINNT >= 0x0502)
WINBASEAPI DWORD WINAPI GetDllDirectoryA( DWORD, LPSTR );
WINBASEAPI DWORD WINAPI GetDllDirectoryW( DWORD, LPWSTR );
WINBASEAPI BOOL WINAPI GetSystemFileCacheSize( PSIZE_T, PSIZE_T, PDWORD );
WINBASEAPI DWORD WINAPI GetThreadId( HANDLE );
WINBASEAPI LONGLONG WINAPI InterlockedCompareExchange64( LONGLONG volatile *, LONGLONG, LONGLONG );
WINBASEAPI BOOL WINAPI NeedCurrentDirectoryForExePathA( LPCSTR );
WINBASEAPI BOOL WINAPI NeedCurrentDirectoryForExePathW( LPCWSTR );
WINBASEAPI HANDLE WINAPI ReOpenFile( HANDLE, DWORD, DWORD, DWORD );
WINBASEAPI BOOL WINAPI SetDllDirectoryA( LPCSTR );
WINBASEAPI BOOL WINAPI SetDllDirectoryW( LPCWSTR );
WINBASEAPI BOOL WINAPI SetSystemFileCacheSize( SIZE_T, SIZE_T, DWORD );
#endif
#if (_WIN32_WINNT >= 0x0600)
WINBASEAPI BOOL WINAPI AddIntegrityLabelToBoundaryDescriptor( HANDLE *, PSID );
WINBASEAPI BOOL WINAPI AddSIDToBoundaryDescriptor( HANDLE *, PSID );
WINBASEAPI BOOL WINAPI AddSecureMemoryCacheCallback( PSECURE_MEMORY_CACHE_CALLBACK );
WINBASEAPI BOOL WINAPI AllocateUserPhysicalPagesNuma( HANDLE, PULONG_PTR, PULONG_PTR, DWORD );
WINBASEAPI BOOL WINAPI CallbackMayRunLong( PTP_CALLBACK_INSTANCE );
WINBASEAPI VOID WINAPI CancelThreadpoolIo( PTP_IO );
WINBASEAPI BOOLEAN WINAPI ClosePrivateNamespace( HANDLE, ULONG );
WINBASEAPI VOID WINAPI CloseThreadpool( PTP_POOL );
WINBASEAPI VOID WINAPI CloseThreadpoolCleanupGroup( PTP_CLEANUP_GROUP );
WINBASEAPI VOID WINAPI CloseThreadpoolCleanupGroupMembers( PTP_CLEANUP_GROUP, BOOL, PVOID );
WINBASEAPI VOID WINAPI CloseThreadpoolIo( PTP_IO );
WINBASEAPI VOID WINAPI CloseThreadpoolTimer( PTP_TIMER );
WINBASEAPI VOID WINAPI CloseThreadpoolWait( PTP_WAIT );
WINBASEAPI VOID WINAPI CloseThreadpoolWork( PTP_WORK );
WINBASEAPI BOOL WINAPI CopyFileTransactedA( LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD, HANDLE );
WINBASEAPI BOOL WINAPI CopyFileTransactedW( LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, LPBOOL, DWORD, HANDLE );
WINBASEAPI HANDLE WINAPI CreateBoundaryDescriptorA( LPCSTR, ULONG );
WINBASEAPI HANDLE WINAPI CreateBoundaryDescriptorW( LPCWSTR, ULONG );
WINBASEAPI BOOL WINAPI CreateDirectoryTransactedA( LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES, HANDLE );
WINBASEAPI BOOL WINAPI CreateDirectoryTransactedW( LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, HANDLE );
WINBASEAPI HANDLE WINAPI CreateEventExA( LPSECURITY_ATTRIBUTES, LPCSTR, DWORD, DWORD );
WINBASEAPI HANDLE WINAPI CreateEventExW( LPSECURITY_ATTRIBUTES, LPCWSTR, DWORD, DWORD );
WINBASEAPI HANDLE WINAPI CreateFileMappingNumaA( HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR, DWORD );
WINBASEAPI HANDLE WINAPI CreateFileMappingNumaW( HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR, DWORD );
WINBASEAPI HANDLE WINAPI CreateFileTransactedA( LPCSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE, HANDLE, PUSHORT, PVOID );
WINBASEAPI HANDLE WINAPI CreateFileTransactedW( LPCWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD, DWORD, HANDLE, HANDLE, PUSHORT, PVOID );
WINBASEAPI BOOL WINAPI CreateHardLinkTransactedA( LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES, HANDLE );
WINBASEAPI BOOL WINAPI CreateHardLinkTransactedW( LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES, HANDLE );
WINBASEAPI HANDLE WINAPI CreateMutexExA( LPSECURITY_ATTRIBUTES, LPCSTR, DWORD, DWORD );
WINBASEAPI HANDLE WINAPI CreateMutexExW( LPSECURITY_ATTRIBUTES, LPCWSTR, DWORD, DWORD );
WINBASEAPI HANDLE WINAPI CreatePrivateNamespaceA( LPSECURITY_ATTRIBUTES, LPVOID, LPCSTR );
WINBASEAPI HANDLE WINAPI CreatePrivateNamespaceW( LPSECURITY_ATTRIBUTES, LPVOID, LPCWSTR );
WINBASEAPI HANDLE WINAPI CreateSemaphoreExA( LPSECURITY_ATTRIBUTES, LONG, LONG, LPCSTR, DWORD, DWORD );
WINBASEAPI HANDLE WINAPI CreateSemaphoreExW( LPSECURITY_ATTRIBUTES, LONG, LONG, LPCWSTR, DWORD, DWORD );
WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkA( LPCSTR, LPCSTR, DWORD );
WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkTransactedA( LPCSTR, LPCSTR, DWORD, HANDLE );
WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkTransactedW( LPCWSTR, LPCWSTR, DWORD, HANDLE );
WINBASEAPI BOOLEAN WINAPI CreateSymbolicLinkW( LPCWSTR, LPCWSTR, DWORD );
WINBASEAPI PTP_POOL WINAPI CreateThreadpool( PVOID );
WINBASEAPI PTP_CLEANUP_GROUP WINAPI CreateThreadpoolCleanupGroup( VOID );
WINBASEAPI PTP_IO WINAPI CreateThreadpoolIo( HANDLE, PTP_WIN32_IO_CALLBACK, PVOID, PTP_CALLBACK_ENVIRON );
WINBASEAPI PTP_TIMER WINAPI CreateThreadpoolTimer( PTP_TIMER_CALLBACK, PVOID, PTP_CALLBACK_ENVIRON );
WINBASEAPI PTP_WAIT WINAPI CreateThreadpoolWait( PTP_WAIT_CALLBACK, PVOID, PTP_CALLBACK_ENVIRON );
WINBASEAPI PTP_WORK WINAPI CreateThreadpoolWork( PTP_WORK_CALLBACK, PVOID, PTP_CALLBACK_ENVIRON );
WINBASEAPI HANDLE WINAPI CreateWaitableTimerExA( LPSECURITY_ATTRIBUTES, LPCSTR, DWORD, DWORD );
WINBASEAPI HANDLE WINAPI CreateWaitableTimerExW( LPSECURITY_ATTRIBUTES, LPCWSTR, DWORD, DWORD );
WINBASEAPI VOID WINAPI DeleteBoundaryDescriptor( HANDLE );
WINBASEAPI BOOL WINAPI DeleteFileTransactedA( LPCSTR, HANDLE );
WINBASEAPI BOOL WINAPI DeleteFileTransactedW( LPCWSTR, HANDLE );
WINBASEAPI VOID WINAPI DeleteProcThreadAttributeList( LPPROC_THREAD_ATTRIBUTE_LIST );
WINBASEAPI VOID WINAPI DisassociateCurrentThreadFromCallback( PTP_CALLBACK_INSTANCE );
WINBASEAPI HANDLE WINAPI FindFirstFileNameTransactedW( LPCWSTR, DWORD, LPDWORD, PWCHAR, HANDLE );
WINBASEAPI HANDLE WINAPI FindFirstFileNameW( LPCWSTR, DWORD, LPDWORD, PWCHAR );
WINBASEAPI HANDLE WINAPI FindFirstFileTransactedA( LPCSTR, FINDEX_INFO_LEVELS, LPVOID, FINDEX_SEARCH_OPS, LPVOID, DWORD, HANDLE );
WINBASEAPI HANDLE WINAPI FindFirstFileTransactedW( LPCWSTR, FINDEX_INFO_LEVELS, LPVOID, FINDEX_SEARCH_OPS, LPVOID, DWORD, HANDLE );
WINBASEAPI HANDLE WINAPI FindFirstStreamTransactedW( LPCWSTR, STREAM_INFO_LEVELS, LPVOID, DWORD, HANDLE );
WINBASEAPI BOOL WINAPI FindNextFileNameW( HANDLE, LPDWORD, PWCHAR );
WINBASEAPI VOID WINAPI FlushProcessWriteBuffers( VOID );
WINBASEAPI VOID WINAPI FreeLibraryWhenCallbackReturns( PTP_CALLBACK_INSTANCE, HMODULE );
WINBASEAPI DWORD WINAPI GetCompressedFileSizeTransactedA( LPCSTR, LPDWORD, HANDLE );
WINBASEAPI DWORD WINAPI GetCompressedFileSizeTransactedW( LPCWSTR, LPDWORD, HANDLE );
WINBASEAPI BOOL WINAPI GetFileAttributesTransactedA( LPCSTR, GET_FILEEX_INFO_LEVELS, LPVOID, HANDLE );
WINBASEAPI BOOL WINAPI GetFileAttributesTransactedW( LPCWSTR, GET_FILEEX_INFO_LEVELS, LPVOID, HANDLE );
WINBASEAPI BOOL WINAPI GetFileInformationByHandleEx( HANDLE, FILE_INFO_BY_HANDLE_CLASS, LPVOID, DWORD );
WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleA( HANDLE, LPSTR, DWORD, DWORD );
WINBASEAPI DWORD WINAPI GetFinalPathNameByHandleW( HANDLE, LPWSTR, DWORD, DWORD );
WINBASEAPI DWORD WINAPI GetFullPathNameTransactedA( LPCSTR, DWORD, LPSTR, LPSTR *, HANDLE );
WINBASEAPI DWORD WINAPI GetFullPathNameTransactedW( LPCWSTR, DWORD, LPWSTR, LPWSTR *, HANDLE );
WINBASEAPI DWORD WINAPI GetLongPathNameTransactedA( LPCSTR, LPSTR, DWORD, HANDLE );
WINBASEAPI DWORD WINAPI GetLongPathNameTransactedW( LPCWSTR, LPWSTR, DWORD, HANDLE );
WINBASEAPI BOOL WINAPI GetNumaProximityNode( ULONG, PUCHAR );
WINBASEAPI BOOL WINAPI GetProcessDEPPolicy( HANDLE, LPDWORD, PBOOL );
WINBASEAPI BOOL WINAPI GetProductInfo( DWORD, DWORD, DWORD, DWORD, PDWORD );
WINBASEAPI BOOL WINAPI GetQueuedCompletionStatusEx( HANDLE, LPOVERLAPPED_ENTRY, ULONG, PULONG, DWORD, BOOL );
WINBASEAPI ULONGLONG WINAPI GetTickCount64( VOID );
WINBASEAPI BOOL WINAPI GetVolumeInformationByHandleW( HANDLE, LPWSTR, DWORD, LPDWORD, LPDWORD, LPDWORD, LPWSTR, DWORD );
WINBASEAPI BOOL WINAPI InitOnceBeginInitialize( LPINIT_ONCE, DWORD, PBOOL, LPVOID * );
WINBASEAPI BOOL WINAPI InitOnceComplete( LPINIT_ONCE, DWORD, LPVOID );
WINBASEAPI BOOL WINAPI InitOnceExecuteOnce( PINIT_ONCE, PINIT_ONCE_FN, PVOID, LPVOID * );
WINBASEAPI VOID WINAPI InitOnceInitialize( PINIT_ONCE );
WINBASEAPI BOOL WINAPI InitializeProcThreadAttributeList( LPPROC_THREAD_ATTRIBUTE_LIST, DWORD, DWORD, PSIZE_T );
WINBASEAPI BOOL WINAPI IsThreadAFiber( VOID );
WINBASEAPI BOOL WINAPI IsThreadpoolTimerSet( PTP_TIMER );
WINBASEAPI VOID WINAPI LeaveCriticalSectionWhenCallbackReturns( PTP_CALLBACK_INSTANCE, PCRITICAL_SECTION );
WINBASEAPI LPVOID WINAPI MapViewOfFileExNuma( HANDLE, DWORD, DWORD, DWORD, SIZE_T, LPVOID, DWORD );
WINBASEAPI BOOL WINAPI MoveFileTransactedA( LPCSTR, LPCSTR, LPPROGRESS_ROUTINE, LPVOID, DWORD, HANDLE );
WINBASEAPI BOOL WINAPI MoveFileTransactedW( LPCWSTR, LPCWSTR, LPPROGRESS_ROUTINE, LPVOID, DWORD, HANDLE );
WINBASEAPI HANDLE WINAPI OpenFileById( HANDLE, LPFILE_ID_DESCRIPTOR, DWORD, DWORD, LPSECURITY_ATTRIBUTES, DWORD );
WINBASEAPI HANDLE WINAPI OpenPrivateNamespaceA( LPVOID, LPCSTR );
WINBASEAPI HANDLE WINAPI OpenPrivateNamespaceW( LPVOID, LPCWSTR );
WINBASEAPI BOOL WINAPI QueryActCtxSettingsW( DWORD, HANDLE, PCWSTR, PCWSTR, PWSTR, SIZE_T, SIZE_T * );
WINBASEAPI BOOL WINAPI QueryFullProcessImageNameA( HANDLE, DWORD, LPSTR, PDWORD );
WINBASEAPI BOOL WINAPI QueryFullProcessImageNameW( HANDLE, DWORD, LPWSTR, PDWORD );
WINBASEAPI BOOL WINAPI QueryIdleProcessorCycleTime( PULONG, PULONG64 );
WINBASEAPI BOOL WINAPI QueryProcessAffinityUpdateMode( HANDLE, LPDWORD );
WINBASEAPI BOOL WINAPI QueryProcessCycleTime( HANDLE, PULONG64 );
WINBASEAPI BOOL WINAPI QueryThreadCycleTime( HANDLE, PULONG64 );
WINBASEAPI BOOL WINAPI QueryThreadpoolStackInformation( PTP_POOL, PTP_POOL_STACK_INFORMATION );
WINBASEAPI VOID WINAPI ReleaseMutexWhenCallbackReturns( PTP_CALLBACK_INSTANCE, HANDLE );
WINBASEAPI VOID WINAPI ReleaseSemaphoreWhenCallbackReturns( PTP_CALLBACK_INSTANCE, HANDLE, DWORD );
WINBASEAPI BOOL WINAPI RemoveDirectoryTransactedA( LPCSTR, HANDLE );
WINBASEAPI BOOL WINAPI RemoveDirectoryTransactedW( LPCWSTR, HANDLE );
WINBASEAPI BOOL WINAPI RemoveSecureMemoryCacheCallback( PSECURE_MEMORY_CACHE_CALLBACK );
WINBASEAPI BOOL WINAPI ReplacePartitionUnit( PWSTR, PWSTR, ULONG );
WINBASEAPI VOID WINAPI SetEventWhenCallbackReturns( PTP_CALLBACK_INSTANCE, HANDLE );
WINBASEAPI BOOL WINAPI SetFileAttributesTransactedA( LPCSTR, DWORD, HANDLE );
WINBASEAPI BOOL WINAPI SetFileAttributesTransactedW( LPCWSTR, DWORD, HANDLE );
WINBASEAPI BOOL WINAPI SetFileCompletionNotificationModes( HANDLE, UCHAR );
WINBASEAPI BOOL WINAPI SetFileInformationByHandle( HANDLE, FILE_INFO_BY_HANDLE_CLASS, LPVOID, DWORD );
WINBASEAPI BOOL WINAPI SetFileIoOverlappedRange( HANDLE, PUCHAR, ULONG );
WINBASEAPI BOOL WINAPI SetProcessAffinityUpdateMode( HANDLE, DWORD );
WINBASEAPI BOOL WINAPI SetProcessDEPPolicy( DWORD );
WINBASEAPI BOOL WINAPI SetStdHandleEx( DWORD, HANDLE, PHANDLE );
WINBASEAPI BOOL WINAPI SetThreadpoolStackInformation( PTP_POOL, PTP_POOL_STACK_INFORMATION );
WINBASEAPI VOID WINAPI SetThreadpoolThreadMaximum( PTP_POOL, DWORD );
WINBASEAPI VOID WINAPI SetThreadpoolTimer( PTP_TIMER, PFILETIME, DWORD, DWORD );
WINBASEAPI VOID WINAPI SetThreadpoolWait( PTP_WAIT, HANDLE, PFILETIME );
WINBASEAPI VOID WINAPI StartThreadpoolIo( PTP_IO );
WINBASEAPI VOID WINAPI SubmitThreadpoolWork( PTP_WORK );
WINBASEAPI BOOL WINAPI TrySubmitThreadpoolCallback( PTP_SIMPLE_CALLBACK, PVOID, PTP_CALLBACK_ENVIRON );
WINBASEAPI BOOL WINAPI UpdateProcThreadAttribute( LPPROC_THREAD_ATTRIBUTE_LIST, DWORD, DWORD_PTR, PVOID, SIZE_T, PVOID, PSIZE_T );
WINBASEAPI LPVOID WINAPI VirtualAllocExNuma( HANDLE, LPVOID, SIZE_T, DWORD, DWORD, DWORD );
WINBASEAPI VOID WINAPI WaitForThreadpoolIoCallbacks( PTP_IO, BOOL );
WINBASEAPI VOID WINAPI WaitForThreadpoolTimerCallbacks( PTP_TIMER, BOOL );
WINBASEAPI VOID WINAPI WaitForThreadpoolWaitCallbacks( PTP_WAIT, BOOL );
WINBASEAPI VOID WINAPI WaitForThreadpoolWorkCallbacks( PTP_WORK, BOOL );
#endif
#if (_WIN32_WINNT >= 0x0601)
WINBASEAPI BOOL WINAPI CopyExtendedContext( PCONTEXT_EX, DWORD, PCONTEXT_EX );
WINBASEAPI DWORD WINAPI DisableThreadProfiling( HANDLE );
WINBASEAPI DWORD WINAPI EnableThreadProfiling( HANDLE, DWORD, DWORD64, HANDLE * );
WINBASEAPI DWORD WINAPI GetActiveProcessorCount( WORD );
WINBASEAPI WORD WINAPI GetActiveProcessorGroupCount( VOID );
WINBASEAPI VOID WINAPI GetCurrentProcessorNumberEx( PPROCESSOR_NUMBER );
WINBASEAPI DWORD64 WINAPI GetEnabledExtendedFeatures( DWORD64 );
WINBASEAPI BOOL WINAPI GetExtendedContextLength( DWORD, PDWORD );
WINBASEAPI DWORD64 WINAPI GetExtendedFeaturesMask( PCONTEXT_EX );
WINBASEAPI BOOL WINAPI GetLogicalProcessorInformationEx( LOGICAL_PROCESSOR_RELATIONSHIP, PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX, PDWORD );
WINBASEAPI DWORD WINAPI GetMaximumProcessorCount( WORD );
WINBASEAPI WORD WINAPI GetMaximumProcessorGroupCount( VOID );
WINBASEAPI BOOL WINAPI GetNumaAvailableMemoryNodeEx( USHORT, PULONGLONG );
WINBASEAPI BOOL WINAPI GetNumaNodeNumberFromHandle( HANDLE, PUSHORT );
WINBASEAPI BOOL WINAPI GetNumaNodeProcessorMaskEx( USHORT, PGROUP_AFFINITY );
WINBASEAPI BOOL WINAPI GetNumaProcessorNodeEx( PPROCESSOR_NUMBER, PUSHORT );
WINBASEAPI BOOL WINAPI GetNumaProximityNodeEx( ULONG, PUSHORT );
WINBASEAPI BOOL WINAPI GetProcessGroupAffinity( HANDLE, PUSHORT, PUSHORT );
WINBASEAPI BOOL WINAPI GetProcessorSystemCycleTime( USHORT, PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, PDWORD );
WINBASEAPI BOOL WINAPI GetThreadGroupAffinity( HANDLE, PGROUP_AFFINITY );
WINBASEAPI BOOL WINAPI GetThreadIdealProcessorEx( HANDLE, PPROCESSOR_NUMBER );
WINBASEAPI BOOL WINAPI InitializeExtendedContext( PVOID, DWORD, PCONTEXT_EX * );
WINBASEAPI PVOID WINAPI LocateExtendedFeature( PCONTEXT_EX, DWORD, PDWORD );
WINBASEAPI PCONTEXT WINAPI LocateLegacyContext( PCONTEXT_EX, PDWORD );
WINBASEAPI BOOL WINAPI PowerClearRequest( HANDLE, POWER_REQUEST_TYPE );
WINBASEAPI HANDLE WINAPI PowerCreateRequest( PREASON_CONTEXT );
WINBASEAPI BOOL WINAPI PowerSetRequest( HANDLE, POWER_REQUEST_TYPE );
WINBASEAPI BOOL WINAPI QueryIdleProcessorCycleTimeEx( USHORT, PULONG, PULONG64 );
WINBASEAPI DWORD WINAPI QueryThreadProfiling( HANDLE, PBOOLEAN );
WINBASEAPI BOOL WINAPI QueryUnbiasedInterruptTime( PULONGLONG );
WINBASEAPI DWORD WINAPI ReadThreadProfilingData( HANDLE, DWORD, PPERFORMANCE_DATA );
WINBASEAPI VOID WINAPI SetExtendedFeaturesMask( PCONTEXT_EX, DWORD64 );
WINBASEAPI BOOL WINAPI SetThreadGroupAffinity( HANDLE, CONST GROUP_AFFINITY *, PGROUP_AFFINITY );
WINBASEAPI BOOL WINAPI SetThreadIdealProcessorEx( HANDLE, PPROCESSOR_NUMBER, PPROCESSOR_NUMBER );
WINBASEAPI BOOL WINAPI SetWaitableTimerEx( HANDLE, const LARGE_INTEGER *, LONG, PTIMERAPCROUTINE, LPVOID, PREASON_CONTEXT, ULONG );
WINBASEAPI BOOL WINAPI Wow64GetThreadSelectorEntry( HANDLE, DWORD, PWOW64_LDT_ENTRY );
#endif
/* Functions in ADVAPI32.DLL */
WINADVAPI BOOL WINAPI AccessCheck( PSECURITY_DESCRIPTOR, HANDLE, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, LPDWORD, LPDWORD, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckAndAuditAlarmA( LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPBOOL, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckAndAuditAlarmW( LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPBOOL, LPBOOL );
WINADVAPI BOOL WINAPI AddAccessAllowedAce( PACL, DWORD, DWORD, PSID );
WINADVAPI BOOL WINAPI AddAccessDeniedAce( PACL, DWORD, DWORD, PSID );
WINADVAPI BOOL WINAPI AddAce( PACL, DWORD, DWORD, LPVOID, DWORD );
WINADVAPI BOOL WINAPI AddAuditAccessAce( PACL, DWORD, DWORD, PSID, BOOL, BOOL );
WINADVAPI BOOL WINAPI AdjustTokenGroups( HANDLE, BOOL, PTOKEN_GROUPS, DWORD, PTOKEN_GROUPS, PDWORD );
WINADVAPI BOOL WINAPI AdjustTokenPrivileges( HANDLE, BOOL, PTOKEN_PRIVILEGES, DWORD, PTOKEN_PRIVILEGES, PDWORD );
WINADVAPI BOOL WINAPI AllocateAndInitializeSid( PSID_IDENTIFIER_AUTHORITY, BYTE, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, DWORD, PSID * );
WINADVAPI BOOL WINAPI AllocateLocallyUniqueId( PLUID );
WINADVAPI BOOL WINAPI AreAllAccessesGranted( DWORD, DWORD );
WINADVAPI BOOL WINAPI AreAnyAccessesGranted( DWORD, DWORD );
WINADVAPI BOOL WINAPI BackupEventLogA( HANDLE, LPCSTR );
WINADVAPI BOOL WINAPI BackupEventLogW( HANDLE, LPCWSTR );
WINADVAPI BOOL WINAPI CheckTokenMembership( HANDLE, PSID, PBOOL );
WINADVAPI BOOL WINAPI ClearEventLogA( HANDLE, LPCSTR );
WINADVAPI BOOL WINAPI ClearEventLogW( HANDLE, LPCWSTR );
WINADVAPI VOID WINAPI CloseEncryptedFileRaw( PVOID );
WINADVAPI BOOL WINAPI CloseEventLog( HANDLE );
WINADVAPI BOOL WINAPI CopySid( DWORD, PSID, PSID );
WINADVAPI BOOL WINAPI CreatePrivateObjectSecurity( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *, BOOL, HANDLE, PGENERIC_MAPPING );
WINADVAPI BOOL WINAPI CreateProcessAsUserA( HANDLE, LPCSTR, LPSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCSTR, LPSTARTUPINFOA, LPPROCESS_INFORMATION );
WINADVAPI BOOL WINAPI CreateProcessAsUserW( HANDLE, LPCWSTR, LPWSTR, LPSECURITY_ATTRIBUTES, LPSECURITY_ATTRIBUTES, BOOL, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION );
WINADVAPI BOOL WINAPI CreateRestrictedToken( HANDLE, DWORD, DWORD, PSID_AND_ATTRIBUTES, DWORD, PLUID_AND_ATTRIBUTES, DWORD, PSID_AND_ATTRIBUTES, PHANDLE );
WINADVAPI BOOL WINAPI DecryptFileA( LPCSTR, DWORD );
WINADVAPI BOOL WINAPI DecryptFileW( LPCWSTR, DWORD );
WINADVAPI BOOL WINAPI DeleteAce( PACL, DWORD );
WINADVAPI BOOL WINAPI DeregisterEventSource( HANDLE );
WINADVAPI BOOL WINAPI DestroyPrivateObjectSecurity( PSECURITY_DESCRIPTOR * );
WINADVAPI BOOL WINAPI DuplicateToken( HANDLE, SECURITY_IMPERSONATION_LEVEL, PHANDLE );
WINADVAPI BOOL WINAPI DuplicateTokenEx( HANDLE, DWORD, LPSECURITY_ATTRIBUTES, SECURITY_IMPERSONATION_LEVEL, TOKEN_TYPE, PHANDLE );
WINADVAPI BOOL WINAPI EncryptFileA( LPCSTR );
WINADVAPI BOOL WINAPI EncryptFileW( LPCWSTR );
WINADVAPI BOOL WINAPI EqualPrefixSid( PSID, PSID );
WINADVAPI BOOL WINAPI EqualSid( PSID, PSID );
WINADVAPI BOOL WINAPI FileEncryptionStatusA( LPCSTR, LPDWORD );
WINADVAPI BOOL WINAPI FileEncryptionStatusW( LPCWSTR, LPDWORD );
WINADVAPI BOOL WINAPI FindFirstFreeAce( PACL, LPVOID * );
WINADVAPI PVOID WINAPI FreeSid( PSID );
WINADVAPI BOOL WINAPI GetAce( PACL, DWORD, LPVOID * );
WINADVAPI BOOL WINAPI GetAclInformation( PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS );
WINADVAPI BOOL WINAPI GetEventLogInformation( HANDLE, DWORD, LPVOID, DWORD, LPDWORD );
WINADVAPI BOOL WINAPI GetFileSecurityA( LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD );
WINADVAPI BOOL WINAPI GetFileSecurityW( LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD );
WINADVAPI BOOL WINAPI GetKernelObjectSecurity( HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, LPDWORD );
WINADVAPI DWORD WINAPI GetLengthSid( PSID );
WINADVAPI BOOL WINAPI GetNumberOfEventLogRecords( HANDLE, PDWORD );
WINADVAPI BOOL WINAPI GetOldestEventLogRecord( HANDLE, PDWORD );
WINADVAPI BOOL WINAPI GetPrivateObjectSecurity( PSECURITY_DESCRIPTOR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD );
WINADVAPI BOOL WINAPI GetSecurityDescriptorControl( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR_CONTROL, LPDWORD );
WINADVAPI BOOL WINAPI GetSecurityDescriptorDacl( PSECURITY_DESCRIPTOR, LPBOOL, PACL *, LPBOOL );
WINADVAPI BOOL WINAPI GetSecurityDescriptorGroup( PSECURITY_DESCRIPTOR, PSID *, LPBOOL );
WINADVAPI DWORD WINAPI GetSecurityDescriptorLength( PSECURITY_DESCRIPTOR );
WINADVAPI BOOL WINAPI GetSecurityDescriptorOwner( PSECURITY_DESCRIPTOR, PSID *, LPBOOL );
WINADVAPI DWORD WINAPI GetSecurityDescriptorRMControl( PSECURITY_DESCRIPTOR, PUCHAR );
WINADVAPI BOOL WINAPI GetSecurityDescriptorSacl( PSECURITY_DESCRIPTOR, LPBOOL, PACL *, LPBOOL );
WINADVAPI PSID_IDENTIFIER_AUTHORITY WINAPI GetSidIdentifierAuthority( PSID );
WINADVAPI DWORD WINAPI GetSidLengthRequired( UCHAR );
WINADVAPI PDWORD WINAPI GetSidSubAuthority( PSID, DWORD );
WINADVAPI PUCHAR WINAPI GetSidSubAuthorityCount( PSID );
WINADVAPI BOOL WINAPI GetTokenInformation( HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD, PDWORD );
WINADVAPI BOOL WINAPI GetUserNameA( LPSTR, LPDWORD );
WINADVAPI BOOL WINAPI GetUserNameW( LPWSTR, LPDWORD );
WINADVAPI BOOL WINAPI ImpersonateAnonymousToken( HANDLE );
WINADVAPI BOOL WINAPI ImpersonateLoggedOnUser( HANDLE );
WINADVAPI BOOL WINAPI ImpersonateNamedPipeClient( HANDLE );
WINADVAPI BOOL WINAPI ImpersonateSelf( SECURITY_IMPERSONATION_LEVEL );
WINADVAPI BOOL WINAPI InitializeAcl( PACL, DWORD, DWORD );
WINADVAPI BOOL WINAPI InitializeSecurityDescriptor( PSECURITY_DESCRIPTOR, DWORD );
WINADVAPI BOOL WINAPI InitializeSid( PSID, PSID_IDENTIFIER_AUTHORITY, BYTE );
WINADVAPI BOOL WINAPI IsTextUnicode( CONST VOID *, int, LPINT );
WINADVAPI BOOL WINAPI IsTokenRestricted( HANDLE );
WINADVAPI BOOL WINAPI IsTokenUntrusted( HANDLE );
WINADVAPI BOOL WINAPI IsValidAcl( PACL );
WINADVAPI BOOL WINAPI IsValidRelativeSecurityDescriptor( PSECURITY_DESCRIPTOR, ULONG, SECURITY_INFORMATION );
WINADVAPI BOOL WINAPI IsValidSecurityDescriptor( PSECURITY_DESCRIPTOR );
WINADVAPI BOOL WINAPI IsValidSid( PSID );
WINADVAPI BOOL WINAPI LogonUserA( LPCSTR, LPCSTR, LPCSTR, DWORD, DWORD, PHANDLE );
WINADVAPI BOOL WINAPI LogonUserExA( LPCSTR, LPCSTR, LPCSTR, DWORD, DWORD, PHANDLE, PSID *, PVOID *, LPDWORD, PQUOTA_LIMITS );
WINADVAPI BOOL WINAPI LogonUserExW( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, PHANDLE, PSID *, PVOID *, LPDWORD, PQUOTA_LIMITS );
WINADVAPI BOOL WINAPI LogonUserW( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, DWORD, PHANDLE );
WINADVAPI BOOL WINAPI LookupAccountNameA( LPCSTR, LPCSTR, PSID, LPDWORD, LPSTR, LPDWORD, PSID_NAME_USE );
WINADVAPI BOOL WINAPI LookupAccountNameW( LPCWSTR, LPCWSTR, PSID, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE );
WINADVAPI BOOL WINAPI LookupAccountSidA( LPCSTR, PSID, LPSTR, LPDWORD, LPSTR, LPDWORD, PSID_NAME_USE );
WINADVAPI BOOL WINAPI LookupAccountSidW( LPCWSTR, PSID, LPWSTR, LPDWORD, LPWSTR, LPDWORD, PSID_NAME_USE );
WINADVAPI BOOL WINAPI LookupPrivilegeDisplayNameA( LPCSTR, LPCSTR, LPSTR, LPDWORD, LPDWORD );
WINADVAPI BOOL WINAPI LookupPrivilegeDisplayNameW( LPCWSTR, LPCWSTR, LPWSTR, LPDWORD, LPDWORD );
WINADVAPI BOOL WINAPI LookupPrivilegeNameA( LPCSTR, PLUID, LPSTR, LPDWORD );
WINADVAPI BOOL WINAPI LookupPrivilegeNameW( LPCWSTR, PLUID, LPWSTR, LPDWORD );
WINADVAPI BOOL WINAPI LookupPrivilegeValueA( LPCSTR, LPCSTR, PLUID );
WINADVAPI BOOL WINAPI LookupPrivilegeValueW( LPCWSTR, LPCWSTR, PLUID );
WINADVAPI BOOL WINAPI MakeAbsoluteSD( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, LPDWORD, PACL, LPDWORD, PACL, LPDWORD, PSID, LPDWORD, PSID, LPDWORD );
WINADVAPI BOOL WINAPI MakeAbsoluteSD2( PSECURITY_DESCRIPTOR, LPDWORD );
WINADVAPI BOOL WINAPI MakeSelfRelativeSD( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, LPDWORD );
WINADVAPI VOID WINAPI MapGenericMask( PDWORD, PGENERIC_MAPPING );
WINADVAPI BOOL WINAPI NotifyChangeEventLog( HANDLE, HANDLE );
WINADVAPI BOOL WINAPI ObjectCloseAuditAlarmA( LPCSTR, LPVOID, BOOL );
WINADVAPI BOOL WINAPI ObjectCloseAuditAlarmW( LPCWSTR, LPVOID, BOOL );
WINADVAPI BOOL WINAPI ObjectDeleteAuditAlarmA( LPCSTR, LPVOID, BOOL );
WINADVAPI BOOL WINAPI ObjectDeleteAuditAlarmW( LPCWSTR, LPVOID, BOOL );
WINADVAPI BOOL WINAPI ObjectOpenAuditAlarmA( LPCSTR, LPVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, LPBOOL );
WINADVAPI BOOL WINAPI ObjectOpenAuditAlarmW( LPCWSTR, LPVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, LPBOOL );
WINADVAPI BOOL WINAPI ObjectPrivilegeAuditAlarmA( LPCSTR, LPVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL );
WINADVAPI BOOL WINAPI ObjectPrivilegeAuditAlarmW( LPCWSTR, LPVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL );
WINADVAPI HANDLE WINAPI OpenBackupEventLogA( LPCSTR, LPCSTR );
WINADVAPI HANDLE WINAPI OpenBackupEventLogW( LPCWSTR, LPCWSTR );
WINADVAPI DWORD WINAPI OpenEncryptedFileRawA( LPCSTR, ULONG, PVOID * );
WINADVAPI DWORD WINAPI OpenEncryptedFileRawW( LPCWSTR, ULONG, PVOID * );
WINADVAPI HANDLE WINAPI OpenEventLogA( LPCSTR, LPCSTR );
WINADVAPI HANDLE WINAPI OpenEventLogW( LPCWSTR, LPCWSTR );
WINADVAPI BOOL WINAPI OpenProcessToken( HANDLE, DWORD, PHANDLE );
WINADVAPI BOOL WINAPI OpenThreadToken( HANDLE, DWORD, BOOL, PHANDLE );
WINADVAPI BOOL WINAPI PrivilegeCheck( HANDLE, PPRIVILEGE_SET, LPBOOL );
WINADVAPI BOOL WINAPI PrivilegedServiceAuditAlarmA( LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL );
WINADVAPI BOOL WINAPI PrivilegedServiceAuditAlarmW( LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL );
WINADVAPI VOID WINAPI QuerySecurityAccessMask( SECURITY_INFORMATION, LPDWORD );
WINADVAPI DWORD WINAPI ReadEncryptedFileRaw( PFE_EXPORT_FUNC, PVOID, PVOID );
WINADVAPI BOOL WINAPI ReadEventLogA( HANDLE, DWORD, DWORD, LPVOID, DWORD, DWORD *, DWORD * );
WINADVAPI BOOL WINAPI ReadEventLogW( HANDLE, DWORD, DWORD, LPVOID, DWORD, DWORD *, DWORD * );
WINADVAPI HANDLE WINAPI RegisterEventSourceA( LPCSTR, LPCSTR );
WINADVAPI HANDLE WINAPI RegisterEventSourceW( LPCWSTR, LPCWSTR );
WINADVAPI BOOL WINAPI ReportEventA( HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR *, LPVOID );
WINADVAPI BOOL WINAPI ReportEventW( HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR *, LPVOID );
WINADVAPI BOOL WINAPI RevertToSelf( VOID );
WINADVAPI BOOL WINAPI SetAclInformation( PACL, LPVOID, DWORD, ACL_INFORMATION_CLASS );
WINADVAPI BOOL WINAPI SetFileSecurityA( LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR );
WINADVAPI BOOL WINAPI SetFileSecurityW( LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR );
WINADVAPI BOOL WINAPI SetKernelObjectSecurity( HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR );
WINADVAPI BOOL WINAPI SetPrivateObjectSecurity( SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *, PGENERIC_MAPPING, HANDLE );
WINADVAPI VOID WINAPI SetSecurityAccessMask( SECURITY_INFORMATION, LPDWORD );
WINADVAPI BOOL WINAPI SetSecurityDescriptorDacl( PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL );
WINADVAPI BOOL WINAPI SetSecurityDescriptorGroup( PSECURITY_DESCRIPTOR, PSID, BOOL );
WINADVAPI BOOL WINAPI SetSecurityDescriptorOwner( PSECURITY_DESCRIPTOR, PSID, BOOL );
WINADVAPI DWORD WINAPI SetSecurityDescriptorRMControl( PSECURITY_DESCRIPTOR, PUCHAR );
WINADVAPI BOOL WINAPI SetSecurityDescriptorSacl( PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL );
WINADVAPI BOOL WINAPI SetThreadToken( PHANDLE, HANDLE );
WINADVAPI BOOL WINAPI SetTokenInformation( HANDLE, TOKEN_INFORMATION_CLASS, LPVOID, DWORD );
WINADVAPI DWORD WINAPI WriteEncryptedFileRaw( PFE_IMPORT_FUNC, PVOID, PVOID );
#if (_WIN32_WINNT >= 0x0400)
WINADVAPI BOOL WINAPI GetCurrentHwProfileA( LPHW_PROFILE_INFOA );
WINADVAPI BOOL WINAPI GetCurrentHwProfileW( LPHW_PROFILE_INFOW );
#endif
#if (_WIN32_WINNT >= 0x0500)
WINADVAPI BOOL WINAPI AccessCheckByType( PSECURITY_DESCRIPTOR, PSID, HANDLE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, LPDWORD, LPDWORD, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckByTypeAndAuditAlarmA( LPCSTR, LPVOID, LPCSTR, LPCSTR, PSECURITY_DESCRIPTOR, PSID, DWORD, AUDIT_EVENT_TYPE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPBOOL, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckByTypeAndAuditAlarmW( LPCWSTR, LPVOID, LPCWSTR, LPCWSTR, PSECURITY_DESCRIPTOR, PSID, DWORD, AUDIT_EVENT_TYPE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPBOOL, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckByTypeResultList( PSECURITY_DESCRIPTOR, PSID, HANDLE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, PPRIVILEGE_SET, LPDWORD, LPDWORD, LPDWORD );
WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmA( LPCSTR, LPVOID, LPCSTR, LPCSTR, PSECURITY_DESCRIPTOR, PSID, DWORD, AUDIT_EVENT_TYPE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPDWORD, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleA( LPCSTR, LPVOID, HANDLE, LPCSTR, LPCSTR, PSECURITY_DESCRIPTOR, PSID, DWORD, AUDIT_EVENT_TYPE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPDWORD, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmByHandleW( LPCWSTR, LPVOID, HANDLE, LPCWSTR, LPCWSTR, PSECURITY_DESCRIPTOR, PSID, DWORD, AUDIT_EVENT_TYPE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPDWORD, LPBOOL );
WINADVAPI BOOL WINAPI AccessCheckByTypeResultListAndAuditAlarmW( LPCWSTR, LPVOID, LPCWSTR, LPCWSTR, PSECURITY_DESCRIPTOR, PSID, DWORD, AUDIT_EVENT_TYPE, DWORD, POBJECT_TYPE_LIST, DWORD, PGENERIC_MAPPING, BOOL, LPDWORD, LPDWORD, LPBOOL );
WINADVAPI BOOL WINAPI AddAccessAllowedAceEx( PACL, DWORD, DWORD, DWORD, PSID );
WINADVAPI BOOL WINAPI AddAccessAllowedObjectAce( PACL, DWORD, DWORD, DWORD, GUID *, GUID *, PSID );
WINADVAPI BOOL WINAPI AddAccessDeniedAceEx( PACL, DWORD, DWORD, DWORD, PSID );
WINADVAPI BOOL WINAPI AddAccessDeniedObjectAce( PACL, DWORD, DWORD, DWORD, GUID *, GUID *, PSID );
WINADVAPI BOOL WINAPI AddAuditAccessAceEx( PACL, DWORD, DWORD, DWORD, PSID, BOOL, BOOL );
WINADVAPI BOOL WINAPI AddAuditAccessObjectAce( PACL, DWORD, DWORD, DWORD, GUID *, GUID *, PSID, BOOL, BOOL );
WINADVAPI BOOL WINAPI ConvertToAutoInheritPrivateObjectSecurity( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *, GUID *, BOOLEAN, PGENERIC_MAPPING );
WINADVAPI BOOL WINAPI CreatePrivateObjectSecurityEx( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *, GUID *, BOOL, ULONG, HANDLE, PGENERIC_MAPPING );
WINADVAPI BOOL WINAPI CreatePrivateObjectSecurityWithMultipleInheritance( PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *, GUID **, ULONG, BOOL, ULONG, HANDLE, PGENERIC_MAPPING );
WINADVAPI BOOL WINAPI CreateProcessWithLogonW( LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION );
WINADVAPI BOOL WINAPI CreateProcessWithTokenW( HANDLE, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION );
WINADVAPI BOOL WINAPI SetPrivateObjectSecurityEx( SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR *, ULONG, PGENERIC_MAPPING, HANDLE );
WINADVAPI BOOL WINAPI SetSecurityDescriptorControl( PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL );
#endif
#if (_WIN32_WINNT >= 0x0501)
WINADVAPI BOOL WINAPI CreateWellKnownSid( WELL_KNOWN_SID_TYPE, PSID, PSID, DWORD * );
WINADVAPI BOOL WINAPI EqualDomainSid( PSID, PSID, BOOL * );
WINADVAPI BOOL WINAPI GetWindowsAccountDomainSid( PSID, PSID, DWORD * );
WINADVAPI BOOL WINAPI IsWellKnownSid( PSID, WELL_KNOWN_SID_TYPE );
#endif
#if (_WIN32_WINNT >= 0x0600)
WINADVAPI BOOL WINAPI AddMandatoryAce( PACL, DWORD, DWORD, DWORD, PSID );
#endif
#if (_WIN32_WINNT >= 0x0601)
WINADVAPI BOOL WINAPI AddConditionalAce( PACL, DWORD, DWORD, UCHAR, DWORD, PSID, PWCHAR, DWORD * );
#endif
/* Functions implemented as macros */
#define DefineHandleTable( x ) ((x), TRUE)
#define LimitEmsPages( x )
#define SetSwapAreaSize( x ) (x)
#define LockSegment( x ) GlobalFix( (HANDLE)(x) )
#define UnlockSegment( x ) GlobalUnfix( (HANDLE)(x) )
#define GetCurrentTime() GetTickCount()
#define Yield()
#define FreeModule( x ) FreeLibrary( x )
#define MakeProcInstance( p1, p2 ) (p1)
#define FreeProcInstance( x ) (x)
#define GlobalLRUNewest( x ) ((HANDLE)(x))
#define GlobalLRUOldest( x ) ((HANDLE)(x))
#define GlobalDiscard( x ) GlobalReAlloc( (x), 0, GMEM_MOVEABLE )
#define LocalDiscard( x ) LocalDiscard( (x), 0, LMEM_MOVEABLE )
#define GetFreeSpace( x ) 0x00100000L
#define InterlockedExchangePointer( p1, p2 ) (PVOID)InterlockedExchange( (PLONG)(p1), (LONG)(p2) )
#define InterlockedCompareExchangePointer( p1, p2, p3) (PVOID)(LONG_PTR)InterlockedCompareExchange( (LONG volatile *)(p1), (LONG)(LONG_PTR)(p2), (LONG)(LONG_PTR)(p3) )
#define UnlockResource( x ) ((x), 0)
#define HasOverlappedIoCompleted( x ) (((DWORD)(x)->Internal) != STATUS_PENDING)
#if (_WIN32_WINNT >= 0x0600)
#define ProcThreadAttributeValue( p1, p2, p3, p4 ) \
(((p1) & PROC_THREAD_ATTRIBUTE_NUMBER) | \
((p2 != FALSE) ? PROC_THREAD_ATTRIBUTE_THREAD : 0) | \
((p3 != FALSE) ? PROC_THREAD_ATTRIBUTE_INPUT : 0) | \
((p4 != FALSE) ? PROC_THREAD_ATTRIBUTE_ADDITIVE : 0))
#endif
/* Predefined process and thread attribute values */
#if (_WIN32_WINNT >= 0x0600)
#define PROC_THREAD_ATTRIBUTE_PARENT_PROCESS \
ProcThreadAttributeValue( ProcThreadAttributeParentProcess, FALSE, TRUE, FALSE )
#define PROC_THREAD_ATTRIBUTE_EXTENDED_FLAGS \
ProcThreadAttributeValue( ProcThreadAttributeExtendedFlags, FALSE, TRUE, TRUE )
#define PROC_THREAD_ATTRIBUTE_HANDLE_LIST \
ProcThreadAttributeValue( ProcThreadAttributeHandleList, FALSE, TRUE, FALSE )
#define PROC_THREAD_ATTRIBUTE_GROUP_AFFINITY \
ProcThreadAttributeValue( ProcThreadAttributeGroupAffinity, TRUE, TRUE, FALSE )
#define PROC_THREAD_ATTRIBUTE_PREFERRED_NODE \
ProcThreadAttributeValue( ProcThreadAttributePreferredNode, FALSE, TRUE, FALSE )
#define PROC_THREAD_ATTRIBUTE_IDEAL_PROCESSOR \
ProcThreadAttributeValue( ProcThreadAttributeIdealProcessor, TRUE, TRUE, FALSE )
#define PROC_THREAD_ATTRIBUTE_UMS_THREAD \
ProcThreadAttributeValue( ProcThreadAttributeUmsThread, TRUE, TRUE, FALSE )
#define PROC_THREAD_ATTRIBUTE_MITIGATION_POLICY \
ProcThreadAttributeValue( ProcThreadAttributeMitigationPolicy, FALSE, TRUE, FALSE )
#endif
/* Aliases for macros defined in winnt.h */
#define MoveMemory RtlMoveMemory
#define CopyMemory RtlCopyMemory
#define FillMemory RtlFillMemory
#define ZeroMemory RtlZeroMemory
#define CaptureStackBackTrace RtlCaptureStackBackTrace
#define InitializeThreadpoolEnvironment TpInitializeCallbackEnviron
#define SetThreadpoolCallbackPool TpSetCallbackThreadpool
#define SetThreadpoolCallbackCleanupGroup TpSetCallbackCleanupGroup
#define SetThreadpoolCallbackRunsLong TpSetCallbackLongFunction
#define SetThreadpoolCallbackLibrary TpSetCallbackRaceWithDll
#define SetThreadpoolCallbackPersistent TpSetCallbackPersistent
#define DestroyThreadpoolEnvironment TpDestroyCallbackEnviron
#if (_WIN32_WINNT >= 0x0601)
#define SetThreadpoolCallbackPriority TpSetCallbackPriority
#endif
/* Map generic function names to the appropriate ANSI or Unicode version. */
#ifdef UNICODE
#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW
#define AddAtom AddAtomW
#define BackupEventLog BackupEventLogW
#define BeginUpdateResource BeginUpdateResourceW
#define BuildCommDCB BuildCommDCBW
#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsW
#define CallNamedPipe CallNamedPipeW
#define CommConfigDialog CommConfigDialogW
#define CopyFile CopyFileW
#define ClearEventLog ClearEventLogW
#define CreateDirectory CreateDirectoryW
#define CreateDirectoryEx CreateDirectoryExW
#define CreateEvent CreateEventW
#define CreateFile CreateFileW
#define CreateFileMapping CreateFileMappingW
#define CreateMailslot CreateMailslotW
#define CreateMutex CreateMutexW
#define CreateNamedPipe CreateNamedPipeW
#define CreateProcess CreateProcessW
#define CreateProcessAsUser CreateProcessAsUserW
#define CreateSemaphore CreateSemaphoreW
#define DecryptFile DecryptFileW
#define DefineDosDevice DefineDosDeviceW
#define DeleteFile DeleteFileW
#define EncryptFile EncryptFileW
#define EndUpdateResource EndUpdateResourceW
#define EnumResourceLanguages EnumResourceLanguagesW
#define EnumResourceLanguagesEx EnumResourceLanguagesExW
#define EnumResourceNames EnumResourceNamesW
#define EnumResourceNamesEx EnumResourceNamesExW
#define EnumResourceTypes EnumResourceTypesW
#define EnumResourceTypesEx EnumResourceTypesExW
#define ExpandEnvironmentStrings ExpandEnvironmentStringsW
#define FatalAppExit FatalAppExitW
#define FileEncryptionStatus FileEncryptionStatusW
#define FindAtom FindAtomW
#define FindFirstChangeNotification FindFirstChangeNotificationW
#define FindFirstFile FindFirstFileW
#define FindNextFile FindNextFileW
#define FindResource FindResourceW
#define FindResourceEx FindResourceExW
#define FormatMessage FormatMessageW
#define FreeEnvironmentStrings FreeEnvironmentStringsW
#define GetAtomName GetAtomNameW
#define GetBinaryType GetBinaryTypeW
#define GetCommandLine GetCommandLineW
#define GetCompressedFileSize GetCompressedFileSizeW
#define GetComputerName GetComputerNameW
#define GetCurrentDirectory GetCurrentDirectoryW
#define GetDefaultCommConfig GetDefaultCommConfigW
#define GetDiskFreeSpace GetDiskFreeSpaceW
#define GetDiskFreeSpaceEx GetDiskFreeSpaceExW
#define GetDriveType GetDriveTypeW
#define GetEnvironmentStrings GetEnvironmentStringsW
#define GetEnvironmentVariable GetEnvironmentVariableW
#define GetFileAttributes GetFileAttributesW
#define GetFileAttributesEx GetFileAttributesExW
#define GetFileSecurity GetFileSecurityW
#define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableW
#define GetFullPathName GetFullPathNameW
#define GetLogicalDriveStrings GetLogicalDriveStringsW
#define GetLongPathName GetLongPathNameW
#define GetModuleFileName GetModuleFileNameW
#define GetModuleHandle GetModuleHandleW
#define GetNamedPipeClientComputerName GetNamedPipeClientComputerNameW
#define GetNamedPipeHandleState GetNamedPipeHandleStateW
#define GetPrivateProfileInt GetPrivateProfileIntW
#define GetPrivateProfileSection GetPrivateProfileSectionW
#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesW
#define GetPrivateProfileString GetPrivateProfileStringW
#define GetPrivateProfileStruct GetPrivateProfileStructW
#define GetProfileInt GetProfileIntW
#define GetProfileSection GetProfileSectionW
#define GetProfileString GetProfileStringW
#define GetShortPathName GetShortPathNameW
#define GetStartupInfo GetStartupInfoW
#define GetSystemDirectory GetSystemDirectoryW
#define GetSystemWindowsDirectory GetSystemWindowsDirectoryW
#define GetTempFileName GetTempFileNameW
#define GetTempPath GetTempPathW
#define GetUserName GetUserNameW
#define GetVersionEx GetVersionExW
#define GetVolumeInformation GetVolumeInformationW
#define GetWindowsDirectory GetWindowsDirectoryW
#define GlobalAddAtom GlobalAddAtomW
#define GlobalFindAtom GlobalFindAtomW
#define GlobalGetAtomName GlobalGetAtomNameW
#define IsBadStringPtr IsBadStringPtrW
#define LoadLibrary LoadLibraryW
#define LoadLibraryEx LoadLibraryExW
#define LogonUser LogonUserW
#define LogonUserEx LogonUserExW
#define LookupAccountName LookupAccountNameW
#define LookupAccountSid LookupAccountSidW
#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW
#define LookupPrivilegeName LookupPrivilegeNameW
#define LookupPrivilegeValue LookupPrivilegeValueW
#define MoveFile MoveFileW
#define MoveFileEx MoveFileExW
#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW
#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmW
#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW
#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW
#define OpenBackupEventLog OpenBackupEventLogW
#define OpenEncryptedFileRaw OpenEncryptedFileRawW
#define OpenEvent OpenEventW
#define OpenEventLog OpenEventLogW
#define OpenFileMapping OpenFileMappingW
#define OpenMutex OpenMutexW
#define OpenSemaphore OpenSemaphoreW
#define OutputDebugString OutputDebugStringW
#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW
#define QueryDosDevice QueryDosDeviceW
#define ReadEventLog ReadEventLogW
#define RegisterEventSource RegisterEventSourceW
#define RemoveDirectory RemoveDirectoryW
#define ReportEvent ReportEventW
#define SearchPath SearchPathW
#define SetComputerName SetComputerNameW
#define SetCurrentDirectory SetCurrentDirectoryW
#define SetDefaultCommConfig SetDefaultCommConfigW
#define SetEnvironmentStrings SetEnvironmentStringsW
#define SetEnvironmentVariable SetEnvironmentVariableW
#define SetFileAttributes SetFileAttributesW
#define SetFileSecurity SetFileSecurityW
#define SetFileShortName SetFileShortNameW
#define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableW
#define SetVolumeLabel SetVolumeLabelW
#define UpdateResource UpdateResourceW
#define VerifyVersionInfo VerifyVersionInfoW
#define WaitNamedPipe WaitNamedPipeW
#define WritePrivateProfileSection WritePrivateProfileSectionW
#define WritePrivateProfileString WritePrivateProfileStringW
#define WritePrivateProfileStruct WritePrivateProfileStructW
#define WriteProfileSection WriteProfileSectionW
#define WriteProfileString WriteProfileStringW
#define lstrcat lstrcatW
#define lstrcmp lstrcmpW
#define lstrcmpi lstrcmpiW
#define lstrcpy lstrcpyW
#define lstrcpyn lstrcpynW
#define lstrlen lstrlenW
#if (_WIN32_WINNT >= 0x0400)
#define CopyFileEx CopyFileExW
#define FindFirstFileEx FindFirstFileExW
#endif
#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
#define CreateWaitableTimer CreateWaitableTimerW
#define OpenWaitableTimer OpenWaitableTimerW
#endif
#if (_WIN32_WINNT >= 0x0500)
#define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmW
#define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmW
#define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleW
#define CreateActCtx CreateActCtxW
#define CreateHardLink CreateHardLinkW
#define CreateJobObject CreateJobObjectW
#define DeleteVolumeMountPoint DeleteVolumeMountPointW
#define DnsHostnameToComputerName DnsHostnameToComputerNameW
#define FindActCtxSectionString FindActCtxSectionStringW
#define FindFirstVolume FindFirstVolumeW
#define FindFirstVolumeMountPoint FindFirstVolumeMountPointW
#define FindNextVolume FindNextVolumeW
#define FindNextVolumeMountPoint FindNextVolumeMountPointW
#define GetComputerNameEx GetComputerNameExW
#define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointW
#define GetVolumePathName GetVolumePathNameW
#define MoveFileWithProgress MoveFileWithProgressW
#define OpenJobObject OpenJobObjectW
#define ReplaceFile ReplaceFileW
#define SetComputerNameEx SetComputerNameExW
#define SetVolumeMountPoint SetVolumeMountPointW
#endif
#if (_WIN32_WINNT >= 0x0501)
#define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3W
#define GetModuleHandleEx GetModuleHandleExW
#define GetSystemWow64Directory GetSystemWow64DirectoryW
#define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameW
#endif
#if (_WIN32_WINNT >= 0x0502)
#define GetDllDirectory GetDllDirectoryW
#define NeedCurrentDirectoryForExePath NeedCurrentDirectoryForExePathW
#define SetDllDirectory SetDllDirectoryW
#endif
#if (_WIN32_WINNT >= 0x0600)
#define CopyFileTransacted CopyFileTransactedW
#define CreateBoundaryDescriptor CreateBoundaryDescriptorW
#define CreateDirectoryTransacted CreateDirectoryTransactedW
#define CreateEventEx CreateEventExW
#define CreateFileMappingNuma CreateFileMappingNumaW
#define CreateFileTransacted CreateFileTransactedW
#define CreateHardLinkTransacted CreateHardLinkTransactedW
#define CreateMutexEx CreateMutexExW
#define CreatePrivateNamespace CreatePrivateNamespaceW
#define CreateSemaphoreEx CreateSemaphoreExW
#define CreateSymbolicLink CreateSymbolicLinkW
#define CreateSymbolicLinkTransacted CreateSymbolicLinkTransactedW
#define CreateWaitableTimerEx CreateWaitableTimerExW
#define DeleteFileTransacted DeleteFileTransactedW
#define FindFirstFileTransacted FindFirstFileTransactedW
#define GetCompressedFileSizeTransacted GetCompressedFileSizeTransactedW
#define GetFileAttributesTransacted GetFileAttributesTransactedW
#define GetFinalPathNameByHandle GetFinalPathNameByHandleW
#define GetFullPathNameTransacted GetFullPathNameTransactedW
#define GetLongPathNameTransacted GetLongPathNameTransactedW
#define MoveFileTransacted MoveFileTransactedW
#define OpenPrivateNamespace OpenPrivateNamespaceW
#define QueryFullProcessImageName QueryFullProcessImageNameW
#define RemoveDirectoryTransacted RemoveDirectoryTransactedW
#define SetFileAttributesTransacted SetFileAttributesTransactedW
#endif
#else
#define AcesssCheckAndAuditAlarm AccessCheckAndAuditAlarmA
#define AddAtom AddAtomA
#define BackupEventLog BackupEventLogA
#define BeginUpdateResource BeginUpdateResourceA
#define BuildCommDCB BuildCommDCBA
#define BuildCommDCBAndTimeouts BuildCommDCBAndTimeoutsA
#define CallNamedPipe CallNamedPipeA
#define ClearEventLog ClearEventLogA
#define CommConfigDialog CommConfigDialogA
#define CopyFile CopyFileA
#define CreateBoundaryDescriptor CreateBoundaryDescriptorA
#define CreateDirectory CreateDirectoryA
#define CreateDirectoryEx CreateDirectoryExA
#define CreateEvent CreateEventA
#define CreateFile CreateFileA
#define CreateFileMapping CreateFileMappingA
#define CreateMailslot CreateMailslotA
#define CreateMutex CreateMutexA
#define CreateNamedPipe CreateNamedPipeA
#define CreateProcess CreateProcessA
#define CreateProcessAsUser CreateProcessAsUserA
#define CreateSemaphore CreateSemaphoreA
#define DecryptFile DecryptFileA
#define DefineDosDevice DefineDosDeviceA
#define DeleteFile DeleteFileA
#define EncryptFile EncryptFileA
#define EndUpdateResource EndUpdateResourceA
#define EnumResourceLanguages EnumResourceLanguagesA
#define EnumResourceLanguagesEx EnumResourceLanguagesExA
#define EnumResourceNames EnumResourceNamesA
#define EnumResourceNamesEx EnumResourceNamesExA
#define EnumResourceTypes EnumResourceTypesA
#define EnumResourceTypesEx EnumResourceTypesExA
#define ExpandEnvironmentStrings ExpandEnvironmentStringsA
#define FatalAppExit FatalAppExitA
#define FileEncryptionStatus FileEncryptionStatusA
#define FindAtom FindAtomA
#define FindFirstChangeNotification FindFirstChangeNotificationA
#define FindFirstFile FindFirstFileA
#define FindNextFile FindNextFileA
#define FindResource FindResourceA
#define FindResourceEx FindResourceExA
#define FormatMessage FormatMessageA
#define FreeEnvironmentStrings FreeEnvironmentStringsA
#define GetAtomName GetAtomNameA
#define GetBinaryType GetBinaryTypeA
#define GetCommandLine GetCommandLineA
#define GetCompressedFileSize GetCompressedFileSizeA
#define GetComputerName GetComputerNameA
#define GetCurrentDirectory GetCurrentDirectoryA
#define GetDefaultCommConfig GetDefaultCommConfigA
#define GetDiskFreeSpace GetDiskFreeSpaceA
#define GetDiskFreeSpaceEx GetDiskFreeSpaceExA
#define GetDriveType GetDriveTypeA
#define GetEnvironmentStrings GetEnvironmentStringsA
#define GetEnvironmentVariable GetEnvironmentVariableA
#define GetFileAttributes GetFileAttributesA
#define GetFileAttributesEx GetFileAttributesExA
#define GetFileSecurity GetFileSecurityA
#define GetFirmwareEnvironmentVariable GetFirmwareEnvironmentVariableA
#define GetFullPathName GetFullPathNameA
#define GetLogicalDriveStrings GetLogicalDriveStringsA
#define GetLongPathName GetLongPathNameA
#define GetModuleFileName GetModuleFileNameA
#define GetModuleHandle GetModuleHandleA
#define GetNamedPipeClientComputerName GetNamedPipeClientComputerNameA
#define GetNamedPipeHandleState GetNamedPipeHandleStateA
#define GetPrivateProfileInt GetPrivateProfileIntA
#define GetPrivateProfileSection GetPrivateProfileSectionA
#define GetPrivateProfileSectionNames GetPrivateProfileSectionNamesA
#define GetPrivateProfileString GetPrivateProfileStringA
#define GetPrivateProfileStruct GetPrivateProfileStructA
#define GetProfileInt GetProfileIntA
#define GetProfileSection GetProfileSectionA
#define GetProfileString GetProfileStringA
#define GetShortPathName GetShortPathNameA
#define GetStartupInfo GetStartupInfoA
#define GetSystemDirectory GetSystemDirectoryA
#define GetSystemWindowsDirectory GetSystemWindowsDirectoryA
#define GetTempFileName GetTempFileNameA
#define GetTempPath GetTempPathA
#define GetUserName GetUserNameA
#define GetVersionEx GetVersionExA
#define GetVolumeInformation GetVolumeInformationA
#define GetWindowsDirectory GetWindowsDirectoryA
#define GlobalAddAtom GlobalAddAtomA
#define GlobalFindAtom GlobalFindAtomA
#define GlobalGetAtomName GlobalGetAtomNameA
#define IsBadStringPtr IsBadStringPtrA
#define LoadLibrary LoadLibraryA
#define LoadLibraryEx LoadLibraryExA
#define LogonUser LogonUserA
#define LogonUserEx LogonUserExA
#define LookupAccountName LookupAccountNameA
#define LookupAccountSid LookupAccountSidA
#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA
#define LookupPrivilegeName LookupPrivilegeNameA
#define LookupPrivilegeValue LookupPrivilegeValueA
#define MoveFile MoveFileA
#define MoveFileEx MoveFileExA
#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA
#define ObjectDeleteAuditAlarm ObjectDeleteAuditAlarmA
#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA
#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA
#define OpenBackupEventLog OpenBackupEventLogA
#define OpenEncryptedFileRaw OpenEncryptedFileRawA
#define OpenEvent OpenEventA
#define OpenEventLog OpenEventLogA
#define OpenFileMapping OpenFileMappingA
#define OpenMutex OpenMutexA
#define OpenSemaphore OpenSemaphoreA
#define OutputDebugString OutputDebugStringA
#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA
#define QueryDosDevice QueryDosDeviceA
#define ReadEventLog ReadEventLogA
#define RegisterEventSource RegisterEventSourceA
#define RemoveDirectory RemoveDirectoryA
#define ReportEvent ReportEventA
#define SearchPath SearchPathA
#define SetComputerName SetComputerNameA
#define SetCurrentDirectory SetCurrentDirectoryA
#define SetDefaultCommConfig SetDefaultCommConfigA
#define SetEnvironmentStrings SetEnvironmentStringsA
#define SetEnvironmentVariable SetEnvironmentVariableA
#define SetFileAttributes SetFileAttributesA
#define SetFileSecurity SetFileSecurityA
#define SetFileShortName SetFileShortNameA
#define SetFirmwareEnvironmentVariable SetFirmwareEnvironmentVariableA
#define SetVolumeLabel SetVolumeLabelA
#define UpdateResource UpdateResourceA
#define VerifyVersionInfo VerifyVersionInfoA
#define WaitNamedPipe WaitNamedPipeA
#define WritePrivateProfileSection WritePrivateProfileSectionA
#define WritePrivateProfileString WritePrivateProfileStringA
#define WritePrivateProfileStruct WritePrivateProfileStructA
#define WriteProfileSection WriteProfileSectionA
#define WriteProfileString WriteProfileStringA
#define lstrcat lstrcatA
#define lstrcmp lstrcmpA
#define lstrcmpi lstrcmpiA
#define lstrcpy lstrcpyA
#define lstrcpyn lstrcpynA
#define lstrlen lstrlenA
#if (_WIN32_WINNT >= 0x0400)
#define CopyFileEx CopyFileExA
#define FindFirstFileEx FindFirstFileExA
#endif
#if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
#define CreateWaitableTimer CreateWaitableTimerA
#define OpenWaitableTimer OpenWaitableTimerA
#endif
#if (_WIN32_WINNT >= 0x0500)
#define AccessCheckByTypeAndAuditAlarm AccessCheckByTypeAndAuditAlarmA
#define AccessCheckByTypeResultListAndAuditAlarm AccessCheckByTypeResultListAndAuditAlarmA
#define AccessCheckByTypeResultListAndAuditAlarmByHandle AccessCheckByTypeResultListAndAuditAlarmByHandleA
#define CreateActCtx CreateActCtxA
#define CreateHardLink CreateHardLinkA
#define CreateJobObject CreateJobObjectA
#define DeleteVolumeMountPoint DeleteVolumeMountPointA
#define DnsHostnameToComputerName DnsHostnameToComputerNameA
#define FindActCtxSectionString FindActCtxSectionStringA
#define FindFirstVolume FindFirstVolumeA
#define FindFirstVolumeMountPoint FindFirstVolumeMountPointA
#define FindNextVolume FindNextVolumeA
#define FindNextVolumeMountPoint FindNextVolumeMountPointA
#define GetComputerNameEx GetComputerNameExA
#define GetVolumeNameForVolumeMountPoint GetVolumeNameForVolumeMountPointA
#define GetVolumePathName GetVolumePathNameA
#define MoveFileWithProgress MoveFileWithProgressA
#define OpenJobObject OpenJobObjectA
#define ReplaceFile ReplaceFileA
#define SetComputerNameEx SetComputerNameExA
#define SetVolumeMountPoint SetVolumeMountPointA
#endif
#if (_WIN32_WINNT >= 0x0501)
#define CheckNameLegalDOS8Dot3 CheckNameLegalDOS8Dot3A
#define GetModuleHandleEx GetModuleHandleExA
#define GetSystemWow64Directory GetSystemWow64DirectoryA
#define GetVolumePathNamesForVolumeName GetVolumePathNamesForVolumeNameA
#endif
#if (_WIN32_WINNT >= 0x0502)
#define GetDllDirectory GetDllDirectoryA
#define NeedCurrentDirectoryForExePath NeedCurrentDirectoryForExePathA
#define SetDllDirectory SetDllDirectoryA
#endif
#if (_WIN32_WINNT >= 0x0600)
#define CopyFileTransacted CopyFileTransactedA
#define CreateDirectoryTransacted CreateDirectoryTransactedA
#define CreateEventEx CreateEventExA
#define CreateFileMappingNuma CreateFileMappingNumaA
#define CreateFileTransacted CreateFileTransactedA
#define CreateHardLinkTransacted CreateHardLinkTransactedA
#define CreateMutexEx CreateMutexExA
#define CreatePrivateNamespace CreatePrivateNamespaceA
#define CreateSemaphoreEx CreateSemaphoreExA
#define CreateSymbolicLink CreateSymbolicLinkA
#define CreateSymbolicLinkTransacted CreateSymbolicLinkTransactedA
#define CreateWaitableTimerEx CreateWaitableTimerExA
#define DeleteFileTransacted DeleteFileTransactedA
#define FindFirstFileTransacted FindFirstFileTransactedA
#define GetCompressedFileSizeTransacted GetCompressedFileSizeTransactedA
#define GetFileAttributesTransacted GetFileAttributesTransactedA
#define GetFinalPathNameByHandle GetFinalPathNameByHandleA
#define GetFullPathNameTransacted GetFullPathNameTransactedA
#define GetLongPathNameTransacted GetLongPathNameTransactedA
#define MoveFileTransacted MoveFileTransactedA
#define OpenPrivateNamespace OpenPrivateNamespaceA
#define QueryFullProcessImageName QueryFullProcessImageNameA
#define RemoveDirectoryTransacted RemoveDirectoryTransactedA
#define SetFileAttributesTransacted SetFileAttributesTransactedA
#endif
#endif
/* If the original Windows NT 3.1, a single function GetEnvironmentStrings()
* without an A/W suffix was defined. It did not support Unicode. To enable
* support for Windows NT 3.1 in code that calls GetEnvironmentStrings(),
* define _OLD_WINNT_COMPATIBILE. This will disable support for the Unicode
* version of the function.
*/
#ifdef _OLD_WINNT_COMPATIBLE
#undef GetEnvironmentStrings
WINBASEAPI LPCH WINAPI GetEnvironmentStrings( VOID );
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _WINBASE_ */