--- mstools/h/winbase.h 2018/08/09 18:20:01 1.1 +++ mstools/h/winbase.h 2018/08/09 18:20:30 1.1.1.2 @@ -30,6 +30,7 @@ Revision History: #define SetSwapAreaSize(w) (w) #define LockSegment(w) GlobalFix((HANDLE)(w)) #define UnlockSegment(w) GlobalUnfix((HANDLE)(w)) +#define GetCurrentTime() GetTickCount() #define Yield() @@ -37,7 +38,6 @@ Revision History: #define FILE_BEGIN 0 #define FILE_CURRENT 1 #define FILE_END 2 -#define FILE_ATTRIBUTE_DIRECTORY 0x00000010 #define WAIT_OBJECT_0 ((STATUS_WAIT_0 ) + 0 ) @@ -45,23 +45,37 @@ Revision History: #define WAIT_ABANDONED_0 ((STATUS_ABANDONED_WAIT_0 ) + 0 ) #define WAIT_TIMEOUT STATUS_TIMEOUT +#define WAIT_IO_COMPLETION STATUS_USER_APC #define STILL_ACTIVE STATUS_PENDING #define EXCEPTION_ACCESS_VIOLATION STATUS_ACCESS_VIOLATION #define EXCEPTION_DATATYPE_MISALIGNMENT STATUS_DATATYPE_MISALIGNMENT #define EXCEPTION_BREAKPOINT STATUS_BREAKPOINT #define EXCEPTION_SINGLE_STEP STATUS_SINGLE_STEP +#define EXCEPTION_ARRAY_BOUNDS_EXCEEDED STATUS_ARRAY_BOUNDS_EXCEEDED +#define EXCEPTION_FLT_DENORMAL_OPERAND STATUS_FLOAT_DENORMAL_OPERAND +#define EXCEPTION_FLT_DIVIDE_BY_ZERO STATUS_FLOAT_DIVIDE_BY_ZERO +#define EXCEPTION_FLT_INEXACT_RESULT STATUS_FLOAT_INEXACT_RESULT +#define EXCEPTION_FLT_INVALID_OPERATION STATUS_FLOAT_INVALID_OPERATION +#define EXCEPTION_FLT_OVERFLOW STATUS_FLOAT_OVERFLOW +#define EXCEPTION_FLT_STACK_CHECK STATUS_FLOAT_STACK_CHECK +#define EXCEPTION_FLT_UNDERFLOW STATUS_FLOAT_UNDERFLOW +#define EXCEPTION_INT_DIVIDE_BY_ZERO STATUS_INTEGER_DIVIDE_BY_ZERO +#define EXCEPTION_INT_OVERFLOW STATUS_INTEGER_OVERFLOW +#define EXCEPTION_PRIV_INSTRUCTION STATUS_PRIVILEGED_INSTRUCTION #define CONTROL_C_EXIT STATUS_CONTROL_C_EXIT // -// File creation flags must start in second byte since they +// File creation flags must start at the high end since they // are combined with the attributes // -#define FILE_FLAG_WRITE_THROUGH 0x00000100 -#define FILE_FLAG_OVERLAPPED 0x00000200 -#define FILE_FLAG_NO_BUFFERING 0x00000400 -#define FILE_FLAG_RANDOM_ACCESS 0x00000800 -#define FILE_FLAG_SEQUENTIAL_SCAN 0x00001000 +#define FILE_FLAG_WRITE_THROUGH 0x80000000 +#define FILE_FLAG_OVERLAPPED 0x40000000 +#define FILE_FLAG_NO_BUFFERING 0x20000000 +#define FILE_FLAG_RANDOM_ACCESS 0x10000000 +#define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000 +#define FILE_FLAG_DELETE_ON_CLOSE 0x04000000 +#define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 #define CREATE_NEW 1 #define CREATE_ALWAYS 2 @@ -107,29 +121,39 @@ Revision History: #define PIPE_UNLIMITED_INSTANCES 255 // -// Special values for mailslot information. +// Define the Security Quality of Service bits to be passed +// into 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 0x00040000 +#define SECURITY_EFFECTIVE_ONLY 0x00080000 + +#define SECURITY_SQOS_PRESENT 0x00100000 +#define SECURITY_VALID_SQOS_FLAGS 0x001F0000 + + // -// Special value for NextMessageSize to indicate that there is no next -// message. +// Special values for mailslot information. // -#define MAILSLOT_NO_MESSAGE -1 - // -// Special value for mailslot size creation to indicate that the system -// should choose the size of the mailslot buffer. +// Special value for NextMessageSize to indicate that there is no next +// message. // -#define MAILSLOT_SIZE_AUTO 0 +#define MAILSLOT_NO_MESSAGE ((ULONG)-1) // // Special value for read timeout to indicate that mailslot reads should // never timeout. // -#define MAILSLOT_WAIT_FOREVER -1 +#define MAILSLOT_WAIT_FOREVER ((ULONG)-1) // // File structures @@ -199,19 +223,43 @@ typedef LPVOID LPLDT_ENTRY; #define MUTEX_ALL_ACCESS MUTANT_ALL_ACCESS // +// Serial provider type. +// + +#define SP_SERIALCOMM ((DWORD)0x00000001) + +// +// Provider SubTypes +// + +#define PST_UNSPECIFIED ((DWORD)0x00000000) +#define PST_RS232 ((DWORD)0x00000001) +#define PST_PARALLELPORT ((DWORD)0x00000002) +#define PST_RS422 ((DWORD)0x00000003) +#define PST_RS423 ((DWORD)0x00000004) +#define PST_RS449 ((DWORD)0x00000005) +#define PST_FAX ((DWORD)0x00000021) +#define PST_SCANNER ((DWORD)0x00000022) +#define PST_NETWORK_BRIDGE ((DWORD)0x00000100) +#define PST_LAT ((DWORD)0x00000101) +#define PST_TCPIP_TELNET ((DWORD)0x00000102) +#define PST_X25 ((DWORD)0x00000103) + + +// // Provider capabilities flags. // -#define PCF_DTRDTS ((DWORD)0x0001) -#define PCF_RTSCTS ((DWORD)0x0002) -#define PCF_CD ((DWORD)0x0004) -#define PCF_PARITY_CHECK ((DWORD)0x0008) -#define PCF_XONXOFF ((DWORD)0x0010) -#define PCF_SETXCHAR ((DWORD)0x0020) -#define PCF_TOTTIMEOUTS ((DWORD)0x0040) -#define PCF_INTTIMEOUTS ((DWORD)0x0080) -#define PCF_SPECIALCHARS ((DWORD)0x0100) -#define PCF_16BITMODE ((DWORD)0x0200) +#define PCF_DTRDSR ((DWORD)0x0001) +#define PCF_RTSCTS ((DWORD)0x0002) +#define PCF_RLSD ((DWORD)0x0004) +#define PCF_PARITY_CHECK ((DWORD)0x0008) +#define PCF_XONXOFF ((DWORD)0x0010) +#define PCF_SETXCHAR ((DWORD)0x0020) +#define PCF_TOTALTIMEOUTS ((DWORD)0x0040) +#define PCF_INTTIMEOUTS ((DWORD)0x0080) +#define PCF_SPECIALCHARS ((DWORD)0x0100) +#define PCF_16BITMODE ((DWORD)0x0200) // // Comm provider settable parameters. @@ -223,7 +271,7 @@ typedef LPVOID LPLDT_ENTRY; #define SP_STOPBITS ((DWORD)0x0008) #define SP_HANDSHAKING ((DWORD)0x0010) #define SP_PARITY_CHECK ((DWORD)0x0020) -#define SP_CARRIER_DETECT ((DWORD)0x0040) +#define SP_RLSD ((DWORD)0x0040) // // Settable baud rates in the provider. @@ -245,6 +293,7 @@ typedef LPVOID LPLDT_ENTRY; #define BAUD_19200 ((DWORD)0x00002000) #define BAUD_38400 ((DWORD)0x00004000) #define BAUD_56K ((DWORD)0x00008000) +#define BAUD_128K ((DWORD)0x00010000) #define BAUD_USER ((DWORD)0x10000000) // @@ -275,15 +324,10 @@ typedef struct _COMMPROP { WORD wPacketLength; WORD wPacketVersion; DWORD dwServiceMask; - DWORD dwMaxConfigData; + DWORD dwReserved1; DWORD dwMaxTxQueue; DWORD dwMaxRxQueue; DWORD dwMaxBaud; - DWORD dwDefTxQueue; - DWORD dwDefRxQueue; - DWORD dwDefBaud; - WORD wDefDataBits; - WORD wDefStopParity; DWORD dwProvSubType; DWORD dwProvCapabilities; DWORD dwSettableParams; @@ -294,7 +338,7 @@ typedef struct _COMMPROP { DWORD dwCurrentRxQueue; DWORD dwProvSpec1; DWORD dwProvSpec2; - WCHAR ProvChar[1]; + WCHAR wcProvChar[1]; } COMMPROP,*LPCOMMPROP; typedef struct _COMSTAT { @@ -323,6 +367,7 @@ typedef struct _COMSTAT { #define RTS_CONTROL_DISABLE 0x00 #define RTS_CONTROL_ENABLE 0x01 #define RTS_CONTROL_HANDSHAKE 0x02 +#define RTS_CONTROL_TOGGLE 0x03 typedef struct _DCB { DWORD DCBlength; /* sizeof(DCB) */ @@ -332,14 +377,16 @@ typedef struct _DCB { DWORD fOutxCtsFlow:1; /* CTS handshaking on output */ DWORD fOutxDsrFlow:1; /* DSR handshaking on output */ DWORD fDtrControl:2; /* DTR Flow control */ - DWORD fDummy: 2; /* Reserved */ + DWORD fDsrSensitivity:1; /* DSR Sensitivity */ + DWORD fTXContinueOnXoff: 1; /* Continue TX when Xoff sent */ DWORD fOutX: 1; /* Enable output X-ON/X-OFF */ DWORD fInX: 1; /* Enable input X-ON/X-OFF */ - DWORD fPeChar: 1; /* Enable Parity Err Replacement */ + DWORD fErrorChar: 1; /* Enable Err Replacement */ DWORD fNull: 1; /* Enable Null stripping */ DWORD fRtsControl:2; /* Rts Flow control */ - DWORD fDummy2:2; /* Reserved */ - WORD TxDelay; /* Amount of time between chars */ + DWORD fAbortOnError:1; /* Abort all reads and writes on Error */ + DWORD fDummy2:1; /* Reserved */ + WORD wReserved; /* Not currently used */ WORD XonLim; /* Transmit X-ON threshold */ WORD XoffLim; /* Transmit X-OFF threshold */ BYTE ByteSize; /* Number of bits/byte, 4-8 */ @@ -347,7 +394,7 @@ typedef struct _DCB { BYTE StopBits; /* 0,1,2 = 1, 1.5, 2 */ char XonChar; /* Tx and Rx X-ON character */ char XoffChar; /* Tx and Rx X-OFF character */ - char PeChar; /* Parity error replacement char */ + char ErrorChar; /* Error replacement char */ char EofChar; /* End of Input character */ char EvtChar; /* Recieved Event character */ } DCB, *LPDCB; @@ -395,14 +442,9 @@ typedef struct _SYSTEM_INFO { #define GHND (GMEM_MOVEABLE | GMEM_ZEROINIT) #define GPTR (GMEM_FIXED | GMEM_ZEROINIT) -#define GlobalDiscard( h ) (HANDLE)(h) -#define GlobalLRUNewest( h ) (HANDLE)(h) -#define GlobalLRUOldest( h ) (HANDLE)(h) -#define GlobalCompact( dw ) (0x100000L) -#define GlobalFix( h ) (h) -#define GlobalUnfix( h ) ((BOOL)h) -#define GlobalUnWire( h ) (TRUE) -#define GlobalWire( h ) (LPSTR)(h) +#define GlobalLRUNewest( h ) (HANDLE)(h) +#define GlobalLRUOldest( h ) (HANDLE)(h) +#define GlobalDiscard( h ) GlobalReAlloc( (h), 0, GMEM_MOVEABLE ) /* Flags returned by GlobalFlags (in addition to GMEM_DISCARDABLE) */ #define GMEM_DISCARDED 0x4000 @@ -436,9 +478,7 @@ typedef struct _MEMORYSTATUS { #define NONZEROLHND (LMEM_MOVEABLE) #define NONZEROLPTR (LMEM_FIXED) -#define LocalShrink( h, n ) (0x10000) -#define LocalCompact( h ) (0x10000) -#define LocalDiscard( h ) (NULL) +#define LocalDiscard( h ) LocalReAlloc( (h), 0, LMEM_MOVEABLE ) /* Flags returned by LocalFlags (in addition to LMEM_DISCARDABLE) */ #define LMEM_DISCARDED 0x4000 @@ -457,6 +497,12 @@ typedef struct _MEMORYSTATUS { #define CREATE_NEW_CONSOLE 0x00000010 +#define NORMAL_PRIORITY_CLASS 0x00000020 +#define IDLE_PRIORITY_CLASS 0x00000040 +#define HIGH_PRIORITY_CLASS 0x00000080 + +#define CREATE_NO_WINDOW 0x08000000 + #define PROFILE_USER 0x10000000 #define PROFILE_KERNEL 0x20000000 #define PROFILE_SERVER 0x40000000 @@ -479,6 +525,7 @@ typedef struct _MEMORYSTATUS { #define LOAD_DLL_DEBUG_EVENT 6 #define UNLOAD_DLL_DEBUG_EVENT 7 #define OUTPUT_DEBUG_STRING_EVENT 8 +#define RIP_EVENT 9 typedef struct _EXCEPTION_DEBUG_INFO { EXCEPTION_RECORD ExceptionRecord; @@ -525,6 +572,12 @@ typedef struct _OUTPUT_DEBUG_STRING_INFO WORD nDebugStringLength; } OUTPUT_DEBUG_STRING_INFO, *LPOUTPUT_DEBUG_STRING_INFO; +typedef struct _RIP_INFO { + DWORD dwError; + DWORD dwType; +} RIP_INFO, *LPRIP_INFO; + + typedef struct _DEBUG_EVENT { DWORD dwDebugEventCode; DWORD dwProcessId; @@ -538,12 +591,13 @@ typedef struct _DEBUG_EVENT { LOAD_DLL_DEBUG_INFO LoadDll; UNLOAD_DLL_DEBUG_INFO UnloadDll; OUTPUT_DEBUG_STRING_INFO DebugString; + RIP_INFO RipInfo; } u; } DEBUG_EVENT, *LPDEBUG_EVENT; typedef PCONTEXT LPCONTEXT; typedef PEXCEPTION_RECORD LPEXCEPTION_RECORD; -typedef EXCEPTION_POINTERS LPEXCEPTION_POINTERS; +typedef PEXCEPTION_POINTERS LPEXCEPTION_POINTERS; #define DRIVE_REMOVABLE 2 #define DRIVE_FIXED 3 @@ -747,67 +801,47 @@ typedef EXCEPTION_POINTERS LPEXCEPTION_P #define OF_EXIST 0x00004000 #define OF_REOPEN 0x00008000 +#define OFS_MAXPATHNAME 128 typedef struct _OFSTRUCT { BYTE cBytes; BYTE fFixedDisk; WORD nErrCode; WORD Reserved1; WORD Reserved2; - BYTE szPathName[120]; + BYTE szPathName[OFS_MAXPATHNAME]; } OFSTRUCT, *LPOFSTRUCT, *POFSTRUCT; LONG -APIENTRY +WINAPI InterlockedIncrement( LPLONG lpAddend ); LONG -APIENTRY +WINAPI InterlockedDecrement( LPLONG lpAddend ); -// MVDM related Stuff -#define MAXIMUM_VDM_COMMAND_LENGTH 128 -#define MAXIMUM_VDM_ENVIORNMENT 32*1024 -#define MAXIMUM_VDM_CURRENT_DIR 64 - -// VDMState defines -#define ASKING_FOR_FIRST_COMMAND 1 // Very First call. -#define ASKING_FOR_WOW_BINARY 2 // Caller is WOWVDM -#define ASKING_FOR_DOS_BINARY 4 // Caller is DOSVDM -#define ASKING_FOR_SECOND_TIME 8 // Caller is asking second time after - // allocating bigger buffers. -typedef struct _VDMINFO { - LPVOID CmdLine; - LPVOID Enviornment; - USHORT CmdSize; - USHORT CurDrive; - ULONG EnviornmentSize; - ULONG ErrorCode; - ULONG VDMState; - ULONG iTask; -} VDMINFO, *PVDMINFO; - -DWORD -APIENTRY +BOOL +WINAPI FreeResource( - HANDLE hResData + HGLOBAL hResData ); -LPSTR -APIENTRY +LPVOID +WINAPI LockResource( - HANDLE hResData + HGLOBAL hResData ); #define UnlockResource(hResData) ((hResData), 0) #define MAXINTATOM 0xC000 -#define MAKEINTATOM(i) (LPSTR)((DWORD)((WORD)(i))) +#define MAKEINTATOM(i) (LPTSTR)((DWORD)((WORD)(i))) +#define INVALID_ATOM ((ATOM)0) int -APIENTRY +WINAPI WinMain( HANDLE hInstance, HANDLE hPrevInstance, @@ -816,136 +850,187 @@ WinMain( ); BOOL -APIENTRY +WINAPI FreeLibrary( HANDLE hLibModule ); FARPROC -APIENTRY +WINAPI GetProcAddress( HANDLE hModule, - LPSTR lpProcName + LPCSTR lpProcName ); DWORD -APIENTRY +WINAPI GetVersion( VOID ); -HANDLE -APIENTRY +HGLOBAL +WINAPI GlobalAlloc( - DWORD dwFlags, + UINT uFlags, DWORD dwBytes ); -HANDLE -APIENTRY +HGLOBAL +WINAPI GlobalReAlloc( - HANDLE hMem, + HGLOBAL hMem, DWORD dwBytes, - DWORD dwFlags + UINT uFlags ); DWORD -APIENTRY +WINAPI GlobalSize( - HANDLE hMem + HGLOBAL hMem ); -DWORD -APIENTRY +UINT +WINAPI GlobalFlags( - HANDLE hMem + HGLOBAL hMem ); -LPSTR -APIENTRY +LPVOID +WINAPI GlobalLock( - HANDLE hMem + HGLOBAL hMem ); - -HANDLE -APIENTRY +//!!!MWH My version win31 = DWORD WINAPI GlobalHandle(UINT) +HGLOBAL +WINAPI GlobalHandle( - LPSTR pMem + LPVOID pMem ); BOOL -APIENTRY +WINAPI GlobalUnlock( - HANDLE hMem + HGLOBAL hMem ); -LPVOID -APIENTRY +HGLOBAL +WINAPI GlobalFree( - HANDLE hMem + HGLOBAL hMem ); +UINT +WINAPI +GlobalCompact( + DWORD dwMinFree + ); VOID -APIENTRY +WINAPI +GlobalFix( + HGLOBAL hMem + ); + +VOID +WINAPI +GlobalUnfix( + HGLOBAL hMem + ); + +LPVOID +WINAPI +GlobalWire( + HGLOBAL hMem + ); + +BOOL +WINAPI +GlobalUnWire( + HGLOBAL hMem + ); + +VOID +WINAPI GlobalMemoryStatus( LPMEMORYSTATUS lpBuffer ); -HANDLE -APIENTRY +HLOCAL +WINAPI LocalAlloc( - DWORD dwFlags, - DWORD dwBytes + UINT uFlags, + UINT uBytes ); -HANDLE -APIENTRY +HLOCAL +WINAPI LocalReAlloc( - HANDLE hMem, - DWORD dwBytes, - DWORD dwFlags + HLOCAL hMem, + UINT uBytes, + UINT uFlags ); -LPSTR -APIENTRY +LPVOID +WINAPI LocalLock( - HANDLE hMem + HLOCAL hMem ); -HANDLE -APIENTRY +HLOCAL +WINAPI LocalHandle( - LPSTR pMem + LPVOID pMem ); BOOL -APIENTRY +WINAPI LocalUnlock( - HANDLE hMem + HLOCAL hMem ); -DWORD -APIENTRY +UINT +WINAPI LocalSize( - HANDLE hMem + HLOCAL hMem ); -DWORD +UINT +WINAPI LocalFlags( - HANDLE hMem + HLOCAL hMem ); -HANDLE -APIENTRY +HLOCAL +WINAPI LocalFree( - HANDLE hMem + HLOCAL hMem + ); + +UINT +WINAPI +LocalShrink( + HLOCAL hMem, + UINT cbNewSize + ); + +UINT +WINAPI +LocalCompact( + UINT uMinFree + ); + +BOOL +WINAPI +FlushInstructionCache( + HANDLE hProcess, + LPVOID lpBaseAddress, + DWORD dwSize ); LPVOID -APIENTRY +WINAPI VirtualAlloc( LPVOID lpAddress, DWORD dwSize, @@ -954,7 +1039,7 @@ VirtualAlloc( ); BOOL -APIENTRY +WINAPI VirtualFree( LPVOID lpAddress, DWORD dwSize, @@ -962,7 +1047,7 @@ VirtualFree( ); BOOL -APIENTRY +WINAPI VirtualProtect( LPVOID lpAddress, DWORD dwSize, @@ -971,15 +1056,34 @@ VirtualProtect( ); DWORD -APIENTRY +WINAPI VirtualQuery( LPVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, DWORD dwLength ); +BOOL +WINAPI +VirtualProtectEx( + HANDLE hProcess, + LPVOID lpAddress, + DWORD dwSize, + DWORD flNewProtect, + PDWORD lpflOldProtect + ); + +DWORD +WINAPI +VirtualQueryEx( + HANDLE hProcess, + LPVOID lpAddress, + PMEMORY_BASIC_INFORMATION lpBuffer, + DWORD dwLength + ); + HANDLE -APIENTRY +WINAPI HeapCreate( DWORD flOptions, DWORD dwInitialSize, @@ -987,27 +1091,27 @@ HeapCreate( ); BOOL -APIENTRY +WINAPI HeapDestroy( HANDLE hHeap ); LPSTR -APIENTRY +WINAPI HeapAlloc( HANDLE hHeap, DWORD dwBytes ); BOOL -APIENTRY +WINAPI HeapFree( HANDLE hHeap, LPSTR lpMem ); DWORD -APIENTRY +WINAPI HeapSize( HANDLE hHeap, LPSTR lpMem @@ -1015,7 +1119,7 @@ HeapSize( HANDLE -APIENTRY +WINAPI OpenProcess( DWORD dwDesiredAccess, BOOL bInheritHandle, @@ -1023,32 +1127,32 @@ OpenProcess( ); HANDLE -APIENTRY +WINAPI GetCurrentProcess( VOID ); DWORD -APIENTRY +WINAPI GetCurrentProcessId( VOID ); VOID -APIENTRY +WINAPI ExitProcess( - DWORD dwExitCode + UINT uExitCode ); BOOL -APIENTRY +WINAPI TerminateProcess( HANDLE hProcess, - DWORD dwExitCode + UINT uExitCode ); BOOL -APIENTRY +WINAPI GetExitCodeProcess( HANDLE hProcess, LPDWORD lpExitCode @@ -1056,19 +1160,19 @@ GetExitCodeProcess( VOID -APIENTRY +WINAPI FatalExit( - DWORD dwExitCode + int ExitCode ); LPVOID -APIENTRY +WINAPI GetEnvironmentStrings( VOID ); VOID -APIENTRY +WINAPI RaiseException( DWORD dwExceptionCode, DWORD dwExceptionFlags, @@ -1077,13 +1181,13 @@ RaiseException( ); EXCEPTION_DISPOSITION -APIENTRY +WINAPI UnhandledExceptionFilter( struct _EXCEPTION_POINTERS *ExceptionInfo ); HANDLE -APIENTRY +WINAPI CreateThread( LPSECURITY_ATTRIBUTES lpThreadAttributes, DWORD dwStackSize, @@ -1094,52 +1198,64 @@ CreateThread( ); HANDLE -APIENTRY +WINAPI +CreateRemoteThread( + HANDLE hProcess, + LPSECURITY_ATTRIBUTES lpThreadAttributes, + DWORD dwStackSize, + LPTHREAD_START_ROUTINE lpStartAddress, + LPVOID lpParameter, + DWORD dwCreationFlags, + LPDWORD lpThreadId + ); + +HANDLE +WINAPI GetCurrentThread( VOID ); DWORD -APIENTRY +WINAPI GetCurrentThreadId( VOID ); BOOL -APIENTRY +WINAPI SetThreadPriority( HANDLE hThread, int nPriority ); int -APIENTRY +WINAPI GetThreadPriority( HANDLE hThread ); VOID -APIENTRY +WINAPI ExitThread( DWORD dwExitCode ); BOOL -APIENTRY +WINAPI TerminateThread( HANDLE hThread, DWORD dwExitCode ); BOOL -APIENTRY +WINAPI GetExitCodeThread( HANDLE hThread, LPDWORD lpExitCode ); BOOL -APIENTRY +WINAPI GetThreadSelectorEntry( HANDLE hThread, DWORD dwSelector, @@ -1147,19 +1263,32 @@ GetThreadSelectorEntry( ); DWORD -APIENTRY +WINAPI GetLastError( VOID ); VOID -APIENTRY +WINAPI SetLastError( DWORD dwErrCode ); +// +// SetLastErrorEx() types. +// +#define SLE_ERROR 0x00000001 +#define SLE_MINORERROR 0x00000002 +#define SLE_WARNING 0x00000003 + +VOID +SetLastErrorEx( + DWORD dwErrCode, + DWORD dwType + ); + BOOL -APIENTRY +WINAPI GetOverlappedResult( HANDLE hFile, LPOVERLAPPED lpOverlapped, @@ -1167,15 +1296,25 @@ GetOverlappedResult( BOOL bWait ); -BOOL -APIENTRY +#define SEM_FAILCRITICALERRORS 0x0001 +#define SEM_NOGPFAULTERRORBOX 0x0002 +#define SEM_NOOPENFILEERRORBOX 0x8000 + +VOID +WINAPI +SetDebugErrorLevel( + DWORD dwLevel + ); + +UINT +WINAPI SetErrorMode( - BOOL bMode + UINT uMode ); BOOL -APIENTRY +WINAPI ReadProcessMemory( HANDLE hProcess, LPVOID lpBaseAddress, @@ -1185,7 +1324,7 @@ ReadProcessMemory( ); BOOL -APIENTRY +WINAPI WriteProcessMemory( HANDLE hProcess, LPVOID lpBaseAddress, @@ -1195,46 +1334,46 @@ WriteProcessMemory( ); BOOL -APIENTRY +WINAPI GetThreadContext( HANDLE hThread, LPCONTEXT lpContext ); BOOL -APIENTRY +WINAPI SetThreadContext( HANDLE hThread, LPCONTEXT lpContext ); DWORD -APIENTRY +WINAPI SuspendThread( HANDLE hThread ); DWORD -APIENTRY +WINAPI ResumeThread( - IN HANDLE hThread + HANDLE hThread ); VOID -APIENTRY +WINAPI DebugBreak( VOID ); BOOL -APIENTRY +WINAPI WaitForDebugEvent( LPDEBUG_EVENT lpDebugEvent, DWORD dwMilliseconds ); BOOL -APIENTRY +WINAPI ContinueDebugEvent( DWORD dwProcessId, DWORD dwThreadId, @@ -1242,55 +1381,96 @@ ContinueDebugEvent( ); BOOL -APIENTRY +WINAPI DebugActiveProcess( DWORD dwProcessId ); +HANDLE +WINAPI +DebugSnapShotProcessHeaps( + DWORD dwProcessId + ); + +typedef struct _DEBUG_HEAP_BACKTRACE { + DWORD Depth; + DWORD ReturnAddresses[ 1 ]; +} DEBUG_HEAP_BACKTRACE, *PDEBUG_HEAP_BACKTRACE; + +typedef struct _DEBUG_HEAP_ALLOCATOR { + DWORD TotalBytesAllocated; + DWORD OffsetToBackTrace; +} DEBUG_HEAP_ALLOCATOR, *PDEBUG_HEAP_ALLOCATOR; + +typedef struct _DEBUG_HEAP_ENTRY { + DWORD Address; + USHORT Size; + USHORT Allocator; +} DEBUG_HEAP_ENTRY, *PDEBUG_HEAP_ENTRY; + +#define DEBUG_HEAP_ENTRY_FREE (USHORT)-1 + +typedef struct _DEBUG_HEAP_INFO { + USHORT Creator; + USHORT HeaderSizeLog2; + USHORT ReservedPages; + USHORT CommittedPages; + USHORT AllocatorReservedPages; + USHORT AllocatorCommittedPages; + DWORD NumberOfEntries; + DEBUG_HEAP_ENTRY Entries[ 1 ]; +} DEBUG_HEAP_INFO, *PDEBUG_HEAP_INFO; + +typedef struct _DEBUG_HEAP_DUMP { + DWORD OffsetToAllocatorTable; + DWORD NumberOfHeaps; + DEBUG_HEAP_INFO HeapInfo[ 1 ]; +} DEBUG_HEAP_DUMP, *PDEBUG_HEAP_DUMP; + VOID -APIENTRY +WINAPI InitializeCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); VOID -APIENTRY +WINAPI EnterCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); VOID -APIENTRY +WINAPI LeaveCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); VOID -APIENTRY +WINAPI DeleteCriticalSection( LPCRITICAL_SECTION lpCriticalSection ); BOOL -APIENTRY +WINAPI SetEvent( HANDLE hEvent ); BOOL -APIENTRY +WINAPI ResetEvent( HANDLE hEvent ); BOOL -APIENTRY +WINAPI PulseEvent( HANDLE hEvent ); BOOL -APIENTRY +WINAPI ReleaseSemaphore( HANDLE hSemaphore, LONG lReleaseCount, @@ -1298,20 +1478,20 @@ ReleaseSemaphore( ); BOOL -APIENTRY +WINAPI ReleaseMutex( HANDLE hMutex ); DWORD -APIENTRY +WINAPI WaitForSingleObject( HANDLE hHandle, DWORD dwMilliseconds ); DWORD -APIENTRY +WINAPI WaitForMultipleObjects( DWORD nCount, LPHANDLE lpHandles, @@ -1320,111 +1500,133 @@ WaitForMultipleObjects( ); VOID -APIENTRY +WINAPI Sleep( DWORD dwMilliseconds ); -HANDLE -APIENTRY +HRSRC +WINAPI LoadResource( HANDLE hModule, - HANDLE hResInfo + HRSRC hResInfo ); DWORD -APIENTRY +WINAPI SizeofResource( HANDLE hModule, - HANDLE hResInfo + HRSRC hResInfo ); ATOM -APIENTRY +WINAPI GlobalDeleteAtom( ATOM nAtom ); BOOL -APIENTRY +WINAPI InitAtomTable( DWORD nSize ); ATOM -APIENTRY +WINAPI DeleteAtom( ATOM nAtom ); -DWORD -APIENTRY +UINT +WINAPI SetHandleCount( - DWORD dwNumber + UINT uNumber ); DWORD -APIENTRY +WINAPI GetLogicalDrives( VOID ); BOOL -APIENTRY +WINAPI LockFile( HANDLE hFile, - DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, - DWORD nNumberOfBytesToLock + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToLockLow, + DWORD nNumberOfBytesToLockHigh ); BOOL -APIENTRY +WINAPI UnlockFile( HANDLE hFile, - DWORD dwFileOffsetHigh, DWORD dwFileOffsetLow, - DWORD nNumberOfBytesToUnlock + DWORD dwFileOffsetHigh, + DWORD nNumberOfBytesToUnlockLow, + DWORD nNumberOfBytesToUnlockHigh + ); + +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, *PBY_HANDLE_FILE_INFORMATION, *LPBY_HANDLE_FILE_INFORMATION; + +BOOL +WINAPI +GetFileInformationByHandle( + HANDLE hFile, + LPBY_HANDLE_FILE_INFORMATION lpFileInformation ); DWORD -APIENTRY +WINAPI GetFileType( HANDLE hFile ); DWORD -APIENTRY +WINAPI GetFileSize( HANDLE hFile, LPDWORD lpFileSizeHigh ); HANDLE -APIENTRY +WINAPI GetStdHandle( DWORD nStdHandle ); BOOL -APIENTRY +WINAPI SetStdHandle( DWORD nStdHandle, HANDLE hHandle ); BOOL -APIENTRY +WINAPI WriteFile( HANDLE hFile, - LPVOID lpBuffer, + CONST VOID *lpBuffer, DWORD nNumberOfBytesToWrite, LPDWORD lpNumberOfBytesWritten, LPOVERLAPPED lpOverlapped ); BOOL -APIENTRY +WINAPI ReadFile( HANDLE hFile, LPVOID lpBuffer, @@ -1434,19 +1636,32 @@ ReadFile( ); BOOL -APIENTRY +WINAPI FlushFileBuffers( HANDLE hFile ); BOOL -APIENTRY +WINAPI +DeviceIoControl( + HANDLE hDevice, + DWORD dwIoControlCode, + LPVOID lpInBuffer, + DWORD nInBufferSize, + LPVOID lpOutBuffer, + DWORD nOutBufferSize, + LPDWORD lpBytesReturned, + LPOVERLAPPED lpOverlapped + ); + +BOOL +WINAPI SetEndOfFile( HANDLE hFile ); DWORD -APIENTRY +WINAPI SetFilePointer( HANDLE hFile, LONG lDistanceToMove, @@ -1455,13 +1670,13 @@ SetFilePointer( ); BOOL -APIENTRY +WINAPI FindClose( HANDLE hFindFile ); BOOL -APIENTRY +WINAPI GetFileTime( HANDLE hFile, LPFILETIME lpCreationTime, @@ -1470,7 +1685,7 @@ GetFileTime( ); BOOL -APIENTRY +WINAPI SetFileTime( HANDLE hFile, LPFILETIME lpCreationTime, @@ -1479,13 +1694,13 @@ SetFileTime( ); BOOL -APIENTRY +WINAPI CloseHandle( HANDLE hObject ); BOOL -APIENTRY +WINAPI DuplicateHandle( HANDLE hSourceProcessHandle, HANDLE hSourceHandle, @@ -1497,34 +1712,34 @@ DuplicateHandle( ); DWORD -APIENTRY +WINAPI LoadModule( - LPSTR lpModuleName, + LPCSTR lpModuleName, LPVOID lpParameterBlock ); -DWORD -APIENTRY +UINT +WINAPI WinExec( - LPSTR lpCmdLine, - WORD nCmdShow + LPCSTR lpCmdLine, + UINT uCmdShow ); BOOL -APIENTRY +WINAPI BuildCommDCB( LPSTR lpDef, LPDCB lpDCB ); BOOL -APIENTRY +WINAPI ClearCommBreak( HANDLE hFile ); BOOL -APIENTRY +WINAPI ClearCommError( HANDLE hFile, LPDWORD lpErrors, @@ -1532,7 +1747,7 @@ ClearCommError( ); BOOL -APIENTRY +WINAPI SetupComm( HANDLE hFile, DWORD dwInQueue, @@ -1540,196 +1755,253 @@ SetupComm( ); BOOL -APIENTRY -EnableCommNotification( - HANDLE hFile, - HANDLE hWnd, - DWORD dwInTrigger, - DWORD dwOutTrigger - ); - -BOOL -APIENTRY +WINAPI EscapeCommFunction( HANDLE hFile, DWORD dwFunc ); BOOL -APIENTRY -ExtendedProviderFunction( - HANDLE hFile, - WORD wCatagory, - WORD wFunction, - LPVOID lpParam, - LPVOID lpData, - DWORD dwParamLength, - LPDWORD lpDataLength - ); - -BOOL -APIENTRY -GetCommConfig( +WINAPI +GetCommMask( HANDLE hFile, - LPVOID lpCOMMCONFIG, - DWORD dwSize + LPDWORD lpEvtMask ); BOOL -APIENTRY -GetCommMask( +WINAPI +GetCommProperties( HANDLE hFile, - LPDWORD lpEvtMask + LPCOMMPROP lpCommProp ); BOOL -APIENTRY +WINAPI GetCommModemStatus( HANDLE hFile, LPDWORD lpModemStat ); BOOL -APIENTRY +WINAPI GetCommState( HANDLE hFile, LPDCB lpDCB ); BOOL -APIENTRY +WINAPI GetCommTimeouts( HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts ); BOOL -APIENTRY +WINAPI PurgeComm( HANDLE hFile, DWORD dwFlags ); BOOL -APIENTRY +WINAPI SetCommBreak( HANDLE hFile ); BOOL -APIENTRY -SetCommConfig( - HANDLE hFile, - LPVOID lpCOMMCONFIG, - DWORD dwSize - ); - -BOOL -APIENTRY +WINAPI SetCommMask( HANDLE hFile, DWORD dwEvtMask ); BOOL -APIENTRY +WINAPI SetCommState( HANDLE hFile, LPDCB lpDCB ); BOOL -APIENTRY +WINAPI SetCommTimeouts( HANDLE hFile, LPCOMMTIMEOUTS lpCommTimeouts ); BOOL -APIENTRY +WINAPI TransmitCommChar( HANDLE hFile, char cChar ); BOOL -APIENTRY +WINAPI WaitCommEvent( HANDLE hFile, LPDWORD lpEvtMask, - HANDLE hEvent + LPOVERLAPPED lpOverlapped + ); + + +DWORD +WINAPI +SetTapePosition( + HANDLE hDevice, + DWORD dwPositionMethod, + DWORD dwPartition, + DWORD dwOffset, + LPDWORD lpdwOffsetHigh, + LPOVERLAPPED lpOverlapped + ); + +DWORD +WINAPI +GetTapePosition( + HANDLE hDevice, + LPDWORD dwPartition, + LPDWORD lpdwOffsetHigh, + LPOVERLAPPED lpOverlapped + ); + +DWORD +WINAPI +PrepareTape( + HANDLE hDevice, + DWORD dwTapeOperation, + LPOVERLAPPED lpOverlapped + ); + +DWORD +WINAPI +EraseTape( + HANDLE hDevice, + DWORD dwPartition, + DWORD dwEraseType, + LPOVERLAPPED lpOverlapped + ); + +DWORD +CreateTapePartition( + HANDLE hDevice, + DWORD dwSize, + LPVOID lpPartitionParameters, + LPOVERLAPPED lpOverlapped + ); + +DWORD +WINAPI +WriteTapemark( + HANDLE hDevice, + DWORD dwTapemarkType, + DWORD dwTapemarkCount, + LPOVERLAPPED lpOverlapped + ); + +DWORD +WINAPI +GetTapeStatus( + HANDLE hDevice, + LPVOID lpTapeStatus, + LPOVERLAPPED lpOverlapped + ); + +DWORD +WINAPI +GetTapeParameters( + HANDLE hDevice, + DWORD dwOperation, + LPVOID lpTapeInformation, + LPOVERLAPPED lpOverlapped + ); + +#define GET_TAPE_MEDIA_INFORMATION 0 +#define GET_TAPE_DRIVE_INFORMATION 1 + +DWORD +WINAPI +SetTapeParameters( + HANDLE hDevice, + DWORD dwOperation, + LPVOID lpTapeInformation, + LPOVERLAPPED lpOverlapped ); +#define SET_TAPE_MEDIA_INFORMATION 0 +#define SET_TAPE_DRIVE_INFORMATION 1 + BOOL -APIENTRY +WINAPI Beep( DWORD dwFreq, DWORD dwDuration ); VOID -APIENTRY +WINAPI OpenSound( VOID ); VOID -APIENTRY +WINAPI CloseSound( VOID ); VOID -APIENTRY +WINAPI StartSound( VOID ); VOID -APIENTRY +WINAPI StopSound( VOID ); DWORD -APIENTRY +WINAPI WaitSoundState( DWORD nState ); DWORD -APIENTRY +WINAPI SyncAllVoices( VOID ); DWORD -APIENTRY +WINAPI CountVoiceNotes( DWORD nVoice ); LPDWORD -APIENTRY +WINAPI GetThresholdEvent( VOID ); DWORD -APIENTRY +WINAPI GetThresholdStatus( VOID ); DWORD -APIENTRY +WINAPI SetSoundNoise( DWORD nSource, DWORD nDuration ); DWORD -APIENTRY +WINAPI SetVoiceAccent( DWORD nVoice, DWORD nTempo, @@ -1739,7 +2011,7 @@ SetVoiceAccent( ); DWORD -APIENTRY +WINAPI SetVoiceEnvelope( DWORD nVoice, DWORD nShape, @@ -1747,7 +2019,7 @@ SetVoiceEnvelope( ); DWORD -APIENTRY +WINAPI SetVoiceNote( DWORD nVoice, DWORD nValue, @@ -1756,29 +2028,29 @@ SetVoiceNote( ); DWORD -APIENTRY +WINAPI SetVoiceQueueSize( DWORD nVoice, DWORD nBytes ); DWORD -APIENTRY +WINAPI SetVoiceSound( DWORD nVoice, - LONG lFrequency, + DWORD Frequency, DWORD nDuration ); DWORD -APIENTRY +WINAPI SetVoiceThreshold( DWORD nVoice, DWORD nNotes ); int -APIENTRY +WINAPI MulDiv( int nNumber, int nNumerator, @@ -1786,19 +2058,19 @@ MulDiv( ); VOID -APIENTRY +WINAPI GetSystemTime( LPSYSTEMTIME lpSystemTime ); BOOL -APIENTRY +WINAPI SetSystemTime( LPSYSTEMTIME lpSystemTime ); VOID -APIENTRY +WINAPI GetSystemInfo( LPSYSTEM_INFO lpSystemInfo ); @@ -1809,28 +2081,28 @@ GetSystemInfo( // BOOL -APIENTRY +WINAPI SystemTimeToFileTime( LPSYSTEMTIME lpSystemTime, LPFILETIME lpFileTime ); BOOL -APIENTRY +WINAPI FileTimeToSystemTime( LPFILETIME lpFileTime, LPSYSTEMTIME lpSystemTime ); LONG -APIENTRY +WINAPI CompareFileTime( LPFILETIME lpFileTime1, LPFILETIME lpFileTime2 ); BOOL -APIENTRY +WINAPI FileTimeToDosDateTime( LPFILETIME lpFileTime, LPWORD lpFatDate, @@ -1838,7 +2110,7 @@ FileTimeToDosDateTime( ); BOOL -APIENTRY +WINAPI DosDateTimeToFileTime( WORD wFatDate, WORD wFatTime, @@ -1846,13 +2118,13 @@ DosDateTimeToFileTime( ); DWORD -APIENTRY +WINAPI GetTickCount( VOID ); DWORD -APIENTRY +WINAPI FormatMessage( DWORD dwFlags, LPVOID lpSource, @@ -1872,7 +2144,7 @@ FormatMessage( BOOL -APIENTRY +WINAPI CreatePipe( PHANDLE hReadPipe, PHANDLE hWritePipe, @@ -1881,20 +2153,20 @@ CreatePipe( ); BOOL -APIENTRY +WINAPI ConnectNamedPipe( HANDLE hNamedPipe, LPOVERLAPPED lpOverlapped ); BOOL -APIENTRY +WINAPI DisconnectNamedPipe( HANDLE hNamedPipe ); BOOL -APIENTRY +WINAPI SetNamedPipeHandleState( HANDLE hNamedPipe, LPDWORD lpMode, @@ -1903,7 +2175,7 @@ SetNamedPipeHandleState( ); BOOL -APIENTRY +WINAPI GetNamedPipeInfo( HANDLE hNamedPipe, LPDWORD lpFlags, @@ -1913,7 +2185,7 @@ GetNamedPipeInfo( ); BOOL -APIENTRY +WINAPI PeekNamedPipe( HANDLE hNamedPipe, LPVOID lpBuffer, @@ -1924,7 +2196,7 @@ PeekNamedPipe( ); BOOL -APIENTRY +WINAPI TransactNamedPipe( HANDLE hNamedPipe, LPVOID lpInBuffer, @@ -1936,22 +2208,20 @@ TransactNamedPipe( ); HANDLE -APIENTRY +WINAPI CreateMailslotA( - IN LPSTR lpName, - IN DWORD nMaxMessageSize, - IN DWORD nMailslotSize, - IN DWORD lReadTimeout, - IN LPSECURITY_ATTRIBUTES lpSecurityAttributes OPTIONAL + LPSTR lpName, + DWORD nMaxMessageSize, + DWORD lReadTimeout, + LPSECURITY_ATTRIBUTES lpSecurityAttributes ); HANDLE -APIENTRY +WINAPI CreateMailslotW( - IN LPWSTR lpName, - IN DWORD nMaxMessageSize, - IN DWORD nMailslotSize, - IN DWORD lReadTimeout, - IN LPSECURITY_ATTRIBUTES lpSecurityAttributes OPTIONAL + LPWSTR lpName, + DWORD nMaxMessageSize, + DWORD lReadTimeout, + LPSECURITY_ATTRIBUTES lpSecurityAttributes ); #ifdef UNICODE #define CreateMailslot CreateMailslotW @@ -1960,25 +2230,24 @@ CreateMailslotW( #endif // !UNICODE BOOL -APIENTRY +WINAPI GetMailslotInfo( - IN HANDLE hMailslot, - OUT LPDWORD lpMaxMessageSize OPTIONAL, - OUT LPDWORD lpMailslotSize OPTIONAL, - OUT LPDWORD lpNextSize OPTIONAL, - OUT LPDWORD lpMessageCount OPTIONAL, - OUT LPDWORD lpReadTimeout OPTIONAL + HANDLE hMailslot, + LPDWORD lpMaxMessageSize, + LPDWORD lpNextSize, + LPDWORD lpMessageCount, + LPDWORD lpReadTimeout ); BOOL -APIENTRY +WINAPI SetMailslotInfo( - IN HANDLE hMailslot, - IN DWORD lReadTimeout + HANDLE hMailslot, + DWORD lReadTimeout ); LPVOID -APIENTRY +WINAPI MapViewOfFile( HANDLE hFileMappingObject, DWORD dwDesiredAccess, @@ -1988,14 +2257,14 @@ MapViewOfFile( ); BOOL -APIENTRY +WINAPI FlushViewOfFile( LPVOID lpBaseAddress, DWORD dwNumberOfBytesToFlush ); BOOL -APIENTRY +WINAPI UnmapViewOfFile( LPVOID lpBaseAddress ); @@ -2005,133 +2274,257 @@ UnmapViewOfFile( // int -APIENTRY -lstrcmp( - LPSTR lpString1, - LPSTR lpString2 +WINAPI +lstrcmpA( + LPCSTR lpString1, + LPCSTR lpString2 + ); +int +WINAPI +lstrcmpW( + LPCWSTR lpString1, + LPCWSTR lpString2 ); +#ifdef UNICODE +#define lstrcmp lstrcmpW +#else +#define lstrcmp lstrcmpA +#endif // !UNICODE int -APIENTRY -lstrcmpi( - LPSTR lpString1, - LPSTR lpString2 +WINAPI +lstrcmpiA( + LPCSTR lpString1, + LPCSTR lpString2 ); +int +WINAPI +lstrcmpiW( + LPCWSTR lpString1, + LPCWSTR lpString2 + ); +#ifdef UNICODE +#define lstrcmpi lstrcmpiW +#else +#define lstrcmpi lstrcmpiA +#endif // !UNICODE LPSTR -APIENTRY -lstrcpy( +WINAPI +lstrcpyA( LPSTR lpString1, - LPSTR lpString2 + LPCSTR lpString2 + ); +LPWSTR +WINAPI +lstrcpyW( + LPWSTR lpString1, + LPCWSTR lpString2 ); +#ifdef UNICODE +#define lstrcpy lstrcpyW +#else +#define lstrcpy lstrcpyA +#endif // !UNICODE LPSTR -APIENTRY -lstrcat( +WINAPI +lstrcatA( LPSTR lpString1, - LPSTR lpString2 + LPCSTR lpString2 ); +LPWSTR +WINAPI +lstrcatW( + LPWSTR lpString1, + LPCWSTR lpString2 + ); +#ifdef UNICODE +#define lstrcat lstrcatW +#else +#define lstrcat lstrcatA +#endif // !UNICODE int -APIENTRY -lstrlen( - LPSTR lpString +WINAPI +lstrlenA( + LPCSTR lpString ); - int -APIENTRY -OpenFile( - LPSTR lpFileName, - LPOFSTRUCT lpReOpenBuff, - WORD wStyle +WINAPI +lstrlenW( + LPCWSTR lpString ); +#ifdef UNICODE +#define lstrlen lstrlenW +#else +#define lstrlen lstrlenA +#endif // !UNICODE -int -APIENTRY -OpenSystemFile( - LPSTR lpFileName, +HFILE +WINAPI +OpenFile( + LPCSTR lpFileName, LPOFSTRUCT lpReOpenBuff, - WORD wStyle + UINT uStyle ); -int -APIENTRY +HFILE +WINAPI _lopen( - LPSTR lpPathName, + LPCSTR lpPathName, int iReadWrite ); -int -APIENTRY +HFILE +WINAPI _lcreat( - LPSTR lpPathName, - WORD iAttribute + LPCSTR lpPathName, + int iAttribute ); -DWORD -APIENTRY +UINT +WINAPI _lread( - int hFile, - LPSTR lpBuffer, - int nBytes + HFILE hFile, + LPVOID lpBuffer, + UINT uBytes ); -DWORD -APIENTRY +UINT +WINAPI _lwrite( - int hFile, - LPSTR lpBuffer, - int nBytes + HFILE hFile, + LPCSTR lpBuffer, + UINT uBytes ); -int -APIENTRY +HFILE +WINAPI _lclose( - int hFile + HFILE hFile ); -int -APIENTRY +LONG +WINAPI _llseek( - int hFile, - int lOffset, + HFILE hFile, + LONG lOffset, int iOrigin ); DWORD -APIENTRY +WINAPI TlsAlloc( VOID ); LPVOID -APIENTRY +WINAPI TlsGetValue( DWORD dwTlsIndex ); BOOL -APIENTRY +WINAPI TlsSetValue( DWORD dwTlsIndex, LPVOID lpTlsValue ); BOOL -APIENTRY +WINAPI TlsFree( DWORD dwTlsIndex ); +typedef +VOID +(*LPOVERLAPPED_COMPLETION_ROUTINE)( + DWORD dwErrorCode, + DWORD dwNumberOfBytesTransfered, + LPOVERLAPPED lpOverlapped + ); + +DWORD +WINAPI +SleepEx( + DWORD dwMilliseconds, + BOOL bAlertable + ); + +DWORD +WINAPI +WaitForSingleObjectEx( + HANDLE hHandle, + DWORD dwMilliseconds, + BOOL bAlertable + ); + +DWORD +WINAPI +WaitForMultipleObjectsEx( + DWORD nCount, + LPHANDLE lpHandles, + BOOL bWaitAll, + DWORD dwMilliseconds, + BOOL bAlertable + ); + +BOOL +WINAPI +ReadFileEx( + HANDLE hFile, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + LPOVERLAPPED lpOverlapped, + LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine + ); + +BOOL +WINAPI +WriteFileEx( + HANDLE hFile, + LPVOID lpBuffer, + DWORD nNumberOfBytesToWrite, + LPOVERLAPPED lpOverlapped, + LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine + ); + +BOOL +WINAPI +BackupRead( + HANDLE hFile, + LPBYTE lpBuffer, + DWORD nNumberOfBytesToRead, + LPDWORD lpNumberOfBytesRead, + BOOL fAbort , + LPVOID *lpContext + ); + +BOOL +WINAPI +BackupWrite( + HANDLE hFile, + LPBYTE lpBuffer, + DWORD nNumberOfBytesToWrite, + LPDWORD lpNumberOfBytesWritten, + BOOL fAbort , + LPVOID *lpContext + ); + // // Dual Mode API below this line. Dual Mode Structures also included. // -#define STARTF_USESHOWWINDOW 1 -#define STARTF_USESIZE 2 -#define STARTF_USEPOSITION 4 -#define STARTF_USECOUNTCHARS 8 -#define STARTF_USEFILLATTRIBUTE 16 +#define STARTF_USESHOWWINDOW 0x00000001 +#define STARTF_USESIZE 0x00000002 +#define STARTF_USEPOSITION 0x00000004 +#define STARTF_USECOUNTCHARS 0x00000008 +#define STARTF_USEFILLATTRIBUTE 0x00000010 +#define STARTF_RUNFULLSCREEN 0x00000020 // ignored for non-x86 platforms +#define STARTF_FORCEONFEEDBACK 0x00000040 +#define STARTF_FORCEOFFFEEDBACK 0x00000080 typedef struct _STARTUPINFOA { DWORD cb; @@ -2182,7 +2575,10 @@ typedef struct _WIN32_FIND_DATAA { FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; + DWORD dwReserved0; + DWORD dwReserved1; CHAR cFileName[ MAX_PATH ]; + CHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATAA, *PWIN32_FIND_DATAA, *LPWIN32_FIND_DATAA; typedef struct _WIN32_FIND_DATAW { DWORD dwFileAttributes; @@ -2191,7 +2587,10 @@ typedef struct _WIN32_FIND_DATAW { FILETIME ftLastWriteTime; DWORD nFileSizeHigh; DWORD nFileSizeLow; + DWORD dwReserved0; + DWORD dwReserved1; WCHAR cFileName[ MAX_PATH ]; + WCHAR cAlternateFileName[ 14 ]; } WIN32_FIND_DATAW, *PWIN32_FIND_DATAW, *LPWIN32_FIND_DATAW; #ifdef UNICODE #define WIN32_FIND_DATA WIN32_FIND_DATAW @@ -2203,15 +2602,17 @@ typedef struct _WIN32_FIND_DATAW { #define LPWIN32_FIND_DATA LPWIN32_FIND_DATAA #endif // UNICODE + + HANDLE -APIENTRY +WINAPI CreateMutexA( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, LPSTR lpName ); HANDLE -APIENTRY +WINAPI CreateMutexW( LPSECURITY_ATTRIBUTES lpMutexAttributes, BOOL bInitialOwner, @@ -2224,14 +2625,14 @@ CreateMutexW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI OpenMutexA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPSTR lpName ); HANDLE -APIENTRY +WINAPI OpenMutexW( DWORD dwDesiredAccess, BOOL bInheritHandle, @@ -2244,7 +2645,7 @@ OpenMutexW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI CreateEventA( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, @@ -2252,7 +2653,7 @@ CreateEventA( LPSTR lpName ); HANDLE -APIENTRY +WINAPI CreateEventW( LPSECURITY_ATTRIBUTES lpEventAttributes, BOOL bManualReset, @@ -2266,14 +2667,14 @@ CreateEventW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI OpenEventA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPSTR lpName ); HANDLE -APIENTRY +WINAPI OpenEventW( DWORD dwDesiredAccess, BOOL bInheritHandle, @@ -2286,7 +2687,7 @@ OpenEventW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI CreateSemaphoreA( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, @@ -2294,7 +2695,7 @@ CreateSemaphoreA( LPSTR lpName ); HANDLE -APIENTRY +WINAPI CreateSemaphoreW( LPSECURITY_ATTRIBUTES lpSemaphoreAttributes, LONG lInitialCount, @@ -2308,14 +2709,14 @@ CreateSemaphoreW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI OpenSemaphoreA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPSTR lpName ); HANDLE -APIENTRY +WINAPI OpenSemaphoreW( DWORD dwDesiredAccess, BOOL bInheritHandle, @@ -2328,7 +2729,7 @@ OpenSemaphoreW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI CreateFileMappingA( HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, @@ -2338,7 +2739,7 @@ CreateFileMappingA( LPSTR lpName ); HANDLE -APIENTRY +WINAPI CreateFileMappingW( HANDLE hFile, LPSECURITY_ATTRIBUTES lpFileMappingAttributes, @@ -2354,14 +2755,14 @@ CreateFileMappingW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI OpenFileMappingA( DWORD dwDesiredAccess, BOOL bInheritHandle, LPSTR lpName ); HANDLE -APIENTRY +WINAPI OpenFileMappingW( DWORD dwDesiredAccess, BOOL bInheritHandle, @@ -2374,13 +2775,13 @@ OpenFileMappingW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetLogicalDriveStringsA( DWORD nBufferLength, LPSTR lpBuffer ); DWORD -APIENTRY +WINAPI GetLogicalDriveStringsW( DWORD nBufferLength, LPWSTR lpBuffer @@ -2392,14 +2793,14 @@ GetLogicalDriveStringsW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI LoadLibraryA( - LPSTR lpLibFileName + LPCSTR lpLibFileName ); HANDLE -APIENTRY +WINAPI LoadLibraryW( - LPWSTR lpLibFileName + LPCWSTR lpLibFileName ); #ifdef UNICODE #define LoadLibrary LoadLibraryW @@ -2408,14 +2809,14 @@ LoadLibraryW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetModuleFileNameA( HANDLE hModule, LPSTR lpFilename, DWORD nSize ); DWORD -APIENTRY +WINAPI GetModuleFileNameW( HANDLE hModule, LPWSTR lpFilename, @@ -2428,14 +2829,14 @@ GetModuleFileNameW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI GetModuleHandleA( - LPSTR lpModuleName + LPCSTR lpModuleName ); HANDLE -APIENTRY +WINAPI GetModuleHandleW( - LPWSTR lpModuleName + LPCWSTR lpModuleName ); #ifdef UNICODE #define GetModuleHandle GetModuleHandleW @@ -2444,10 +2845,10 @@ GetModuleHandleW( #endif // !UNICODE BOOL -APIENTRY +WINAPI CreateProcessA( - LPSTR lpApplicationName, - LPSTR lpCommandLine, + LPCSTR lpApplicationName, + LPCSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, @@ -2458,10 +2859,10 @@ CreateProcessA( LPPROCESS_INFORMATION lpProcessInformation ); BOOL -APIENTRY +WINAPI CreateProcessW( - LPWSTR lpApplicationName, - LPWSTR lpCommandLine, + LPCWSTR lpApplicationName, + LPCWSTR lpCommandLine, LPSECURITY_ATTRIBUTES lpProcessAttributes, LPSECURITY_ATTRIBUTES lpThreadAttributes, BOOL bInheritHandles, @@ -2478,16 +2879,16 @@ CreateProcessW( #endif // !UNICODE VOID -APIENTRY +WINAPI FatalAppExitA( - WORD wAction, - LPSTR lpMessageText + UINT uAction, + LPCSTR lpMessageText ); VOID -APIENTRY +WINAPI FatalAppExitW( - WORD wAction, - LPWSTR lpMessageText + UINT uAction, + LPCWSTR lpMessageText ); #ifdef UNICODE #define FatalAppExit FatalAppExitW @@ -2496,12 +2897,12 @@ FatalAppExitW( #endif // !UNICODE VOID -APIENTRY +WINAPI GetStartupInfoA( LPSTARTUPINFOA lpStartupInfo ); VOID -APIENTRY +WINAPI GetStartupInfoW( LPSTARTUPINFOW lpStartupInfo ); @@ -2512,12 +2913,12 @@ GetStartupInfoW( #endif // !UNICODE LPSTR -APIENTRY +WINAPI GetCommandLineA( VOID ); LPWSTR -APIENTRY +WINAPI GetCommandLineW( VOID ); @@ -2528,14 +2929,14 @@ GetCommandLineW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetEnvironmentVariableA( LPSTR lpName, LPSTR lpBuffer, DWORD nSize ); DWORD -APIENTRY +WINAPI GetEnvironmentVariableW( LPWSTR lpName, LPWSTR lpBuffer, @@ -2548,13 +2949,13 @@ GetEnvironmentVariableW( #endif // !UNICODE BOOL -APIENTRY +WINAPI SetEnvironmentVariableA( LPSTR lpName, LPSTR lpValue ); BOOL -APIENTRY +WINAPI SetEnvironmentVariableW( LPWSTR lpName, LPWSTR lpValue @@ -2565,15 +2966,35 @@ SetEnvironmentVariableW( #define SetEnvironmentVariable SetEnvironmentVariableA #endif // !UNICODE +DWORD +WINAPI +ExpandEnvironmentStringsA( + LPCSTR lpSrc, + LPSTR lpDst, + DWORD nSize + ); +DWORD +WINAPI +ExpandEnvironmentStringsW( + LPCWSTR lpSrc, + LPWSTR lpDst, + DWORD nSize + ); +#ifdef UNICODE +#define ExpandEnvironmentStrings ExpandEnvironmentStringsW +#else +#define ExpandEnvironmentStrings ExpandEnvironmentStringsA +#endif // !UNICODE + VOID -APIENTRY +WINAPI OutputDebugStringA( - LPSTR lpOutputString + LPCSTR lpOutputString ); VOID -APIENTRY +WINAPI OutputDebugStringW( - LPWSTR lpOutputString + LPCWSTR lpOutputString ); #ifdef UNICODE #define OutputDebugString OutputDebugStringW @@ -2581,19 +3002,19 @@ OutputDebugStringW( #define OutputDebugString OutputDebugStringA #endif // !UNICODE -HANDLE -APIENTRY +HRSRC +WINAPI FindResourceA( HANDLE hModule, - LPSTR lpName, - LPSTR lpType + LPCSTR lpName, + LPCSTR lpType ); -HANDLE -APIENTRY +HRSRC +WINAPI FindResourceW( HANDLE hModule, - LPWSTR lpName, - LPWSTR lpType + LPCWSTR lpName, + LPCWSTR lpType ); #ifdef UNICODE #define FindResource FindResourceW @@ -2601,18 +3022,53 @@ FindResourceW( #define FindResource FindResourceA #endif // !UNICODE +HRSRC +WINAPI +FindResourceExA( + HANDLE hModule, + LPCSTR lpType, + LPCSTR lpName, + WORD wLanguage + ); +HRSRC +WINAPI +FindResourceExW( + HANDLE hModule, + LPCWSTR lpType, + LPCWSTR lpName, + WORD wLanguage + ); +#ifdef UNICODE +#define FindResourceEx FindResourceExW +#else +#define FindResourceEx FindResourceExA +#endif // !UNICODE + +#ifdef STRICT +typedef BOOL (CALLBACK* ENUMRESTYPEPROC)(HANDLE hModule, LPTSTR lpType, + LONG lParam); +typedef BOOL (CALLBACK* ENUMRESNAMEPROC)(HANDLE hModule, LPCTSTR lpType, + LPTSTR lpName, LONG lParam); +typedef BOOL (CALLBACK* ENUMRESLANGPROC)(HANDLE hModule, LPCTSTR lpType, + LPCTSTR lpName, WORD wLanguage, LONG lParam); +#else +typedef FARPROC ENUMRESTYPEPROC; +typedef FARPROC ENUMRESNAMEPROC; +typedef FARPROC ENUMRESLANGPROC; +#endif + BOOL -APIENTRY +WINAPI EnumResourceTypesA( HANDLE hModule, - FARPROC lpEnumFunc, + ENUMRESTYPEPROC lpEnumFunc, LONG lParam ); BOOL -APIENTRY +WINAPI EnumResourceTypesW( HANDLE hModule, - FARPROC lpEnumFunc, + ENUMRESTYPEPROC lpEnumFunc, LONG lParam ); #ifdef UNICODE @@ -2623,19 +3079,19 @@ EnumResourceTypesW( BOOL -APIENTRY +WINAPI EnumResourceNamesA( HANDLE hModule, - LPSTR lpType, - FARPROC lpEnumFunc, + LPCSTR lpType, + ENUMRESNAMEPROC lpEnumFunc, LONG lParam ); BOOL -APIENTRY +WINAPI EnumResourceNamesW( HANDLE hModule, - LPWSTR lpType, - FARPROC lpEnumFunc, + LPCWSTR lpType, + ENUMRESNAMEPROC lpEnumFunc, LONG lParam ); #ifdef UNICODE @@ -2644,15 +3100,99 @@ EnumResourceNamesW( #define EnumResourceNames EnumResourceNamesA #endif // !UNICODE +BOOL +WINAPI +EnumResourceLanguagesA( + HANDLE hModule, + LPCSTR lpType, + LPCSTR lpName, + ENUMRESLANGPROC lpEnumFunc, + LONG lParam + ); +BOOL +WINAPI +EnumResourceLanguagesW( + HANDLE hModule, + LPCWSTR lpType, + LPCWSTR lpName, + ENUMRESLANGPROC lpEnumFunc, + LONG lParam + ); +#ifdef UNICODE +#define EnumResourceLanguages EnumResourceLanguagesW +#else +#define EnumResourceLanguages EnumResourceLanguagesA +#endif // !UNICODE + +HANDLE +WINAPI +BeginUpdateResourceA( + LPSTR pFileName + ); +HANDLE +WINAPI +BeginUpdateResourceW( + LPWSTR pFileName + ); +#ifdef UNICODE +#define BeginUpdateResource BeginUpdateResourceW +#else +#define BeginUpdateResource BeginUpdateResourceA +#endif // !UNICODE + +BOOL +WINAPI +UpdateResourceA( + HANDLE hUpdate, + LPSTR lpType, + LPSTR lpName, + WORD wLanguage, + LPVOID lpData, + DWORD cbData + ); +BOOL +WINAPI +UpdateResourceW( + HANDLE hUpdate, + LPWSTR lpType, + LPWSTR lpName, + WORD wLanguage, + LPVOID lpData, + DWORD cbData + ); +#ifdef UNICODE +#define UpdateResource UpdateResourceW +#else +#define UpdateResource UpdateResourceA +#endif // !UNICODE + +BOOL +WINAPI +EndUpdateResourceA( + HANDLE hUpdate, + BOOL fDiscard + ); +BOOL +WINAPI +EndUpdateResourceW( + HANDLE hUpdate, + BOOL fDiscard + ); +#ifdef UNICODE +#define EndUpdateResource EndUpdateResourceW +#else +#define EndUpdateResource EndUpdateResourceA +#endif // !UNICODE + ATOM -APIENTRY +WINAPI GlobalAddAtomA( - LPSTR lpString + LPCSTR lpString ); ATOM -APIENTRY +WINAPI GlobalAddAtomW( - LPWSTR lpString + LPCWSTR lpString ); #ifdef UNICODE #define GlobalAddAtom GlobalAddAtomW @@ -2661,14 +3201,14 @@ GlobalAddAtomW( #endif // !UNICODE ATOM -APIENTRY +WINAPI GlobalFindAtomA( - LPSTR lpString + LPCSTR lpString ); ATOM -APIENTRY +WINAPI GlobalFindAtomW( - LPWSTR lpString + LPCWSTR lpString ); #ifdef UNICODE #define GlobalFindAtom GlobalFindAtomW @@ -2676,19 +3216,19 @@ GlobalFindAtomW( #define GlobalFindAtom GlobalFindAtomA #endif // !UNICODE -DWORD -APIENTRY +UINT +WINAPI GlobalGetAtomNameA( ATOM nAtom, LPSTR lpBuffer, - DWORD nSize + int nSize ); -DWORD -APIENTRY +UINT +WINAPI GlobalGetAtomNameW( ATOM nAtom, LPWSTR lpBuffer, - DWORD nSize + int nSize ); #ifdef UNICODE #define GlobalGetAtomName GlobalGetAtomNameW @@ -2697,14 +3237,14 @@ GlobalGetAtomNameW( #endif // !UNICODE ATOM -APIENTRY +WINAPI AddAtomA( - LPSTR lpString + LPCSTR lpString ); ATOM -APIENTRY +WINAPI AddAtomW( - LPWSTR lpString + LPCWSTR lpString ); #ifdef UNICODE #define AddAtom AddAtomW @@ -2713,14 +3253,14 @@ AddAtomW( #endif // !UNICODE ATOM -APIENTRY +WINAPI FindAtomA( - LPSTR lpString + LPCSTR lpString ); ATOM -APIENTRY +WINAPI FindAtomW( - LPWSTR lpString + LPCWSTR lpString ); #ifdef UNICODE #define FindAtom FindAtomW @@ -2728,19 +3268,19 @@ FindAtomW( #define FindAtom FindAtomA #endif // !UNICODE -DWORD -APIENTRY +UINT +WINAPI GetAtomNameA( ATOM nAtom, LPSTR lpBuffer, - DWORD nSize + int nSize ); -DWORD -APIENTRY +UINT +WINAPI GetAtomNameW( ATOM nAtom, LPWSTR lpBuffer, - DWORD nSize + int nSize ); #ifdef UNICODE #define GetAtomName GetAtomNameW @@ -2748,18 +3288,18 @@ GetAtomNameW( #define GetAtomName GetAtomNameA #endif // !UNICODE -DWORD -APIENTRY +UINT +WINAPI GetProfileIntA( - LPSTR lpAppName, - LPSTR lpKeyName, + LPCSTR lpAppName, + LPCSTR lpKeyName, DWORD nDefault ); -DWORD -APIENTRY +UINT +WINAPI GetProfileIntW( - LPWSTR lpAppName, - LPWSTR lpKeyName, + LPCWSTR lpAppName, + LPCWSTR lpKeyName, DWORD nDefault ); #ifdef UNICODE @@ -2769,20 +3309,20 @@ GetProfileIntW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetProfileStringA( - LPSTR lpAppName, - LPSTR lpKeyName, - LPSTR lpDefault, + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpDefault, LPSTR lpReturnedString, DWORD nSize ); DWORD -APIENTRY +WINAPI GetProfileStringW( - LPWSTR lpAppName, - LPWSTR lpKeyName, - LPWSTR lpDefault, + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpDefault, LPWSTR lpReturnedString, DWORD nSize ); @@ -2793,18 +3333,18 @@ GetProfileStringW( #endif // !UNICODE BOOL -APIENTRY +WINAPI WriteProfileStringA( - LPSTR lpAppName, - LPSTR lpKeyName, - LPSTR lpString + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpString ); BOOL -APIENTRY +WINAPI WriteProfileStringW( - LPWSTR lpAppName, - LPWSTR lpKeyName, - LPWSTR lpString + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpString ); #ifdef UNICODE #define WriteProfileString WriteProfileStringW @@ -2813,16 +3353,16 @@ WriteProfileStringW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetProfileSectionA( - LPSTR lpAppName, + LPCSTR lpAppName, LPSTR lpReturnedString, DWORD nSize ); DWORD -APIENTRY +WINAPI GetProfileSectionW( - LPWSTR lpAppName, + LPCWSTR lpAppName, LPWSTR lpReturnedString, DWORD nSize ); @@ -2832,17 +3372,17 @@ GetProfileSectionW( #define GetProfileSection GetProfileSectionA #endif // !UNICODE -DWORD -APIENTRY +BOOL +WINAPI WriteProfileSectionA( - LPSTR lpAppName, - LPSTR lpString + LPCSTR lpAppName, + LPCSTR lpString ); -DWORD -APIENTRY +BOOL +WINAPI WriteProfileSectionW( - LPWSTR lpAppName, - LPWSTR lpString + LPCWSTR lpAppName, + LPCWSTR lpString ); #ifdef UNICODE #define WriteProfileSection WriteProfileSectionW @@ -2850,21 +3390,21 @@ WriteProfileSectionW( #define WriteProfileSection WriteProfileSectionA #endif // !UNICODE -DWORD -APIENTRY +UINT +WINAPI GetPrivateProfileIntA( - LPSTR lpAppName, - LPSTR lpKeyName, + LPCSTR lpAppName, + LPCSTR lpKeyName, DWORD nDefault, - LPSTR lpFileName + LPCSTR lpFileName ); -DWORD -APIENTRY +UINT +WINAPI GetPrivateProfileIntW( - LPWSTR lpAppName, - LPWSTR lpKeyName, + LPCWSTR lpAppName, + LPCWSTR lpKeyName, DWORD nDefault, - LPWSTR lpFileName + LPCWSTR lpFileName ); #ifdef UNICODE #define GetPrivateProfileInt GetPrivateProfileIntW @@ -2873,24 +3413,24 @@ GetPrivateProfileIntW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetPrivateProfileStringA( - LPSTR lpAppName, - LPSTR lpKeyName, - LPSTR lpDefault, + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpDefault, LPSTR lpReturnedString, DWORD nSize, - LPSTR lpFileName + LPCSTR lpFileName ); DWORD -APIENTRY +WINAPI GetPrivateProfileStringW( - LPWSTR lpAppName, - LPWSTR lpKeyName, - LPWSTR lpDefault, + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpDefault, LPWSTR lpReturnedString, DWORD nSize, - LPWSTR lpFileName + LPCWSTR lpFileName ); #ifdef UNICODE #define GetPrivateProfileString GetPrivateProfileStringW @@ -2899,20 +3439,20 @@ GetPrivateProfileStringW( #endif // !UNICODE BOOL -APIENTRY +WINAPI WritePrivateProfileStringA( - LPSTR lpAppName, - LPSTR lpKeyName, - LPSTR lpString, - LPSTR lpFileName + LPCSTR lpAppName, + LPCSTR lpKeyName, + LPCSTR lpString, + LPCSTR lpFileName ); BOOL -APIENTRY +WINAPI WritePrivateProfileStringW( - LPWSTR lpAppName, - LPWSTR lpKeyName, - LPWSTR lpString, - LPWSTR lpFileName + LPCWSTR lpAppName, + LPCWSTR lpKeyName, + LPCWSTR lpString, + LPCWSTR lpFileName ); #ifdef UNICODE #define WritePrivateProfileString WritePrivateProfileStringW @@ -2921,20 +3461,20 @@ WritePrivateProfileStringW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetPrivateProfileSectionA( - LPSTR lpAppName, + LPCSTR lpAppName, LPSTR lpReturnedString, DWORD nSize, - LPSTR lpFileName + LPCSTR lpFileName ); DWORD -APIENTRY +WINAPI GetPrivateProfileSectionW( - LPWSTR lpAppName, + LPCWSTR lpAppName, LPWSTR lpReturnedString, DWORD nSize, - LPWSTR lpFileName + LPCWSTR lpFileName ); #ifdef UNICODE #define GetPrivateProfileSection GetPrivateProfileSectionW @@ -2942,19 +3482,19 @@ GetPrivateProfileSectionW( #define GetPrivateProfileSection GetPrivateProfileSectionA #endif // !UNICODE -DWORD -APIENTRY +BOOL +WINAPI WritePrivateProfileSectionA( - LPSTR lpAppName, - LPSTR lpString, - LPSTR lpFileName + LPCSTR lpAppName, + LPCSTR lpString, + LPCSTR lpFileName ); -DWORD -APIENTRY +BOOL +WINAPI WritePrivateProfileSectionW( - LPWSTR lpAppName, - LPWSTR lpString, - LPWSTR lpFileName + LPCWSTR lpAppName, + LPCWSTR lpString, + LPCWSTR lpFileName ); #ifdef UNICODE #define WritePrivateProfileSection WritePrivateProfileSectionW @@ -2962,13 +3502,13 @@ WritePrivateProfileSectionW( #define WritePrivateProfileSection WritePrivateProfileSectionA #endif // !UNICODE -DWORD -APIENTRY +UINT +WINAPI GetDriveTypeA( LPSTR lpRootPathName ); -DWORD -APIENTRY +UINT +WINAPI GetDriveTypeW( LPWSTR lpRootPathName ); @@ -2978,17 +3518,17 @@ GetDriveTypeW( #define GetDriveType GetDriveTypeA #endif // !UNICODE -DWORD -APIENTRY +UINT +WINAPI GetSystemDirectoryA( LPSTR lpBuffer, - DWORD nSize + UINT uSize ); -DWORD -APIENTRY +UINT +WINAPI GetSystemDirectoryW( LPWSTR lpBuffer, - DWORD nSize + UINT uSize ); #ifdef UNICODE #define GetSystemDirectory GetSystemDirectoryW @@ -2997,13 +3537,13 @@ GetSystemDirectoryW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetTempPathA( DWORD nBufferLength, LPSTR lpBuffer ); DWORD -APIENTRY +WINAPI GetTempPathW( DWORD nBufferLength, LPWSTR lpBuffer @@ -3014,20 +3554,20 @@ GetTempPathW( #define GetTempPath GetTempPathA #endif // !UNICODE -WORD -APIENTRY +UINT +WINAPI GetTempFileNameA( - LPSTR lpPathName, - LPSTR lpPrefixString, - WORD wUnique, + LPCSTR lpPathName, + LPCSTR lpPrefixString, + UINT uUnique, LPSTR lpTempFileName ); -WORD -APIENTRY +UINT +WINAPI GetTempFileNameW( - LPWSTR lpPathName, - LPWSTR lpPrefixString, - WORD wUnique, + LPCWSTR lpPathName, + LPCWSTR lpPrefixString, + UINT uUnique, LPWSTR lpTempFileName ); #ifdef UNICODE @@ -3036,17 +3576,17 @@ GetTempFileNameW( #define GetTempFileName GetTempFileNameA #endif // !UNICODE -DWORD -APIENTRY +UINT +WINAPI GetWindowsDirectoryA( LPSTR lpBuffer, - DWORD nSize + UINT uSize ); -DWORD -APIENTRY +UINT +WINAPI GetWindowsDirectoryW( LPWSTR lpBuffer, - DWORD nSize + UINT uSize ); #ifdef UNICODE #define GetWindowsDirectory GetWindowsDirectoryW @@ -3055,12 +3595,12 @@ GetWindowsDirectoryW( #endif // !UNICODE BOOL -APIENTRY +WINAPI SetCurrentDirectoryA( LPSTR lpPathName ); BOOL -APIENTRY +WINAPI SetCurrentDirectoryW( LPWSTR lpPathName ); @@ -3071,13 +3611,13 @@ SetCurrentDirectoryW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetCurrentDirectoryA( DWORD nBufferLength, LPSTR lpBuffer ); DWORD -APIENTRY +WINAPI GetCurrentDirectoryW( DWORD nBufferLength, LPWSTR lpBuffer @@ -3089,7 +3629,7 @@ GetCurrentDirectoryW( #endif // !UNICODE BOOL -APIENTRY +WINAPI GetDiskFreeSpaceA( LPSTR lpRootPathName, LPDWORD lpSectorsPerCluster, @@ -3098,7 +3638,7 @@ GetDiskFreeSpaceA( LPDWORD lpTotalNumberOfClusters ); BOOL -APIENTRY +WINAPI GetDiskFreeSpaceW( LPWSTR lpRootPathName, LPDWORD lpSectorsPerCluster, @@ -3113,13 +3653,13 @@ GetDiskFreeSpaceW( #endif // !UNICODE BOOL -APIENTRY +WINAPI CreateDirectoryA( LPSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes ); BOOL -APIENTRY +WINAPI CreateDirectoryW( LPWSTR lpPathName, LPSECURITY_ATTRIBUTES lpSecurityAttributes @@ -3131,12 +3671,12 @@ CreateDirectoryW( #endif // !UNICODE BOOL -APIENTRY +WINAPI RemoveDirectoryA( LPSTR lpPathName ); BOOL -APIENTRY +WINAPI RemoveDirectoryW( LPWSTR lpPathName ); @@ -3147,17 +3687,17 @@ RemoveDirectoryW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetFullPathNameA( - LPSTR lpFileName, + LPCSTR lpFileName, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart ); DWORD -APIENTRY +WINAPI GetFullPathNameW( - LPWSTR lpFileName, + LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart @@ -3172,9 +3712,9 @@ GetFullPathNameW( HANDLE -APIENTRY +WINAPI CreateFileA( - LPSTR lpFileName, + LPCSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, @@ -3183,9 +3723,9 @@ CreateFileA( HANDLE hTemplateFile ); HANDLE -APIENTRY +WINAPI CreateFileW( - LPWSTR lpFileName, + LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, @@ -3200,13 +3740,13 @@ CreateFileW( #endif // !UNICODE BOOL -APIENTRY +WINAPI SetFileAttributesA( LPSTR lpFileName, DWORD dwFileAttributes ); BOOL -APIENTRY +WINAPI SetFileAttributesW( LPWSTR lpFileName, DWORD dwFileAttributes @@ -3218,12 +3758,12 @@ SetFileAttributesW( #endif // !UNICODE DWORD -APIENTRY +WINAPI GetFileAttributesA( LPSTR lpFileName ); DWORD -APIENTRY +WINAPI GetFileAttributesW( LPWSTR lpFileName ); @@ -3234,12 +3774,12 @@ GetFileAttributesW( #endif // !UNICODE BOOL -APIENTRY +WINAPI DeleteFileA( LPSTR lpFileName ); BOOL -APIENTRY +WINAPI DeleteFileW( LPWSTR lpFileName ); @@ -3250,13 +3790,13 @@ DeleteFileW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI FindFirstFileA( LPSTR lpFileName, LPWIN32_FIND_DATAA lpFindFileData ); HANDLE -APIENTRY +WINAPI FindFirstFileW( LPWSTR lpFileName, LPWIN32_FIND_DATAW lpFindFileData @@ -3268,13 +3808,13 @@ FindFirstFileW( #endif // !UNICODE BOOL -APIENTRY +WINAPI FindNextFileA( HANDLE hFindFile, LPWIN32_FIND_DATAA lpFindFileData ); BOOL -APIENTRY +WINAPI FindNextFileW( HANDLE hFindFile, LPWIN32_FIND_DATAW lpFindFileData @@ -3286,21 +3826,21 @@ FindNextFileW( #endif // !UNICODE DWORD -APIENTRY +WINAPI SearchPathA( - LPSTR lpPath, - LPSTR lpFileName, - LPSTR lpExtension, + LPCSTR lpPath, + LPCSTR lpFileName, + LPCSTR lpExtension, DWORD nBufferLength, LPSTR lpBuffer, LPSTR *lpFilePart ); DWORD -APIENTRY +WINAPI SearchPathW( - LPWSTR lpPath, - LPWSTR lpFileName, - LPWSTR lpExtension, + LPCWSTR lpPath, + LPCWSTR lpFileName, + LPCWSTR lpExtension, DWORD nBufferLength, LPWSTR lpBuffer, LPWSTR *lpFilePart @@ -3312,14 +3852,14 @@ SearchPathW( #endif // !UNICODE BOOL -APIENTRY +WINAPI CopyFileA( LPSTR lpExistingFileName, LPSTR lpNewFileName, BOOL bFailIfExists ); BOOL -APIENTRY +WINAPI CopyFileW( LPWSTR lpExistingFileName, LPWSTR lpNewFileName, @@ -3332,13 +3872,13 @@ CopyFileW( #endif // !UNICODE BOOL -APIENTRY +WINAPI MoveFileA( LPSTR lpExistingFileName, LPSTR lpNewFileName ); BOOL -APIENTRY +WINAPI MoveFileW( LPWSTR lpExistingFileName, LPWSTR lpNewFileName @@ -3350,7 +3890,7 @@ MoveFileW( #endif // !UNICODE HANDLE -APIENTRY +WINAPI CreateNamedPipeA( LPSTR lpName, DWORD dwOpenMode, @@ -3362,7 +3902,7 @@ CreateNamedPipeA( LPSECURITY_ATTRIBUTES lpSecurityAttributes ); HANDLE -APIENTRY +WINAPI CreateNamedPipeW( LPWSTR lpName, DWORD dwOpenMode, @@ -3380,7 +3920,7 @@ CreateNamedPipeW( #endif // !UNICODE BOOL -APIENTRY +WINAPI GetNamedPipeHandleStateA( HANDLE hNamedPipe, LPDWORD lpState, @@ -3391,7 +3931,7 @@ GetNamedPipeHandleStateA( DWORD nMaxUserNameSize ); BOOL -APIENTRY +WINAPI GetNamedPipeHandleStateW( HANDLE hNamedPipe, LPDWORD lpState, @@ -3408,7 +3948,7 @@ GetNamedPipeHandleStateW( #endif // !UNICODE BOOL -APIENTRY +WINAPI CallNamedPipeA( LPSTR lpNamedPipeName, LPVOID lpInBuffer, @@ -3419,7 +3959,7 @@ CallNamedPipeA( DWORD nTimeOut ); BOOL -APIENTRY +WINAPI CallNamedPipeW( LPWSTR lpNamedPipeName, LPVOID lpInBuffer, @@ -3436,13 +3976,13 @@ CallNamedPipeW( #endif // !UNICODE BOOL -APIENTRY +WINAPI WaitNamedPipeA( LPSTR lpNamedPipeName, DWORD nTimeOut ); BOOL -APIENTRY +WINAPI WaitNamedPipeW( LPWSTR lpNamedPipeName, DWORD nTimeOut @@ -3454,7 +3994,7 @@ WaitNamedPipeW( #endif // !UNICODE BOOL -APIENTRY +WINAPI GetVolumeInformationA( LPSTR lpRootPathName, LPSTR lpVolumeNameBuffer, @@ -3466,7 +4006,7 @@ GetVolumeInformationA( DWORD nFileSystemNameSize ); BOOL -APIENTRY +WINAPI GetVolumeInformationW( LPWSTR lpRootPathName, LPWSTR lpVolumeNameBuffer, @@ -3484,44 +4024,20 @@ GetVolumeInformationW( #endif // !UNICODE // -// Private MVDM apis -// - -VOID -APIENTRY -VDMOperationStarted( - IN BOOL IsWowCaller - ); - -BOOL -APIENTRY -GetNextVDMCommand( - PVDMINFO pVDMInfo - ); - -VOID -APIENTRY -ExitVDM( - IN BOOL IsWowCaller, - IN ULONG iWowTask - ); -// // Event logging APIs // + BOOL -APIENTRY +WINAPI ClearEventLogA ( - IN HANDLE hEventLog, - IN LPSTR lpBackupFileName + HANDLE hEventLog, + LPSTR lpBackupFileName ); -// -// Event logging APIs -// BOOL -APIENTRY +WINAPI ClearEventLogW ( - IN HANDLE hEventLog, - IN LPWSTR lpBackupFileName + HANDLE hEventLog, + LPWSTR lpBackupFileName ); #ifdef UNICODE #define ClearEventLog ClearEventLogW @@ -3530,22 +4046,61 @@ ClearEventLogW ( #endif // !UNICODE BOOL -APIENTRY +WINAPI +BackupEventLogA ( + HANDLE hEventLog, + LPSTR lpBackupFileName + ); +BOOL +WINAPI +BackupEventLogW ( + HANDLE hEventLog, + LPWSTR lpBackupFileName + ); +#ifdef UNICODE +#define BackupEventLog BackupEventLogW +#else +#define BackupEventLog BackupEventLogA +#endif // !UNICODE + +BOOL +WINAPI CloseEventLog ( - IN HANDLE hEventLog + HANDLE hEventLog + ); + +BOOL +WINAPI +DeregisterEventSource ( + HANDLE hEventLog + ); + + +BOOL +WINAPI +GetNumberOfEventLogRecords ( + HANDLE hEventLog, + PDWORD NumberOfRecords + ); + +BOOL +WINAPI +GetOldestEventLogRecord ( + HANDLE hEventLog, + PDWORD OldestRecord ); HANDLE -APIENTRY +WINAPI OpenEventLogA ( - IN LPSTR lpUNCServerName, - IN LPSTR lpModuleName + LPSTR lpUNCServerName, + LPSTR lpSourceName ); HANDLE -APIENTRY +WINAPI OpenEventLogW ( - IN LPWSTR lpUNCServerName, - IN LPWSTR lpModuleName + LPWSTR lpUNCServerName, + LPWSTR lpSourceName ); #ifdef UNICODE #define OpenEventLog OpenEventLogW @@ -3553,27 +4108,63 @@ OpenEventLogW ( #define OpenEventLog OpenEventLogA #endif // !UNICODE +HANDLE +WINAPI +RegisterEventSourceA ( + LPSTR lpUNCServerName, + LPSTR lpSourceName + ); +HANDLE +WINAPI +RegisterEventSourceW ( + LPWSTR lpUNCServerName, + LPWSTR lpSourceName + ); +#ifdef UNICODE +#define RegisterEventSource RegisterEventSourceW +#else +#define RegisterEventSource RegisterEventSourceA +#endif // !UNICODE + +HANDLE +WINAPI +OpenBackupEventLogA ( + LPSTR lpUNCServerName, + LPSTR lpFileName + ); +HANDLE +WINAPI +OpenBackupEventLogW ( + LPWSTR lpUNCServerName, + LPWSTR lpFileName + ); +#ifdef UNICODE +#define OpenBackupEventLog OpenBackupEventLogW +#else +#define OpenBackupEventLog OpenBackupEventLogA +#endif // !UNICODE + BOOL -APIENTRY +WINAPI ReadEventLogA ( - IN HANDLE hEventLog, - IN DWORD dwReadFlags, - IN DWORD dwRecordOffset, - OUT LPVOID lpBuffer, - IN DWORD nNumberOfBytesToRead, - OUT DWORD *pnBytesRead, - OUT DWORD *pnMinNumberOfBytesNeeded + HANDLE hEventLog, + DWORD dwReadFlags, + DWORD dwRecordOffset, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + DWORD *pnBytesRead, + DWORD *pnMinNumberOfBytesNeeded ); BOOL -APIENTRY +WINAPI ReadEventLogW ( - IN HANDLE hEventLog, - IN DWORD dwReadFlags, - IN DWORD dwRecordOffset, - OUT LPVOID lpBuffer, - IN DWORD nNumberOfBytesToRead, - OUT DWORD *pnBytesRead, - OUT DWORD *pnMinNumberOfBytesNeeded + HANDLE hEventLog, + DWORD dwReadFlags, + DWORD dwRecordOffset, + LPVOID lpBuffer, + DWORD nNumberOfBytesToRead, + DWORD *pnBytesRead, + DWORD *pnMinNumberOfBytesNeeded ); #ifdef UNICODE #define ReadEventLog ReadEventLogW @@ -3582,35 +4173,1113 @@ ReadEventLogW ( #endif // !UNICODE BOOL -APIENTRY -WriteEventLogEntryA ( - IN HANDLE hEventLog, - IN WORD wType, - IN DWORD dwEventID, - IN PSID lpUserSid OPTIONAL, - IN WORD wNumStrings, - IN DWORD dwDataSize, - IN LPSTR *lpStrings OPTIONAL, - IN LPVOID lpRawData OPTIONAL - ); -BOOL -APIENTRY -WriteEventLogEntryW ( - IN HANDLE hEventLog, - IN WORD wType, - IN DWORD dwEventID, - IN PSID lpUserSid OPTIONAL, - IN WORD wNumStrings, - IN DWORD dwDataSize, - IN LPWSTR *lpStrings OPTIONAL, - IN LPVOID lpRawData OPTIONAL +WINAPI +ReportEventA ( + HANDLE hEventLog, + WORD wType, + WORD wCategory, + DWORD dwEventID, + PSID lpUserSid, + WORD wNumStrings, + DWORD dwDataSize, + LPSTR *lpStrings, + LPVOID lpRawData + ); +BOOL +WINAPI +ReportEventW ( + HANDLE hEventLog, + WORD wType, + WORD wCategory, + DWORD dwEventID, + PSID lpUserSid, + WORD wNumStrings, + DWORD dwDataSize, + LPWSTR *lpStrings, + LPVOID lpRawData ); #ifdef UNICODE -#define WriteEventLogEntry WriteEventLogEntryW +#define ReportEvent ReportEventW #else -#define WriteEventLogEntry WriteEventLogEntryA +#define ReportEvent ReportEventA #endif // !UNICODE + +// // +// Security APIs +// + + +BOOL +WINAPI +DuplicateToken( + HANDLE ExistingTokenHandle, + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel, + PHANDLE DuplicateTokenHandle + ); + +BOOL +WINAPI +GetKernelObjectSecurity ( + HANDLE Handle, + SECURITY_INFORMATION RequestedInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD nLength, + LPDWORD lpnLengthNeeded + ); + +BOOL +WINAPI +ImpersonateNamedPipeClient( + HANDLE hNamedPipe + ); + +BOOL +WINAPI +ImpersonateSelf( + SECURITY_IMPERSONATION_LEVEL ImpersonationLevel + ); + + +BOOL +WINAPI +RevertToSelf ( + VOID + ); + + +BOOL +WINAPI +AccessCheck ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + HANDLE ClientToken, + DWORD DesiredAccess, + PGENERIC_MAPPING GenericMapping, + PPRIVILEGE_SET PrivilegeSet, + LPDWORD PrivilegeSetLength, + LPDWORD GrantedAccess, + LPBOOL AccessStatus + ); + + +BOOL +WINAPI +OpenProcessToken ( + HANDLE ProcessHandle, + DWORD DesiredAccess, + PHANDLE TokenHandle + ); + + +BOOL +WINAPI +OpenThreadToken ( + HANDLE ThreadHandle, + DWORD DesiredAccess, + BOOL OpenAsSelf, + PHANDLE TokenHandle + ); + + +BOOL +WINAPI +GetTokenInformation ( + HANDLE TokenHandle, + TOKEN_INFORMATION_CLASS TokenInformationClass, + LPVOID TokenInformation, + DWORD TokenInformationLength, + PDWORD ReturnLength + ); + + +BOOL +WINAPI +SetTokenInformation ( + HANDLE TokenHandle, + TOKEN_INFORMATION_CLASS TokenInformationClass, + LPVOID TokenInformation, + DWORD TokenInformationLength + ); + + +BOOL +WINAPI +AdjustTokenPrivileges ( + HANDLE TokenHandle, + BOOL DisableAllPrivileges, + PTOKEN_PRIVILEGES NewState, + DWORD BufferLength, + PTOKEN_PRIVILEGES PreviousState, + PDWORD ReturnLength + ); + + +BOOL +WINAPI +AdjustTokenGroups ( + HANDLE TokenHandle, + BOOL ResetToDefault, + PTOKEN_GROUPS NewState, + DWORD BufferLength, + PTOKEN_GROUPS PreviousState, + PDWORD ReturnLength + ); + + +BOOL +WINAPI +PrivilegeCheck ( + HANDLE ClientToken, + PPRIVILEGE_SET RequiredPrivileges, + LPBOOL pfResult + ); + + +BOOL +WINAPI +AccessCheckAndAuditAlarmA ( + LPSTR SubsystemName, + LPVOID HandleId, + LPSTR ObjectTypeName, + LPSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + DWORD DesiredAccess, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPBOOL AccessStatus, + LPBOOL pfGenerateOnClose + ); +BOOL +WINAPI +AccessCheckAndAuditAlarmW ( + LPWSTR SubsystemName, + LPVOID HandleId, + LPWSTR ObjectTypeName, + LPWSTR ObjectName, + PSECURITY_DESCRIPTOR SecurityDescriptor, + DWORD DesiredAccess, + PGENERIC_MAPPING GenericMapping, + BOOL ObjectCreation, + LPDWORD GrantedAccess, + LPBOOL AccessStatus, + LPBOOL pfGenerateOnClose + ); +#ifdef UNICODE +#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmW +#else +#define AccessCheckAndAuditAlarm AccessCheckAndAuditAlarmA +#endif // !UNICODE + + +BOOL +WINAPI +ObjectOpenAuditAlarmA ( + LPSTR SubsystemName, + LPVOID HandleId, + LPSTR ObjectTypeName, + LPSTR ObjectName, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + HANDLE ClientToken, + DWORD DesiredAccess, + DWORD GrantedAccess, + PPRIVILEGE_SET Privileges, + BOOL ObjectCreation, + BOOL AccessGranted, + LPBOOL GenerateOnClose + ); +BOOL +WINAPI +ObjectOpenAuditAlarmW ( + LPWSTR SubsystemName, + LPVOID HandleId, + LPWSTR ObjectTypeName, + LPWSTR ObjectName, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + HANDLE ClientToken, + DWORD DesiredAccess, + DWORD GrantedAccess, + PPRIVILEGE_SET Privileges, + BOOL ObjectCreation, + BOOL AccessGranted, + LPBOOL GenerateOnClose + ); +#ifdef UNICODE +#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmW +#else +#define ObjectOpenAuditAlarm ObjectOpenAuditAlarmA +#endif // !UNICODE + + +BOOL +WINAPI +ObjectPrivilegeAuditAlarmA ( + LPSTR SubsystemName, + LPVOID HandleId, + HANDLE ClientToken, + DWORD DesiredAccess, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); +BOOL +WINAPI +ObjectPrivilegeAuditAlarmW ( + LPWSTR SubsystemName, + LPVOID HandleId, + HANDLE ClientToken, + DWORD DesiredAccess, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); +#ifdef UNICODE +#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmW +#else +#define ObjectPrivilegeAuditAlarm ObjectPrivilegeAuditAlarmA +#endif // !UNICODE + + +BOOL +WINAPI +ObjectCloseAuditAlarmA ( + LPSTR SubsystemName, + LPVOID HandleId, + BOOL GenerateOnClose + ); +BOOL +WINAPI +ObjectCloseAuditAlarmW ( + LPWSTR SubsystemName, + LPVOID HandleId, + BOOL GenerateOnClose + ); +#ifdef UNICODE +#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmW +#else +#define ObjectCloseAuditAlarm ObjectCloseAuditAlarmA +#endif // !UNICODE + + +BOOL +WINAPI +PrivilegedServiceAuditAlarmA ( + LPSTR SubsystemName, + LPSTR ServiceName, + HANDLE ClientToken, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); +BOOL +WINAPI +PrivilegedServiceAuditAlarmW ( + LPWSTR SubsystemName, + LPWSTR ServiceName, + HANDLE ClientToken, + PPRIVILEGE_SET Privileges, + BOOL AccessGranted + ); +#ifdef UNICODE +#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmW +#else +#define PrivilegedServiceAuditAlarm PrivilegedServiceAuditAlarmA +#endif // !UNICODE + + +BOOL +WINAPI +IsValidSid ( + PSID pSid + ); + + +BOOL +WINAPI +EqualSid ( + PSID pSid1, + PSID pSid2 + ); + + +BOOL +WINAPI +EqualPrefixSid ( + PSID pSid1, + PSID pSid2 + ); + + +DWORD +WINAPI +GetSidLengthRequired ( + UCHAR nSubAuthorityCount + ); + + +BOOL +WINAPI +AllocateAndInitializeSid ( + PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, + BYTE nSubAuthorityCount, + DWORD nSubAuthority0, + DWORD nSubAuthority1, + DWORD nSubAuthority2, + DWORD nSubAuthority3, + DWORD nSubAuthority4, + DWORD nSubAuthority5, + DWORD nSubAuthority6, + DWORD nSubAuthority7, + PSID *pSid + ); + +PVOID +WINAPI +FreeSid( + PSID pSid + ); + +BOOL +WINAPI +InitializeSid ( + PSID Sid, + PSID_IDENTIFIER_AUTHORITY pIdentifierAuthority, + BYTE nSubAuthorityCount + ); + + +PSID_IDENTIFIER_AUTHORITY +WINAPI +GetSidIdentifierAuthority ( + PSID pSid + ); + + +PDWORD +WINAPI +GetSidSubAuthority ( + PSID pSid, + DWORD nSubAuthority + ); + + +PUCHAR +WINAPI +GetSidSubAuthorityCount ( + PSID pSid + ); + + +DWORD +WINAPI +GetLengthSid ( + PSID pSid + ); + + +BOOL +WINAPI +CopySid ( + DWORD nDestinationSidLength, + PSID pDestinationSid, + PSID pSourceSid + ); + + +BOOL +WINAPI +AreAllAccessesGranted ( + DWORD GrantedAccess, + DWORD DesiredAccess + ); + + +BOOL +WINAPI +AreAnyAccessesGranted ( + DWORD GrantedAccess, + DWORD DesiredAccess + ); + + +VOID +WINAPI +MapGenericMask ( + PDWORD AccessMask, + PGENERIC_MAPPING GenericMapping + ); + + +BOOL +WINAPI +IsValidAcl ( + PACL pAcl + ); + + +BOOL +WINAPI +InitializeAcl ( + PACL pAcl, + DWORD nAclLength, + DWORD dwAclRevision + ); + + +BOOL +WINAPI +GetAclInformation ( + PACL pAcl, + LPVOID pAclInformation, + DWORD nAclInformationLength, + ACL_INFORMATION_CLASS dwAclInformationClass + ); + + +BOOL +WINAPI +SetAclInformation ( + PACL pAcl, + LPVOID pAclInformation, + DWORD nAclInformationLength, + ACL_INFORMATION_CLASS dwAclInformationClass + ); + + +BOOL +WINAPI +AddAce ( + PACL pAcl, + DWORD dwAceRevision, + DWORD dwStartingAceIndex, + LPVOID pAceList, + DWORD nAceListLength + ); + + +BOOL +WINAPI +DeleteAce ( + PACL pAcl, + DWORD dwAceIndex + ); + + +BOOL +WINAPI +GetAce ( + PACL pAcl, + DWORD dwAceIndex, + LPVOID *pAce + ); + + +BOOL +WINAPI +AddAccessAllowedAce ( + PACL pAcl, + DWORD dwAceRevision, + DWORD AccessMask, + PSID pSid + ); + + +BOOL +WINAPI +AddAccessDeniedAce ( + PACL pAcl, + DWORD dwAceRevision, + DWORD AccessMask, + PSID pSid + ); + + +BOOL +WINAPI +AddAuditAccessAce( + PACL pAcl, + DWORD dwAceRevision, + DWORD dwAccessMask, + PSID pSid, + BOOL bAuditSuccess, + BOOL bAuditFailure + ); + + +BOOL +WINAPI +FindFirstFreeAce ( + PACL pAcl, + LPVOID *pAce + ); + + +BOOL +WINAPI +InitializeSecurityDescriptor ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD dwRevision + ); + + +BOOL +WINAPI +IsValidSecurityDescriptor ( + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); + + +DWORD +WINAPI +GetSecurityDescriptorLength ( + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); + + +BOOL +WINAPI +GetSecurityDescriptorControl ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSECURITY_DESCRIPTOR_CONTROL pControl, + LPDWORD lpdwRevision + ); + + +BOOL +WINAPI +SetSecurityDescriptorDacl ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + BOOL bDaclPresent, + PACL pDacl, + BOOL bDaclDefaulted + ); + + +BOOL +WINAPI +GetSecurityDescriptorDacl ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + LPBOOL lpbDaclPresent, + PACL *pDacl, + LPBOOL lpbDaclDefaulted + ); + + +BOOL +WINAPI +SetSecurityDescriptorSacl ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + BOOL bSaclPresent, + PACL pSacl, + BOOL bSaclDefaulted + ); + + +BOOL +WINAPI +GetSecurityDescriptorSacl ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + LPBOOL lpbSaclPresent, + PACL *pSacl, + LPBOOL lpbSaclDefaulted + ); + + +BOOL +WINAPI +SetSecurityDescriptorOwner ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID pOwner, + BOOL bOwnerDefaulted + ); + + +BOOL +WINAPI +GetSecurityDescriptorOwner ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID *pOwner, + LPBOOL lpbOwnerDefaulted + ); + + +BOOL +WINAPI +SetSecurityDescriptorGroup ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID pGroup, + BOOL bGroupDefaulted + ); + + +BOOL +WINAPI +GetSecurityDescriptorGroup ( + PSECURITY_DESCRIPTOR pSecurityDescriptor, + PSID *pGroup, + LPBOOL lpbGroupDefaulted + ); + + +BOOL +WINAPI +CreatePrivateObjectSecurity ( + PSECURITY_DESCRIPTOR ParentDescriptor, + PSECURITY_DESCRIPTOR CreatorDescriptor, + PSECURITY_DESCRIPTOR * NewDescriptor, + BOOL IsDirectoryObject, + HANDLE Token, + PGENERIC_MAPPING GenericMapping + ); + + +BOOL +WINAPI +SetPrivateObjectSecurity ( + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR ModificationDescriptor, + PSECURITY_DESCRIPTOR *ObjectsSecurityDescriptor, + PGENERIC_MAPPING GenericMapping, + HANDLE Token + ); + + +BOOL +WINAPI +GetPrivateObjectSecurity ( + PSECURITY_DESCRIPTOR ObjectDescriptor, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR ResultantDescriptor, + DWORD DescriptorLength, + PDWORD ReturnLength + ); + + +BOOL +WINAPI +DestroyPrivateObjectSecurity ( + PSECURITY_DESCRIPTOR * ObjectDescriptor + ); + + +BOOL +WINAPI +MakeSelfRelativeSD ( + PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, + PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, + LPDWORD lpdwBufferLength + ); + + +BOOL +WINAPI +MakeAbsoluteSD ( + PSECURITY_DESCRIPTOR pSelfRelativeSecurityDescriptor, + PSECURITY_DESCRIPTOR pAbsoluteSecurityDescriptor, + LPDWORD lpdwAbsoluteSecurityDescriptorSize, + PACL pDacl, + LPDWORD lpdwDaclSize, + PACL pSacl, + LPDWORD lpdwSaclSize, + PSID pOwner, + LPDWORD lpdwOwnerSize, + PSID pPrimaryGroup, + LPDWORD lpdwPrimaryGroupSize + ); + + +BOOL +WINAPI +SetFileSecurityA ( + LPSTR lpFileName, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); +BOOL +WINAPI +SetFileSecurityW ( + LPWSTR lpFileName, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor + ); +#ifdef UNICODE +#define SetFileSecurity SetFileSecurityW +#else +#define SetFileSecurity SetFileSecurityA +#endif // !UNICODE + + +BOOL +WINAPI +GetFileSecurityA ( + LPSTR lpFileName, + SECURITY_INFORMATION RequestedInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD nLength, + LPDWORD lpnLengthNeeded + ); +BOOL +WINAPI +GetFileSecurityW ( + LPWSTR lpFileName, + SECURITY_INFORMATION RequestedInformation, + PSECURITY_DESCRIPTOR pSecurityDescriptor, + DWORD nLength, + LPDWORD lpnLengthNeeded + ); +#ifdef UNICODE +#define GetFileSecurity GetFileSecurityW +#else +#define GetFileSecurity GetFileSecurityA +#endif // !UNICODE + + +BOOL +WINAPI +SetKernelObjectSecurity ( + HANDLE Handle, + SECURITY_INFORMATION SecurityInformation, + PSECURITY_DESCRIPTOR SecurityDescriptor + ); + + + +HANDLE +WINAPI +FindFirstChangeNotificationA( + LPSTR lpPathName, + BOOL bWatchSubtree, + DWORD dwNotifyFilter + ); +HANDLE +WINAPI +FindFirstChangeNotificationW( + LPWSTR lpPathName, + BOOL bWatchSubtree, + DWORD dwNotifyFilter + ); +#ifdef UNICODE +#define FindFirstChangeNotification FindFirstChangeNotificationW +#else +#define FindFirstChangeNotification FindFirstChangeNotificationA +#endif // !UNICODE +BOOL +WINAPI +FindNextChangeNotification( + HANDLE hChangeHandle + ); + +BOOL +WINAPI +FindCloseChangeNotification( + HANDLE hChangeHandle + ); + +BOOL +WINAPI +VirtualLock( + LPVOID lpAddress, + DWORD dwSize + ); + +BOOL +WINAPI +VirtualUnlock( + LPVOID lpAddress, + DWORD dwSize + ); + +LPVOID +WINAPI +MapViewOfFileEx( + HANDLE hFileMappingObject, + DWORD dwDesiredAccess, + DWORD dwFileOffsetHigh, + DWORD dwFileOffsetLow, + DWORD dwNumberOfBytesToMap, + LPVOID lpBaseAddress + ); + +BOOL +WINAPI +SetPriorityClass( + HANDLE hProcess, + DWORD dwPriorityClass + ); + +DWORD +WINAPI +GetPriorityClass( + HANDLE hProcess + ); + +BOOL +WINAPI +IsBadReadPtr( + CONST VOID *lp, + UINT ucb + ); + +BOOL +WINAPI +IsBadWritePtr( + LPVOID lp, + UINT ucb + ); + +BOOL +WINAPI +IsBadHugeReadPtr( + CONST VOID *lp, + UINT ucb + ); + +BOOL +WINAPI +IsBadHugeWritePtr( + LPVOID lp, + UINT ucb + ); + +BOOL +WINAPI +IsBadCodePtr( + FARPROC lpfn + ); + +BOOL +WINAPI +IsBadStringPtrA( + LPCSTR lpsz, + UINT ucchMax + ); +BOOL +WINAPI +IsBadStringPtrW( + LPCWSTR lpsz, + UINT ucchMax + ); +#ifdef UNICODE +#define IsBadStringPtr IsBadStringPtrW +#else +#define IsBadStringPtr IsBadStringPtrA +#endif // !UNICODE + +BOOL +WINAPI +LookupAccountSidA( + LPSTR lpSystemName, + PSID Sid, + LPSTR Name, + LPDWORD cbName, + LPSTR ReferencedDomainName, + LPDWORD cbReferencedDomainName, + PSID_NAME_USE peUse + ); +BOOL +WINAPI +LookupAccountSidW( + LPWSTR lpSystemName, + PSID Sid, + LPWSTR Name, + LPDWORD cbName, + LPWSTR ReferencedDomainName, + LPDWORD cbReferencedDomainName, + PSID_NAME_USE peUse + ); +#ifdef UNICODE +#define LookupAccountSid LookupAccountSidW +#else +#define LookupAccountSid LookupAccountSidA +#endif // !UNICODE + +BOOL +WINAPI +LookupAccountNameA( + LPSTR lpSystemName, + LPSTR lpAccountName, + PSID Sid, + LPDWORD cbSid, + LPSTR ReferencedDomainName, + LPDWORD cbReferencedDomainName, + PSID_NAME_USE peUse + ); +BOOL +WINAPI +LookupAccountNameW( + LPWSTR lpSystemName, + LPWSTR lpAccountName, + PSID Sid, + LPDWORD cbSid, + LPWSTR ReferencedDomainName, + LPDWORD cbReferencedDomainName, + PSID_NAME_USE peUse + ); +#ifdef UNICODE +#define LookupAccountName LookupAccountNameW +#else +#define LookupAccountName LookupAccountNameA +#endif // !UNICODE + +BOOL +WINAPI +LookupPrivilegeValueA( + LPSTR lpSystemName, + LPSTR lpName, + PLUID lpLuid + ); +BOOL +WINAPI +LookupPrivilegeValueW( + LPWSTR lpSystemName, + LPWSTR lpName, + PLUID lpLuid + ); +#ifdef UNICODE +#define LookupPrivilegeValue LookupPrivilegeValueW +#else +#define LookupPrivilegeValue LookupPrivilegeValueA +#endif // !UNICODE + +BOOL +WINAPI +LookupPrivilegeNameA( + LPSTR lpSystemName, + PLUID lpLuid, + LPSTR lpName, + LPDWORD cbName + ); +BOOL +WINAPI +LookupPrivilegeNameW( + LPWSTR lpSystemName, + PLUID lpLuid, + LPWSTR lpName, + LPDWORD cbName + ); +#ifdef UNICODE +#define LookupPrivilegeName LookupPrivilegeNameW +#else +#define LookupPrivilegeName LookupPrivilegeNameA +#endif // !UNICODE + +BOOL +WINAPI +LookupPrivilegeDisplayNameA( + LPSTR lpSystemName, + LPSTR lpName, + LPSTR lpDisplayName, + LPDWORD cbDisplayName, + LPDWORD lpLanguageId + ); +BOOL +WINAPI +LookupPrivilegeDisplayNameW( + LPWSTR lpSystemName, + LPWSTR lpName, + LPWSTR lpDisplayName, + LPDWORD cbDisplayName, + LPDWORD lpLanguageId + ); +#ifdef UNICODE +#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameW +#else +#define LookupPrivilegeDisplayName LookupPrivilegeDisplayNameA +#endif // !UNICODE + +BOOL +WINAPI +AllocateLocallyUniqueId( + PLUID Luid + ); + +BOOL +WINAPI +BuildCommDCBA( + LPSTR lpDef, + LPDCB lpDCB + ); +BOOL +WINAPI +BuildCommDCBW( + LPWSTR lpDef, + LPDCB lpDCB + ); +#ifdef UNICODE +#define BuildCommDCB BuildCommDCBW +#else +#define BuildCommDCB BuildCommDCBA +#endif // !UNICODE + +#define MAX_COMPUTERNAME_LENGTH 80 + +BOOL +WINAPI +GetComputerNameA ( + LPSTR lpBuffer, + LPDWORD nSize + ); +BOOL +WINAPI +GetComputerNameW ( + LPWSTR lpBuffer, + LPDWORD nSize + ); +#ifdef UNICODE +#define GetComputerName GetComputerNameW +#else +#define GetComputerName GetComputerNameA +#endif // !UNICODE + +BOOL +WINAPI +SetComputerNameA ( + LPSTR lpComputerName + ); +BOOL +WINAPI +SetComputerNameW ( + LPWSTR lpComputerName + ); +#ifdef UNICODE +#define SetComputerName SetComputerNameW +#else +#define SetComputerName SetComputerNameA +#endif // !UNICODE + +BOOL +WINAPI +GetUserNameA ( + LPSTR lpBuffer, + LPDWORD nSize + ); +BOOL +WINAPI +GetUserNameW ( + LPWSTR lpBuffer, + LPDWORD nSize + ); +#ifdef UNICODE +#define GetUserName GetUserNameW +#else +#define GetUserName GetUserNameA +#endif // !UNICODE + +// +// Performance counter API's +// + +BOOL +WINAPI +QueryPerformanceCounter( + LARGE_INTEGER *lpPerformanceCount + ); + +BOOL +WINAPI +QueryPerformanceFrequency( + LARGE_INTEGER *lpFrequency + ); + + + // DOS and OS/2 Compatible Error Code definitions returned by the Win32 Base // API functions. //