winbase.h revision 589fd26cedb2b4ebbed14f2964cad03cc8ebbca2
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * Copyright (C) the Wine project
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * This library is free software; you can redistribute it and/or
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * modify it under the terms of the GNU Lesser General Public
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * License as published by the Free Software Foundation; either
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * version 2.1 of the License, or (at your option) any later version.
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * This library is distributed in the hope that it will be useful,
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync * Lesser General Public License for more details.
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * You should have received a copy of the GNU Lesser General Public
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * License along with this library; if not, write to the Free Software
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * other than GPL or LGPL is available it will apply instead, Sun elects to use only
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * a choice of LGPL license versions is made available with the language indicating
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync * of the LGPL is applied is otherwise unspecified.
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsyncextern "C" {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync /* Windows Exit Procedure flag values */
cb172d105a87f41489b1553fbd99ec97932609ffvboxsynctypedef DWORD (CALLBACK *LPTHREAD_START_ROUTINE)(LPVOID);
d85f5fb26ce3bbbcb8029e48b62f9d550c0317bfvboxsynctypedef VOID (WINAPI *PFIBER_START_ROUTINE)( LPVOID lpFiberParameter );
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef RTL_CRITICAL_SECTION_DEBUG CRITICAL_SECTION_DEBUG;
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsynctypedef PRTL_CRITICAL_SECTION_DEBUG PCRITICAL_SECTION_DEBUG;
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef PRTL_CRITICAL_SECTION_DEBUG LPCRITICAL_SECTION_DEBUG;
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#define CRITICAL_SECTION_NO_DEBUG_INFO RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsynctypedef WAITORTIMERCALLBACKFUNC WAITORTIMERCALLBACK;
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef struct _LOAD_DLL_DEBUG_INFO {
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsynctypedef struct _RIP_INFO {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef struct _DEBUG_EVENT {
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef LONG (CALLBACK *PTOP_LEVEL_EXCEPTION_FILTER)(PEXCEPTION_POINTERS);
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef PTOP_LEVEL_EXCEPTION_FILTER LPTOP_LEVEL_EXCEPTION_FILTER;
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef struct _OFSTRUCT
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync#define OF_SEARCH 0x0400 /* Used without OF_REOPEN */
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync/* SetErrorMode values */
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync/* CopyFileEx flags */
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync/* return values for CopyProgressRoutine */
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync/* reason codes for CopyProgressRoutine */
f1acc1e99894e016bd1a6ee65c56b3fc064fa4ebvboxsync/* GetTempFileName() Flags */
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync/* Win32 additions */
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync/* The security attributes structure */
4bc1bbf45f30ff3ca38c2ad006836e490972c7ccvboxsync} SECURITY_ATTRIBUTES, *PSECURITY_ATTRIBUTES, *LPSECURITY_ATTRIBUTES;
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsync/* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
5f9dfb422a6ed57822f9c0cb94fa7df8d24acc9bvboxsynctypedef struct _FILETIME
typedef struct _WIN32_FIND_DATAA
typedef struct _WIN32_FIND_DATAW
typedef enum _FINDEX_INFO_LEVELS
typedef enum _FINDEX_SEARCH_OPS
typedef struct _PROCESS_HEAP_ENTRY
} Block;
} Region;
#define INVALID_FILE_SIZE (~0u)
#define INVALID_SET_FILE_POINTER (~0u)
#define INVALID_FILE_ATTRIBUTES (~0u)
#define FLS_OUT_OF_INDEXES (~0u)
#define TLS_OUT_OF_INDEXES (~0u)
#define NOPARITY 0
#define ONESTOPBIT 0
#define IGNORE 0
#define RTS_CONTROL_DISABLE 0
#define DTR_CONTROL_DISABLE 0
#define LMEM_FIXED 0
typedef struct tagMEMORYSTATUS
#include <pshpack8.h>
typedef struct tagMEMORYSTATUSEX {
#include <poppack.h>
#ifndef _SYSTEMTIME_
#define _SYSTEMTIME_
typedef struct _SYSTEMTIME{
typedef struct _OVERLAPPED {
#ifdef WORDS_BIGENDIAN
#ifdef WORDS_BIGENDIAN
typedef struct _STARTUPINFOA{
typedef struct _STARTUPINFOW{
typedef struct _PROCESS_INFORMATION{
typedef struct _TIME_DYNAMIC_ZONE_INFORMATION
typedef struct _TIME_ZONE_INFORMATION{
#define TIME_ZONE_ID_UNKNOWN 0
#define FILE_TYPE_UNKNOWN 0
#define FILE_ENCRYPTABLE 0
typedef struct _BY_HANDLE_FILE_INFORMATION
#define PIPE_CLIENT_END 0
#define PIPE_READMODE_BYTE 0
#define PIPE_TYPE_BYTE 0
#define PIPE_WAIT 0
typedef struct _SYSTEM_POWER_STATUS
typedef struct _SYSTEM_INFO
typedef enum _GET_FILEEX_INFO_LEVELS {
typedef struct _WIN32_FILE_ATTRIBUTES_DATA {
#define WAIT_OBJECT_0 0
#define FILE_BEGIN 0
#define THREAD_PRIORITY_NORMAL 0
typedef struct tagACTCTXA {
typedef struct tagACTCTXW {
typedef struct tagACTCTX_SECTION_KEYED_DATA_2600 {
typedef struct tagACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA {
typedef const ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA *PCACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA;
typedef struct tagACTCTX_SECTION_KEYED_DATA {
typedef struct _ACTIVATION_CONTEXT_BASIC_INFORMATION {
typedef struct tagCOMSTAT
typedef struct tagDCB
char XonChar;
char XoffChar;
char ErrorChar;
char EofChar;
char EvtChar;
typedef struct tagCOMMCONFIG {
typedef struct tagCOMMPROP {
typedef struct tagCOMMTIMEOUTS {
#define GET_TAPE_MEDIA_INFORMATION 0
#define SET_TAPE_MEDIA_INFORMATION 0
typedef enum _COMPUTER_NAME_FORMAT
typedef struct tagHW_PROFILE_INFOA {
typedef struct tagHW_PROFILE_INFOW {
#define BACKUP_INVALID 0
#define STREAM_NORMAL_ATTRIBUTE 0
#include <pshpack8.h>
typedef struct _WIN32_STREAM_ID {
#include <poppack.h>
#define SCS_32BIT_BINARY 0
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 AccessCheckByType(PSECURITY_DESCRIPTOR,PSID,HANDLE,DWORD,POBJECT_TYPE_LIST,DWORD,PGENERIC_MAPPING,PPRIVILEGE_SET,LPDWORD,LPDWORD,LPBOOL);
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 ConvertToAutoInheritPrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,GUID*,BOOL,PGENERIC_MAPPING);
WINBASEAPI HANDLE WINAPI CreateFileMappingW(HANDLE,LPSECURITY_ATTRIBUTES,DWORD,DWORD,DWORD,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);
WINADVAPI BOOL WINAPI CreatePrivateObjectSecurity(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,BOOL,HANDLE,PGENERIC_MAPPING);
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);
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 CreateProcessWithLogonW(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPCWSTR,LPWSTR,DWORD,LPVOID,LPCWSTR,LPSTARTUPINFOW,LPPROCESS_INFORMATION);
WINBASEAPI HANDLE WINAPI CreateRemoteThread(HANDLE,LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
WINADVAPI BOOL WINAPI CreateRestrictedToken(HANDLE,DWORD,DWORD,PSID_AND_ATTRIBUTES,DWORD,PLUID_AND_ATTRIBUTES,DWORD,PSID_AND_ATTRIBUTES,PHANDLE);
WINBASEAPI HANDLE WINAPI CreateThread(LPSECURITY_ATTRIBUTES,SIZE_T,LPTHREAD_START_ROUTINE,LPVOID,DWORD,LPDWORD);
WINBASEAPI BOOL WINAPI CreateTimerQueueTimer(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,DWORD,DWORD,ULONG);
WINBASEAPI BOOL WINAPI DeviceIoControl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPOVERLAPPED);
WINADVAPI BOOL WINAPI DuplicateTokenEx(HANDLE,DWORD,LPSECURITY_ATTRIBUTES,SECURITY_IMPERSONATION_LEVEL,TOKEN_TYPE,PHANDLE);
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 BOOL WINAPI FindActCtxSectionGuid(DWORD,const GUID *,ULONG,const GUID *,PACTCTX_SECTION_KEYED_DATA);
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 GetDiskFreeSpaceExW(LPCWSTR,PULARGE_INTEGER,PULARGE_INTEGER,PULARGE_INTEGER);
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);
WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateA(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
WINBASEAPI BOOL WINAPI GetNamedPipeHandleStateW(HANDLE,LPDWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
WINADVAPI BOOL WINAPI GetPrivateObjectSecurity(PSECURITY_DESCRIPTOR,SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,DWORD,PDWORD);
WINADVAPI BOOL WINAPI GetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR_CONTROL,LPDWORD);
WINBASEAPI BOOL WINAPI GetVolumeInformationA(LPCSTR,LPSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPSTR,DWORD);
WINBASEAPI BOOL WINAPI GetVolumeInformationW(LPCWSTR,LPWSTR,DWORD,LPDWORD,LPDWORD,LPDWORD,LPWSTR,DWORD);
WINADVAPI BOOL WINAPI LookupAccountNameW(LPCWSTR,LPCWSTR,PSID,LPDWORD,LPWSTR,LPDWORD,PSID_NAME_USE);
WINADVAPI BOOL WINAPI MakeAbsoluteSD(PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR,LPDWORD,PACL,LPDWORD,PACL,LPDWORD,PSID,LPDWORD,PSID,LPDWORD);
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);
WINBASEAPI BOOL WINAPI ReadDirectoryChangesW(HANDLE,LPVOID,DWORD,BOOL,DWORD,LPDWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
WINBASEAPI BOOL WINAPI ReadFileEx(HANDLE,LPVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
WINBASEAPI BOOL WINAPI RegisterWaitForSingleObject(PHANDLE,HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
WINBASEAPI HANDLE WINAPI RegisterWaitForSingleObjectEx(HANDLE,WAITORTIMERCALLBACK,PVOID,ULONG,ULONG);
WINADVAPI BOOL WINAPI SetPrivateObjectSecurity(SECURITY_INFORMATION,PSECURITY_DESCRIPTOR,PSECURITY_DESCRIPTOR*,PGENERIC_MAPPING,HANDLE);
WINADVAPI BOOL WINAPI SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR,SECURITY_DESCRIPTOR_CONTROL,SECURITY_DESCRIPTOR_CONTROL);
#define SetSwapAreaSize(w) (w)
WINBASEAPI LPTOP_LEVEL_EXCEPTION_FILTER WINAPI SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER);
WINBASEAPI BOOL WINAPI SetWaitableTimer(HANDLE,const LARGE_INTEGER*,LONG,PTIMERAPCROUTINE,LPVOID,BOOL);
WINBASEAPI BOOL WINAPI SystemTimeToTzSpecificLocalTime(const TIME_ZONE_INFORMATION*,const SYSTEMTIME*,LPSYSTEMTIME);
WINBASEAPI BOOL WINAPI TzSpecificLocalTimeToSystemTime(const TIME_ZONE_INFORMATION*,const SYSTEMTIME*,LPSYSTEMTIME);
WINBASEAPI BOOL WINAPI WriteFileEx(HANDLE,LPCVOID,DWORD,LPOVERLAPPED,LPOVERLAPPED_COMPLETION_ROUTINE);
#define Yield()
count--;
if (count) *d = 0;
return dst;
count--;
if (count) *d = 0;
return dst;
return s - str;
while ((*p++ = *src++));
return dst;
while ((*p++ = *src++));
return dst;
typedef struct tagSYSLEVEL
} SYSLEVEL;
#define GPD_USERDATA ( 0)
#ifdef __i386__
extern inline LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare );
extern inline LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare )
return ret;
return ret;
return ret;
static inline PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare )
static inline LONG WINAPI InterlockedCompareExchange( LONG volatile *dest, LONG xchg, LONG compare )
return ret;
static inline PVOID WINAPI InterlockedCompareExchangePointer( PVOID volatile *dest, PVOID xchg, PVOID compare )
return ret;
return ret;
return ret;
return ret;
#ifdef __x86_64__
return ret;
#ifdef __x86_64__
return ret;
#ifdef __x86_64__
return ret;
#ifdef __x86_64__
#ifdef __x86_64__
#ifdef __WINESRC__
/* WinMain(entry point) must be declared in winbase.h. */
#ifdef __WINESRC__
#ifdef __cplusplus