Changeset 211

Show
Ignore:
Timestamp:
09/10/07 12:54:58 (1 year ago)
Author:
smjg
Message:

cleaned up versioning in winbase.d

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/win32/winbase.d

    r210 r211  
    5757private import win32.basetyps, win32.w32api, win32.winnt; 
    5858 
    59 // FIXME: clean up Windows version support 
    6059// FIXME: 
    6160alias void va_list; 
     
    7877    LONG InterlockedExchange(LPLONG, LONG); 
    7978    // PVOID WINAPI InterlockedExchangePointer(PVOID*, PVOID); 
    80     (PVOID)InterlockedExchange((LPLONG)(    (PVOID)InterlockedExchange((LPLONG)(t), (LONG)(v)) 
     79    (PVOID)InterlockedExchange((LPLONG)((PVOID)InterlockedExchange((LPLONG)(t), (LONG)(v)) 
    8180    LONG InterlockedExchangeAdd(LPLONG, LONG); 
    8281 
     
    881880    } 
    882881 
    883     static if (_WIN32_WINNT >= 0x500) { 
    884         enum : DWORD { 
    885             LOGON32_LOGON_NETWORK_CLEARTEXT = 8, 
    886             LOGON32_LOGON_NEW_CREDENTIALS   = 9 
    887         } 
    888     } 
    889  
    890882    // for LogonUser() 
    891883    enum : DWORD { 
     
    910902 
    911903    static if (_WIN32_WINNT >= 0x500) { 
     904        enum : DWORD { 
     905            LOGON32_LOGON_NETWORK_CLEARTEXT = 8, 
     906            LOGON32_LOGON_NEW_CREDENTIALS   = 9 
     907        } 
     908 
    912909        // ReplaceFile() 
    913910        const DWORD 
     
    941938            QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE             = 0x08, 
    942939            QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS             = 0x10; 
     940 
     941        enum { 
     942            LOGON_WITH_PROFILE        = 1, 
     943            LOGON_NETCREDENTIALS_ONLY 
     944        } 
    943945    } 
    944946} 
     
    16021604} // (_WIN32_WINNT >= 0x0501) 
    16031605 
    1604 static if ((_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0410)) { 
     1606static if (WINVER >= 0x410) { 
     1607    /*  apparently used only by SetThreadExecutionState (Win2000+) 
     1608     *  and DDK functions (version compatibility not established) 
     1609     */ 
    16051610    alias DWORD EXECUTION_STATE; 
    16061611} 
     
    19051910    int lstrcmpA(LPCSTR, LPCSTR); 
    19061911    int lstrcmpiA(LPCSTR, LPCSTR); 
    1907     int lstrcmpiW( LPCWSTR, LPCWSTR); 
     1912    int lstrcmpiW(LPCWSTR, LPCWSTR); 
    19081913    int lstrcmpW(LPCWSTR, LPCWSTR); 
    19091914    LPSTR lstrcpyA(LPSTR, LPCSTR); 
     
    19131918    int lstrlenA(LPCSTR); 
    19141919    int lstrlenW(LPCWSTR); 
     1920 
     1921    BOOL MoveFileA(LPCSTR, LPCSTR); 
     1922    BOOL MoveFileW(LPCWSTR, LPCWSTR); 
     1923    int MulDiv(int, int, int); 
     1924    HANDLE OpenEventA(DWORD, BOOL, LPCSTR); 
     1925    HANDLE OpenEventW(DWORD, BOOL, LPCWSTR); 
     1926    deprecated HFILE OpenFile(LPCSTR, LPOFSTRUCT, UINT); 
     1927    HANDLE OpenMutexA(DWORD, BOOL, LPCSTR); 
     1928    HANDLE OpenMutexW(DWORD, BOOL, LPCWSTR); 
     1929    HANDLE OpenProcess(DWORD, BOOL, DWORD); 
     1930    HANDLE OpenSemaphoreA(DWORD, BOOL, LPCSTR); 
     1931    HANDLE OpenSemaphoreW(DWORD, BOOL, LPCWSTR); 
     1932    void OutputDebugStringA(LPCSTR); 
     1933    void OutputDebugStringW(LPCWSTR); 
     1934    BOOL PeekNamedPipe(HANDLE, PVOID, DWORD, PDWORD, PDWORD, PDWORD); 
     1935    BOOL PulseEvent(HANDLE); 
     1936    BOOL PurgeComm(HANDLE, DWORD); 
     1937    BOOL QueryPerformanceCounter(PLARGE_INTEGER); 
     1938    BOOL QueryPerformanceFrequency(PLARGE_INTEGER); 
     1939    DWORD QueueUserAPC(PAPCFUNC, HANDLE, ULONG_PTR); 
     1940    void RaiseException(DWORD, DWORD, DWORD, DWORD*); 
     1941    BOOL ReadFile(HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED); 
     1942    BOOL ReadFileEx(HANDLE, PVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 
     1943    BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, DWORD, PDWORD); 
     1944    BOOL ReleaseMutex(HANDLE); 
     1945    BOOL ReleaseSemaphore(HANDLE, LONG, LPLONG); 
     1946    BOOL RemoveDirectoryA(LPCSTR); 
     1947    BOOL RemoveDirectoryW(LPCWSTR); 
     1948/* In MinGW: 
     1949#ifdef _WIN32_WCE 
     1950extern BOOL ResetEvent(HANDLE); 
     1951#else 
     1952WINBASEAPI BOOL WINAPI ResetEvent(HANDLE); 
     1953#endif 
     1954*/ 
     1955    BOOL ResetEvent(HANDLE); 
     1956    DWORD ResumeThread(HANDLE); 
     1957    DWORD SearchPathA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR*); 
     1958    DWORD SearchPathW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR*); 
     1959    BOOL SetCommBreak(HANDLE); 
     1960    BOOL SetCommConfig(HANDLE, LPCOMMCONFIG, DWORD); 
     1961    BOOL SetCommMask(HANDLE, DWORD); 
     1962    BOOL SetCommState(HANDLE, LPDCB); 
     1963    BOOL SetCommTimeouts(HANDLE, LPCOMMTIMEOUTS); 
     1964    BOOL SetComputerNameA(LPCSTR); 
     1965    BOOL SetComputerNameW(LPCWSTR); 
     1966    BOOL SetCurrentDirectoryA(LPCSTR); 
     1967    BOOL SetCurrentDirectoryW(LPCWSTR); 
     1968    BOOL SetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, DWORD); 
     1969    BOOL SetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, DWORD); 
     1970    BOOL SetEndOfFile(HANDLE); 
     1971    BOOL SetEnvironmentVariableA(LPCSTR, LPCSTR); 
     1972    BOOL SetEnvironmentVariableW(LPCWSTR, LPCWSTR); 
     1973    UINT SetErrorMode(UINT); 
     1974/* In MinGW: 
     1975#ifdef _WIN32_WCE 
     1976extern BOOL SetEvent(HANDLE); 
     1977#else 
     1978WINBASEAPI BOOL WINAPI SetEvent(HANDLE); 
     1979#endif 
     1980*/ 
     1981    BOOL SetEvent(HANDLE); 
     1982    VOID SetFileApisToANSI(); 
     1983    VOID SetFileApisToOEM(); 
     1984    BOOL SetFileAttributesA(LPCSTR, DWORD); 
     1985    BOOL SetFileAttributesW(LPCWSTR, DWORD); 
     1986    DWORD SetFilePointer(HANDLE, LONG, PLONG, DWORD); 
     1987    BOOL SetFileTime(HANDLE, FILETIME*, FILETIME*, FILETIME*); 
     1988    deprecated UINT SetHandleCount(UINT); 
     1989    void SetLastError(DWORD); 
     1990    void SetLastErrorEx(DWORD, DWORD); 
     1991    BOOL SetLocalTime(SYSTEMTIME*); 
     1992    BOOL SetMailslotInfo(HANDLE, DWORD); 
     1993    BOOL SetNamedPipeHandleState(HANDLE, PDWORD, PDWORD, PDWORD); 
     1994    BOOL SetPriorityClass(HANDLE, DWORD); 
     1995    BOOL SetStdHandle(DWORD, HANDLE); 
     1996    BOOL SetSystemTime(SYSTEMTIME*); 
     1997    DWORD SetThreadAffinityMask(HANDLE, DWORD); 
     1998    BOOL SetThreadContext(HANDLE, CONTEXT*); 
     1999    BOOL SetThreadPriority(HANDLE, int); 
     2000    BOOL SetTimeZoneInformation(TIME_ZONE_INFORMATION*); 
     2001    LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER); 
     2002    BOOL SetupComm(HANDLE, DWORD, DWORD); 
     2003    BOOL SetVolumeLabelA(LPCSTR, LPCSTR); 
     2004    BOOL SetVolumeLabelW(LPCWSTR, LPCWSTR); 
     2005 
     2006    DWORD SizeofResource(HINSTANCE, HRSRC); 
     2007    void Sleep(DWORD); 
     2008    DWORD SleepEx(DWORD, BOOL); 
     2009    DWORD SuspendThread(HANDLE); 
     2010    BOOL SystemTimeToFileTime(SYSTEMTIME*, LPFILETIME); 
     2011    BOOL TerminateProcess(HANDLE, UINT); 
     2012    BOOL TerminateThread(HANDLE, DWORD); 
     2013    DWORD TlsAlloc(); 
     2014    BOOL TlsFree(DWORD); 
     2015    PVOID TlsGetValue(DWORD); 
     2016    BOOL TlsSetValue(DWORD, PVOID); 
     2017    BOOL TransactNamedPipe(HANDLE, PVOID, DWORD, PVOID, DWORD, PDWORD, LPOVERLAPPED); 
     2018    BOOL TransmitCommChar(HANDLE, char); 
     2019    LONG UnhandledExceptionFilter(LPEXCEPTION_POINTERS); 
     2020    BOOL UnlockFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 
     2021    BOOL WaitCommEvent(HANDLE, PDWORD, LPOVERLAPPED); 
     2022    BOOL WaitForDebugEvent(LPDEBUG_EVENT, DWORD); 
     2023    DWORD WaitForMultipleObjects(DWORD, HANDLE*, BOOL, DWORD); 
     2024    DWORD WaitForMultipleObjectsEx(DWORD, HANDLE*, BOOL, DWORD, BOOL); 
     2025    DWORD WaitForSingleObject(HANDLE, DWORD); 
     2026    DWORD WaitForSingleObjectEx(HANDLE, DWORD, BOOL); 
     2027    BOOL WaitNamedPipeA(LPCSTR, DWORD); 
     2028    BOOL WaitNamedPipeW(LPCWSTR, DWORD); 
     2029    // undocumented on MSDN 
     2030    BOOL WinLoadTrustProvider(GUID*); 
     2031    BOOL WriteFile(HANDLE, PCVOID, DWORD, PDWORD, LPOVERLAPPED); 
     2032    BOOL WriteFileEx(HANDLE, PCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 
     2033    BOOL WritePrivateProfileSectionA(LPCSTR, LPCSTR, LPCSTR); 
     2034    BOOL WritePrivateProfileSectionW(LPCWSTR, LPCWSTR, LPCWSTR); 
     2035    BOOL WritePrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPCSTR); 
     2036    BOOL WritePrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR); 
     2037    BOOL WritePrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR); 
     2038    BOOL WritePrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR); 
     2039    BOOL WriteProcessMemory(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T*); 
     2040    BOOL WriteProfileSectionA(LPCSTR, LPCSTR); 
     2041    BOOL WriteProfileSectionW(LPCWSTR, LPCWSTR); 
     2042    BOOL WriteProfileStringA(LPCSTR, LPCSTR, LPCSTR); 
     2043    BOOL WriteProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR); 
     2044 
     2045    /*  Memory allocation functions. 
     2046     *  MSDN documents these erroneously as Win2000+; thus it is uncertain what 
     2047     *  version compatibility they really have. 
     2048     */ 
     2049    HGLOBAL GlobalAlloc(UINT, DWORD); 
     2050    HGLOBAL GlobalDiscard(HGLOBAL); 
     2051    HGLOBAL GlobalFree(HGLOBAL); 
     2052    HGLOBAL GlobalHandle(PCVOID); 
     2053    LPVOID GlobalLock(HGLOBAL); 
     2054    VOID GlobalMemoryStatus(LPMEMORYSTATUS); 
     2055    HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT); 
     2056    DWORD GlobalSize(HGLOBAL); 
     2057    BOOL GlobalUnlock(HGLOBAL); 
     2058    PVOID HeapAlloc(HANDLE, DWORD, DWORD); 
     2059    SIZE_T HeapCompact(HANDLE, DWORD); 
     2060    HANDLE HeapCreate(DWORD, DWORD, DWORD); 
     2061    BOOL HeapDestroy(HANDLE); 
     2062    BOOL HeapFree(HANDLE, DWORD, PVOID); 
     2063    BOOL HeapLock(HANDLE); 
     2064    PVOID HeapReAlloc(HANDLE, DWORD, PVOID, DWORD); 
     2065    DWORD HeapSize(HANDLE, DWORD, PCVOID); 
     2066    BOOL HeapUnlock(HANDLE); 
     2067    BOOL HeapValidate(HANDLE, DWORD, PCVOID); 
     2068    BOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY); 
     2069    HLOCAL LocalAlloc(UINT, SIZE_T); 
     2070    HLOCAL LocalDiscard(HLOCAL); 
     2071    HLOCAL LocalFree(HLOCAL); 
     2072    HLOCAL LocalHandle(LPCVOID); 
     2073    PVOID LocalLock(HLOCAL); 
     2074    HLOCAL LocalReAlloc(HLOCAL, SIZE_T, UINT); 
     2075    UINT LocalSize(HLOCAL); 
     2076    BOOL LocalUnlock(HLOCAL); 
     2077    PVOID VirtualAlloc(PVOID, DWORD, DWORD, DWORD); 
     2078    PVOID VirtualAllocEx(HANDLE, PVOID, DWORD, DWORD, DWORD); 
     2079    BOOL VirtualFree(PVOID, DWORD, DWORD); 
     2080    BOOL VirtualFreeEx(HANDLE, PVOID, DWORD, DWORD); 
     2081    BOOL VirtualLock(PVOID, DWORD); 
     2082    BOOL VirtualProtect(PVOID, DWORD, DWORD, PDWORD); 
     2083    BOOL VirtualProtectEx(HANDLE, PVOID, DWORD, DWORD, PDWORD); 
     2084    DWORD VirtualQuery(LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); 
     2085    DWORD VirtualQueryEx(HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); 
     2086    BOOL VirtualUnlock(PVOID, DWORD); 
    19152087 
    19162088    static if (_WIN32_WINDOWS >= 0x410) { 
     
    19242096        BOOL GetFileAttributesExA(LPCSTR, GET_FILEEX_INFO_LEVELS, PVOID); 
    19252097        BOOL GetFileAttributesExW(LPCWSTR, GET_FILEEX_INFO_LEVELS, PVOID); 
     2098        DWORD GetLongPathNameA(LPCSTR, LPSTR, DWORD); 
     2099        DWORD GetLongPathNameW(LPCWSTR, LPWSTR, DWORD); 
    19262100        BOOL InitializeCriticalSectionAndSpinCount(LPCRITICAL_SECTION, DWORD); 
    19272101        BOOL IsDebuggerPresent(); 
     2102        HANDLE OpenWaitableTimerA(DWORD, BOOL, LPCSTR); 
     2103        HANDLE OpenWaitableTimerW(DWORD, BOOL, LPCWSTR); 
     2104        DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD); 
     2105        DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD); 
     2106        BOOL SetWaitableTimer(HANDLE, LARGE_INTEGER*, LONG, PTIMERAPCROUTINE, PVOID, BOOL); 
     2107        void SwitchToFiber(PVOID); 
     2108    } 
     2109 
     2110    static if (WINVER >= 0x500) { 
     2111        HANDLE OpenThread(DWORD, BOOL, DWORD); 
    19282112    } 
    19292113 
     
    20382222        BOOL LookupPrivilegeValueA(LPCSTR, LPCSTR, PLUID); 
    20392223        BOOL LookupPrivilegeValueW(LPCWSTR, LPCWSTR, PLUID); 
     2224        BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD); 
     2225        BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD); 
     2226        VOID MapGenericMask(PDWORD, PGENERIC_MAPPING); 
     2227        BOOL MoveFileExA(LPCSTR, LPCSTR, DWORD); 
     2228        BOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD); 
     2229        BOOL NotifyChangeEventLog(HANDLE, HANDLE); 
     2230        BOOL ObjectCloseAuditAlarmA(LPCSTR, PVOID, BOOL); 
     2231        BOOL ObjectCloseAuditAlarmW(LPCWSTR, PVOID, BOOL); 
     2232        BOOL ObjectDeleteAuditAlarmA(LPCSTR, PVOID, BOOL); 
     2233        BOOL ObjectDeleteAuditAlarmW(LPCWSTR, PVOID, BOOL); 
     2234        BOOL ObjectOpenAuditAlarmA(LPCSTR, PVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 
     2235        BOOL ObjectOpenAuditAlarmW(LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 
     2236        BOOL ObjectPrivilegeAuditAlarmA(LPCSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 
     2237        BOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 
     2238        HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR); 
     2239        HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR); 
     2240        HANDLE OpenEventLogA(LPCSTR, LPCSTR); 
     2241        HANDLE OpenEventLogW(LPCWSTR, LPCWSTR); 
     2242        BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE); 
     2243        BOOL OpenThreadToken(HANDLE, DWORD, BOOL, PHANDLE); 
     2244        BOOL PostQueuedCompletionStatus(HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED); 
     2245        DWORD PrepareTape(HANDLE, DWORD, BOOL); 
     2246        BOOL PrivilegeCheck(HANDLE, PPRIVILEGE_SET, PBOOL); 
     2247        BOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL); 
     2248        BOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL); 
     2249        BOOL ReadDirectoryChangesW(HANDLE, PVOID, DWORD, BOOL, DWORD, PDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 
     2250        BOOL ReadEventLogA(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); 
     2251        BOOL ReadEventLogW(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD*, DWORD*); 
     2252        BOOL ReadFileScatter(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 
     2253        HANDLE RegisterEventSourceA (LPCSTR, LPCSTR); 
     2254        HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR); 
     2255        BOOL ReportEventA(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR*, PVOID); 
     2256        BOOL ReportEventW(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR*, PVOID); 
     2257        BOOL RevertToSelf(); 
     2258        BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 
     2259        BOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 
     2260        BOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 
     2261        BOOL SetHandleInformation(HANDLE, DWORD, DWORD); 
     2262        BOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 
     2263        BOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR* , PGENERIC_MAPPING, HANDLE); 
     2264        BOOL SetProcessAffinityMask(HANDLE, DWORD); 
     2265        BOOL SetProcessPriorityBoost(HANDLE, BOOL); 
     2266        BOOL SetProcessShutdownParameters(DWORD, DWORD); 
     2267        BOOL SetProcessWorkingSetSize(HANDLE, SIZE_T, SIZE_T); 
     2268        BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 
     2269        BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL); 
     2270        BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL); 
     2271        BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 
     2272        BOOL SetSystemTimeAdjustment(DWORD, BOOL); 
     2273        DWORD SetTapeParameters(HANDLE, DWORD, PVOID); 
     2274        DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL); 
     2275        BOOL SetThreadPriorityBoost(HANDLE, BOOL); 
     2276        BOOL SetThreadToken(PHANDLE, HANDLE); 
     2277        BOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD); 
     2278        DWORD SignalObjectAndWait(HANDLE, HANDLE, DWORD, BOOL); 
     2279        BOOL SwitchToThread(); 
     2280        BOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME); 
     2281        BOOL TryEnterCriticalSection(LPCRITICAL_SECTION); 
     2282        BOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED); 
     2283        BOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD); 
     2284        BOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWORD); 
     2285        BOOL WriteFileGather(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 
     2286        DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL); 
    20402287 
    20412288        static if (_WIN32_WINNT >= 0x500) { 
     2289            BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 
     2290            BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 
     2291            PVOID AddVectoredExceptionHandler(ULONG, PVECTORED_EXCEPTION_HANDLER); 
     2292            BOOL AllocateUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 
     2293            BOOL AssignProcessToJobObject(HANDLE, HANDLE); 
     2294            BOOL ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG); 
     2295            LPVOID CreateFiberEx(SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID); 
    20422296            HANDLE CreateFileMappingA(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCSTR); 
    20432297            HANDLE CreateFileMappingW(HANDLE, LPSECURITY_ATTRIBUTES, DWORD, DWORD, DWORD, LPCWSTR); 
     2298            BOOL CreateHardLinkA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); 
     2299            BOOL CreateHardLinkW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); 
     2300            HANDLE CreateJobObjectA(LPSECURITY_ATTRIBUTES, LPCSTR); 
     2301            HANDLE CreateJobObjectW(LPSECURITY_ATTRIBUTES, LPCWSTR); 
     2302            BOOL CreateProcessWithLogonW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 
     2303            HANDLE CreateTimerQueue(); 
     2304            BOOL CreateTimerQueueTimer(PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG); 
     2305            BOOL DeleteTimerQueue(HANDLE); 
     2306            BOOL DeleteTimerQueueEx(HANDLE, HANDLE); 
     2307            BOOL DeleteTimerQueueTimer(HANDLE, HANDLE, HANDLE); 
     2308            BOOL DeleteVolumeMountPointA(LPCSTR); 
     2309            BOOL DeleteVolumeMountPointW(LPCWSTR); 
     2310            BOOL DnsHostnameToComputerNameA(LPCSTR, LPSTR, LPDWORD); 
     2311            BOOL DnsHostnameToComputerNameW(LPCWSTR, LPWSTR, LPDWORD); 
    20442312            BOOL EncryptFileA(LPCSTR); 
    20452313            BOOL EncryptFileW(LPCWSTR); 
    20462314            BOOL FileEncryptionStatusA(LPCSTR, LPDWORD); 
    20472315            BOOL FileEncryptionStatusW(LPCWSTR, LPDWORD); 
     2316            HANDLE FindFirstVolumeA(LPCSTR, DWORD); 
     2317            HANDLE FindFirstVolumeMountPointA(LPSTR, LPSTR, DWORD); 
     2318            HANDLE FindFirstVolumeMountPointW(LPWSTR, LPWSTR, DWORD); 
     2319            HANDLE FindFirstVolumeW(LPCWSTR, DWORD); 
     2320            BOOL FindNextVolumeA(HANDLE, LPCSTR, DWORD); 
     2321            BOOL FindNextVolumeW(HANDLE, LPWSTR, DWORD); 
     2322            BOOL FindNextVolumeMountPointA(HANDLE, LPSTR, DWORD); 
     2323            BOOL FindNextVolumeMountPointW(HANDLE, LPWSTR, DWORD); 
     2324            BOOL FindVolumeClose(HANDLE); 
     2325            BOOL FindVolumeMountPointClose(HANDLE); 
    20482326            BOOL FlushViewOfFile(PCVOID, DWORD); 
     2327            BOOL FreeUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 
     2328            BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD); 
     2329            BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD); 
     2330            BOOL GetFileSizeEx(HANDLE, PLARGE_INTEGER); 
     2331            BOOL GetModuleHandleExA(DWORD, LPCSTR, HMODULE*); 
     2332            BOOL GetModuleHandleExW(DWORD, LPCWSTR, HMODULE*); 
    20492333            HANDLE GetProcessHeap(); 
    20502334            DWORD GetProcessHeaps(DWORD, PHANDLE); 
     2335            BOOL GetProcessIoCounters(HANDLE, PIO_COUNTERS); 
    20512336            BOOL GetSystemPowerStatus(LPSYSTEM_POWER_STATUS); 
     2337            UINT GetSystemWindowsDirectoryA(LPSTR, UINT); 
     2338            UINT GetSystemWindowsDirectoryW(LPWSTR, UINT); 
     2339            BOOL GetVolumeNameForVolumeMountPointA(LPCSTR, LPSTR, DWORD); 
     2340            BOOL GetVolumeNameForVolumeMountPointW(LPCWSTR, LPWSTR, DWORD); 
     2341            BOOL GetVolumePathNameA(LPCSTR, LPSTR, DWORD); 
     2342            BOOL GetVolumePathNameW(LPCWSTR, LPWSTR, DWORD); 
     2343            BOOL GlobalMemoryStatusEx(LPMEMORYSTATUSEX); 
    20522344            BOOL IsBadCodePtr(FARPROC); 
    20532345            BOOL IsSystemResumeAutomatic(); 
     2346            BOOL MapUserPhysicalPages(PVOID, ULONG_PTR, PULONG_PTR); 
     2347            BOOL MapUserPhysicalPagesScatter(PVOID*, ULONG_PTR, PULONG_PTR); 
     2348            PVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 
     2349            PVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, PVOID); 
     2350            HANDLE OpenFileMappingA(DWORD, BOOL, LPCSTR); 
     2351            HANDLE OpenFileMappingW(DWORD, BOOL, LPCWSTR); 
     2352            BOOL ProcessIdToSessionId(DWORD, DWORD*); 
     2353            BOOL QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, LPDWORD); 
     2354            ULONG RemoveVectoredExceptionHandler(PVOID); 
     2355            BOOL ReplaceFileA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID); 
     2356            BOOL ReplaceFileW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID); 
     2357            BOOL SetComputerNameExA(COMPUTER_NAME_FORMAT, LPCSTR); 
     2358            BOOL SetComputerNameExW(COMPUTER_NAME_FORMAT, LPCWSTR); 
     2359            BOOL SetFilePointerEx(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD); 
     2360            BOOL SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD); 
     2361            BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL); 
     2362            BOOL SetSystemPowerState(BOOL, BOOL); 
     2363            EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE); 
     2364            DWORD SetThreadIdealProcessor(HANDLE, DWORD); 
     2365            BOOL SetVolumeMountPointA(LPCSTR, LPCSTR); 
     2366            BOOL SetVolumeMountPointW(LPCWSTR, LPCWSTR); 
     2367            BOOL TerminateJobObject(HANDLE, UINT); 
     2368            BOOL UnmapViewOfFile(PVOID); 
     2369            BOOL UnregisterWait(HANDLE); 
     2370            BOOL UnregisterWaitEx(HANDLE, HANDLE); 
     2371            BOOL VerifyVersionInfoA(LPOSVERSIONINFOEXA, DWORD, DWORDLONG); 
     2372            BOOL VerifyVersionInfoW(LPOSVERSIONINFOEXW, DWORD, DWORDLONG); 
    20542373        } 
    20552374 
    20562375        static if (_WIN32_WINNT >= 0x501) { 
     2376            BOOL ActivateActCtx(HANDLE, ULONG_PTR*); 
     2377            void AddRefActCtx(HANDLE); 
     2378            BOOL CheckNameLegalDOS8Dot3A(LPCSTR, LPSTR, DWORD, PBOOL, PBOOL); 
     2379            BOOL CheckNameLegalDOS8Dot3W(LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL); 
     2380            BOOL CheckRemoteDebuggerPresent(HANDLE, PBOOL); 
     2381            BOOL ConvertFiberToThread(); 
     2382            HANDLE CreateActCtxA(PCACTCTXA); 
     2383            HANDLE CreateActCtxW(PCACTCTXW); 
     2384            HANDLE CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE); 
     2385            BOOL DeactivateActCtx(DWORD, ULONG_PTR); 
     2386            BOOL DebugActiveProcessStop(DWORD); 
     2387            BOOL DebugBreakProcess(HANDLE); 
     2388            BOOL DebugSetProcessKillOnExit(BOOL); 
     2389            BOOL FindActCtxSectionGuid(DWORD, GUID*, ULONG, GUID*, PACTCTX_SECTION_KEYED_DATA); 
     2390            BOOL FindActCtxSectionStringA(DWORD, GUID*, ULONG, LPCSTR, PACTCTX_SECTION_KEYED_DATA); 
     2391            BOOL FindActCtxSectionStringW(DWORD, GUID*, ULONG, LPCWSTR, PACTCTX_SECTION_KEYED_DATA); 
     2392            BOOL GetCurrentActCtx(HANDLE*); 
     2393            VOID GetNativeSystemInfo(LPSYSTEM_INFO); 
     2394            BOOL GetSystemTimes(LPFILETIME, LPFILETIME, LPFILETIME); 
     2395            UINT GetSystemWow64DirectoryA(LPSTR, UINT); 
     2396            UINT GetSystemWow64DirectoryW(LPWSTR, UINT); 
     2397            BOOL GetVolumePathNamesForVolumeNameA(LPCSTR, LPSTR, DWORD, PDWORD); 
     2398            BOOL GetVolumePathNamesForVolumeNameW(LPCWSTR, LPWSTR, DWORD, PDWORD); 
    20572399            UINT GetWriteWatch(DWORD, PVOID, SIZE_T, PVOID*, PULONG_PTR, PULONG); 
     2400            BOOL HeapQueryInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); 
     2401            BOOL HeapSetInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T); 
     2402            BOOL IsProcessInJob(HANDLE, HANDLE, PBOOL); 
     2403            BOOL IsWow64Process(HANDLE, PBOOL); 
     2404            BOOL QueryActCtxW(DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T*); 
     2405            BOOL QueryMemoryResourceNotification(HANDLE, PBOOL); 
     2406            void ReleaseActCtx(HANDLE); 
     2407            UINT ResetWriteWatch(LPVOID, SIZE_T); 
     2408            BOOL SetFileShortNameA(HANDLE, LPCSTR); 
     2409            BOOL SetFileShortNameW(HANDLE, LPCWSTR); 
     2410            BOOL SetFileValidData(HANDLE, LONGLONG); 
     2411            BOOL ZombifyActCtx(HANDLE); 
    20582412        } 
    2059     } 
    2060  
    2061 // *** 
    2062     BOOL MakeAbsoluteSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD, PACL, PDWORD, PACL, PDWORD, PSID, PDWORD, PSID, PDWORD); 
    2063     BOOL MakeSelfRelativeSD(PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR, PDWORD); 
    2064     VOID MapGenericMask(PDWORD, PGENERIC_MAPPING); 
    2065     PVOID MapViewOfFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 
    2066     PVOID MapViewOfFileEx(HANDLE, DWORD, DWORD, DWORD, DWORD, PVOID); 
    2067     BOOL MoveFileA(LPCSTR, LPCSTR); 
    2068     BOOL MoveFileExA(LPCSTR, LPCSTR, DWORD); 
    2069     BOOL MoveFileExW(LPCWSTR, LPCWSTR, DWORD); 
    2070     BOOL MoveFileW(LPCWSTR, LPCWSTR); 
    2071     int MulDiv(int, int, int); 
    2072     BOOL NotifyChangeEventLog(HANDLE, HANDLE); 
    2073     BOOL ObjectCloseAuditAlarmA(LPCSTR, PVOID, BOOL); 
    2074     BOOL ObjectCloseAuditAlarmW(LPCWSTR, PVOID, BOOL); 
    2075     BOOL ObjectDeleteAuditAlarmA(LPCSTR, PVOID, BOOL); 
    2076     BOOL ObjectDeleteAuditAlarmW(LPCWSTR, PVOID, BOOL); 
    2077     BOOL ObjectOpenAuditAlarmA(LPCSTR, PVOID, LPSTR, LPSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 
    2078     BOOL ObjectOpenAuditAlarmW(LPCWSTR, PVOID, LPWSTR, LPWSTR, PSECURITY_DESCRIPTOR, HANDLE, DWORD, DWORD, PPRIVILEGE_SET, BOOL, BOOL, PBOOL); 
    2079     BOOL ObjectPrivilegeAuditAlarmA(LPCSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 
    2080     BOOL ObjectPrivilegeAuditAlarmW(LPCWSTR, PVOID, HANDLE, DWORD, PPRIVILEGE_SET, BOOL); 
    2081     HANDLE OpenBackupEventLogA(LPCSTR, LPCSTR); 
    2082     HANDLE OpenBackupEventLogW(LPCWSTR, LPCWSTR); 
    2083     HANDLE OpenEventA(DWORD, BOOL, LPCSTR); 
    2084     HANDLE OpenEventLogA (LPCSTR, LPCSTR); 
    2085     HANDLE OpenEventLogW(LPCWSTR, LPCWSTR); 
    2086     HANDLE OpenEventW(DWORD, BOOL, LPCWSTR); 
    2087     deprecated HFILE OpenFile(LPCSTR, LPOFSTRUCT, UINT); 
    2088     HANDLE OpenFileMappingA(DWORD, BOOL, LPCSTR); 
    2089     HANDLE OpenFileMappingW(DWORD, BOOL, LPCWSTR); 
    2090     HANDLE OpenMutexA(DWORD, BOOL, LPCSTR); 
    2091     HANDLE OpenMutexW(DWORD, BOOL, LPCWSTR); 
    2092     HANDLE OpenProcess(DWORD, BOOL, DWORD); 
    2093     BOOL OpenProcessToken(HANDLE, DWORD, PHANDLE); 
    2094     HANDLE OpenSemaphoreA(DWORD, BOOL, LPCSTR); 
    2095     HANDLE OpenSemaphoreW(DWORD, BOOL, LPCWSTR); 
    2096     BOOL OpenThreadToken(HANDLE, DWORD, BOOL, PHANDLE); 
    2097     HANDLE OpenWaitableTimerA(DWORD, BOOL, LPCSTR); 
    2098     HANDLE OpenWaitableTimerW(DWORD, BOOL, LPCWSTR); 
    2099     void OutputDebugStringA(LPCSTR); 
    2100     void OutputDebugStringW(LPCWSTR); 
    2101     BOOL PeekNamedPipe(HANDLE, PVOID, DWORD, PDWORD, PDWORD, PDWORD); 
    2102     BOOL PostQueuedCompletionStatus(HANDLE, DWORD, ULONG_PTR, LPOVERLAPPED); 
    2103     DWORD PrepareTape(HANDLE, DWORD, BOOL); 
    2104     BOOL PrivilegeCheck (HANDLE, PPRIVILEGE_SET, PBOOL); 
    2105     BOOL PrivilegedServiceAuditAlarmA(LPCSTR, LPCSTR, HANDLE, PPRIVILEGE_SET, BOOL); 
    2106     BOOL PrivilegedServiceAuditAlarmW(LPCWSTR, LPCWSTR, HANDLE, PPRIVILEGE_SET, BOOL); 
    2107     BOOL PulseEvent(HANDLE); 
    2108     BOOL PurgeComm(HANDLE, DWORD); 
    2109     DWORD QueryDosDeviceA(LPCSTR, LPSTR, DWORD); 
    2110     DWORD QueryDosDeviceW(LPCWSTR, LPWSTR, DWORD); 
    2111     BOOL QueryPerformanceCounter(PLARGE_INTEGER); 
    2112     BOOL QueryPerformanceFrequency(PLARGE_INTEGER); 
    2113     DWORD QueueUserAPC(PAPCFUNC, HANDLE, ULONG_PTR); 
    2114     void RaiseException(DWORD, DWORD, DWORD, DWORD*); 
    2115     BOOL ReadDirectoryChangesW(HANDLE, PVOID, DWORD, BOOL, DWORD, PDWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 
    2116     BOOL ReadEventLogA(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD* , DWORD* ); 
    2117     BOOL ReadEventLogW(HANDLE, DWORD, DWORD, PVOID, DWORD, DWORD* , DWORD* ); 
    2118     BOOL ReadFile(HANDLE, PVOID, DWORD, PDWORD, LPOVERLAPPED); 
    2119     BOOL ReadFileEx(HANDLE, PVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 
    2120     BOOL ReadFileScatter(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 
    2121     BOOL ReadProcessMemory(HANDLE, PCVOID, PVOID, DWORD, PDWORD); 
    2122     HANDLE RegisterEventSourceA (LPCSTR, LPCSTR); 
    2123     HANDLE RegisterEventSourceW(LPCWSTR, LPCWSTR); 
    2124     BOOL ReleaseMutex(HANDLE); 
    2125     BOOL ReleaseSemaphore(HANDLE, LONG, LPLONG); 
    2126     BOOL RemoveDirectoryA(LPCSTR); 
    2127     BOOL RemoveDirectoryW(LPCWSTR); 
    2128     BOOL ReportEventA(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCSTR*, PVOID); 
    2129     BOOL ReportEventW(HANDLE, WORD, WORD, DWORD, PSID, WORD, DWORD, LPCWSTR*, PVOID); 
    2130 /* In MinGW: 
    2131 #ifdef _WIN32_WCE 
    2132 extern BOOL ResetEvent(HANDLE); 
    2133 #else 
    2134 WINBASEAPI BOOL WINAPI ResetEvent(HANDLE); 
    2135 #endif 
    2136 */ 
    2137     BOOL ResetEvent(HANDLE); 
    2138     UINT ResetWriteWatch(LPVOID, SIZE_T); 
    2139     DWORD ResumeThread(HANDLE); 
    2140     BOOL RevertToSelf(); 
    2141     DWORD SearchPathA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPSTR, LPSTR*); 
    2142     DWORD SearchPathW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPWSTR, LPWSTR*); 
    2143     static if (_WIN32_WINNT_ONLY) { 
    2144         BOOL SetAclInformation(PACL, PVOID, DWORD, ACL_INFORMATION_CLASS); 
    2145     } 
    2146     BOOL SetCommBreak(HANDLE); 
    2147     BOOL SetCommConfig(HANDLE, LPCOMMCONFIG, DWORD); 
    2148     BOOL SetCommMask(HANDLE, DWORD); 
    2149     BOOL SetCommState(HANDLE, LPDCB); 
    2150     BOOL SetCommTimeouts(HANDLE, LPCOMMTIMEOUTS); 
    2151     BOOL SetComputerNameA(LPCSTR); 
    2152     BOOL SetComputerNameW(LPCWSTR); 
    2153     BOOL SetCurrentDirectoryA(LPCSTR); 
    2154     BOOL SetCurrentDirectoryW(LPCWSTR); 
    2155     BOOL SetDefaultCommConfigA(LPCSTR, LPCOMMCONFIG, DWORD); 
    2156     BOOL SetDefaultCommConfigW(LPCWSTR, LPCOMMCONFIG, DWORD); 
    2157     BOOL SetEndOfFile(HANDLE); 
    2158     BOOL SetEnvironmentVariableA(LPCSTR, LPCSTR); 
    2159     BOOL SetEnvironmentVariableW(LPCWSTR, LPCWSTR); 
    2160     UINT SetErrorMode(UINT); 
    2161 /* In MinGW: 
    2162 #ifdef _WIN32_WCE 
    2163 extern BOOL SetEvent(HANDLE); 
    2164 #else 
    2165 WINBASEAPI BOOL WINAPI SetEvent(HANDLE); 
    2166 #endif 
    2167 */ 
    2168     BOOL SetEvent(HANDLE); 
    2169     VOID SetFileApisToANSI(); 
    2170     VOID SetFileApisToOEM(); 
    2171     BOOL SetFileAttributesA(LPCSTR, DWORD); 
    2172     BOOL SetFileAttributesW(LPCWSTR, DWORD); 
    2173     DWORD SetFilePointer(HANDLE, LONG, PLONG, DWORD); 
    2174     BOOL SetFilePointerEx(HANDLE, LARGE_INTEGER, PLARGE_INTEGER, DWORD); 
    2175     BOOL SetFileSecurityA(LPCSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 
    2176     BOOL SetFileSecurityW(LPCWSTR, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 
    2177     BOOL SetFileTime(HANDLE, FILETIME*, FILETIME*, FILETIME*); 
    2178     UINT SetHandleCount(UINT); 
    2179     BOOL SetHandleInformation(HANDLE, DWORD, DWORD); 
    2180     BOOL SetKernelObjectSecurity(HANDLE, SECURITY_INFORMATION, PSECURITY_DESCRIPTOR); 
    2181     void SetLastError(DWORD); 
    2182     void SetLastErrorEx(DWORD, DWORD); 
    2183     BOOL SetLocalTime( SYSTEMTIME*); 
    2184     BOOL SetMailslotInfo(HANDLE, DWORD); 
    2185     BOOL SetNamedPipeHandleState(HANDLE, PDWORD, PDWORD, PDWORD); 
    2186     BOOL SetPriorityClass(HANDLE, DWORD); 
    2187     BOOL SetPrivateObjectSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR, PSECURITY_DESCRIPTOR* , PGENERIC_MAPPING, HANDLE); 
    2188     BOOL SetProcessAffinityMask(HANDLE, DWORD); 
    2189     BOOL SetProcessPriorityBoost(HANDLE, BOOL); 
    2190     BOOL SetProcessShutdownParameters(DWORD, DWORD); 
    2191     BOOL SetProcessWorkingSetSize(HANDLE, SIZE_T, SIZE_T); 
    2192     BOOL SetSecurityDescriptorControl(PSECURITY_DESCRIPTOR, SECURITY_DESCRIPTOR_CONTROL, SECURITY_DESCRIPTOR_CONTROL); 
    2193     BOOL SetSecurityDescriptorDacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 
    2194     BOOL SetSecurityDescriptorGroup(PSECURITY_DESCRIPTOR, PSID, BOOL); 
    2195     BOOL SetSecurityDescriptorOwner(PSECURITY_DESCRIPTOR, PSID, BOOL); 
    2196     BOOL SetSecurityDescriptorSacl(PSECURITY_DESCRIPTOR, BOOL, PACL, BOOL); 
    2197     BOOL SetStdHandle(DWORD, HANDLE); 
    2198     BOOL SetSystemPowerState(BOOL, BOOL); 
    2199     BOOL SetSystemTime( SYSTEMTIME*); 
    2200     BOOL SetSystemTimeAdjustment(DWORD, BOOL); 
    2201     DWORD SetTapeParameters(HANDLE, DWORD, PVOID); 
    2202     DWORD SetTapePosition(HANDLE, DWORD, DWORD, DWORD, DWORD, BOOL); 
    2203     DWORD SetThreadAffinityMask(HANDLE, DWORD); 
    2204     BOOL SetThreadContext(HANDLE, CONTEXT*); 
    2205     DWORD SetThreadIdealProcessor(HANDLE, DWORD); 
    2206     BOOL SetThreadPriority(HANDLE, int); 
    2207     BOOL SetThreadPriorityBoost(HANDLE, BOOL); 
    2208     BOOL SetThreadToken (PHANDLE, HANDLE); 
    2209     BOOL SetTimeZoneInformation( TIME_ZONE_INFORMATION* ); 
    2210     BOOL SetTokenInformation(HANDLE, TOKEN_INFORMATION_CLASS, PVOID, DWORD); 
    2211     LPTOP_LEVEL_EXCEPTION_FILTER SetUnhandledExceptionFilter(LPTOP_LEVEL_EXCEPTION_FILTER); 
    2212     BOOL SetupComm(HANDLE, DWORD, DWORD); 
    2213     BOOL SetVolumeLabelA(LPCSTR, LPCSTR); 
    2214     BOOL SetVolumeLabelW(LPCWSTR, LPCWSTR); 
    2215     BOOL SetWaitableTimer(HANDLE, LARGE_INTEGER*, LONG, PTIMERAPCROUTINE, PVOID, BOOL); 
    2216     DWORD SignalObjectAndWait(HANDLE, HANDLE, DWORD, BOOL); 
    2217     DWORD SizeofResource(HINSTANCE, HRSRC); 
    2218     void Sleep(DWORD); 
    2219     DWORD SleepEx(DWORD, BOOL); 
    2220     DWORD SuspendThread(HANDLE); 
    2221     void SwitchToFiber(PVOID); 
    2222     BOOL SwitchToThread(); 
    2223     BOOL SystemTimeToFileTime( SYSTEMTIME*, LPFILETIME); 
    2224     BOOL SystemTimeToTzSpecificLocalTime(LPTIME_ZONE_INFORMATION, LPSYSTEMTIME, LPSYSTEMTIME); 
    2225     BOOL TerminateProcess(HANDLE, UINT); 
    2226     BOOL TerminateThread(HANDLE, DWORD); 
    2227     DWORD TlsAlloc(); 
    2228     BOOL TlsFree(DWORD); 
    2229     PVOID TlsGetValue(DWORD); 
    2230     BOOL TlsSetValue(DWORD, PVOID); 
    2231     BOOL TransactNamedPipe(HANDLE, PVOID, DWORD, PVOID, DWORD, PDWORD, LPOVERLAPPED); 
    2232     BOOL TransmitCommChar(HANDLE, char); 
    2233     BOOL TryEnterCriticalSection(LPCRITICAL_SECTION); 
    2234     LONG UnhandledExceptionFilter(LPEXCEPTION_POINTERS); 
    2235     BOOL UnlockFile(HANDLE, DWORD, DWORD, DWORD, DWORD); 
    2236     BOOL UnlockFileEx(HANDLE, DWORD, DWORD, DWORD, LPOVERLAPPED); 
    2237     BOOL UnmapViewOfFile(PVOID); 
    2238     BOOL UpdateResourceA(HANDLE, LPCSTR, LPCSTR, WORD, PVOID, DWORD); 
    2239     BOOL UpdateResourceW(HANDLE, LPCWSTR, LPCWSTR, WORD, PVOID, DWORD); 
    2240     BOOL VerifyVersionInfoA(LPOSVERSIONINFOEXA, DWORD, DWORDLONG); 
    2241     BOOL VerifyVersionInfoW(LPOSVERSIONINFOEXW, DWORD, DWORDLONG); 
    2242     PVOID VirtualAlloc(PVOID, DWORD, DWORD, DWORD); 
    2243     PVOID VirtualAllocEx(HANDLE, PVOID, DWORD, DWORD, DWORD); 
    2244     BOOL VirtualFree(PVOID, DWORD, DWORD); 
    2245     BOOL VirtualFreeEx(HANDLE, PVOID, DWORD, DWORD); 
    2246     BOOL VirtualLock(PVOID, DWORD); 
    2247     BOOL VirtualProtect(PVOID, DWORD, DWORD, PDWORD); 
    2248     BOOL VirtualProtectEx(HANDLE, PVOID, DWORD, DWORD, PDWORD); 
    2249     DWORD VirtualQuery(LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); 
    2250     DWORD VirtualQueryEx(HANDLE, LPCVOID, PMEMORY_BASIC_INFORMATION, DWORD); 
    2251     BOOL VirtualUnlock(PVOID, DWORD); 
    2252     BOOL WaitCommEvent(HANDLE, PDWORD, LPOVERLAPPED); 
    2253     BOOL WaitForDebugEvent(LPDEBUG_EVENT, DWORD); 
    2254     DWORD WaitForMultipleObjects(DWORD, HANDLE*, BOOL, DWORD); 
    2255     DWORD WaitForMultipleObjectsEx(DWORD, HANDLE*, BOOL, DWORD, BOOL); 
    2256     DWORD WaitForSingleObject(HANDLE, DWORD); 
    2257     DWORD WaitForSingleObjectEx(HANDLE, DWORD, BOOL); 
    2258     BOOL WaitNamedPipeA(LPCSTR, DWORD); 
    2259     BOOL WaitNamedPipeW(LPCWSTR, DWORD); 
    2260     BOOL WinLoadTrustProvider(GUID*); 
    2261     BOOL WriteFile(HANDLE, PCVOID, DWORD, PDWORD, LPOVERLAPPED); 
    2262     BOOL WriteFileEx(HANDLE, PCVOID, DWORD, LPOVERLAPPED, LPOVERLAPPED_COMPLETION_ROUTINE); 
    2263     BOOL WriteFileGather(HANDLE, FILE_SEGMENT_ELEMENT*, DWORD, LPDWORD, LPOVERLAPPED); 
    2264     BOOL WritePrivateProfileSectionA(LPCSTR, LPCSTR, LPCSTR); 
    2265     BOOL WritePrivateProfileSectionW(LPCWSTR, LPCWSTR, LPCWSTR); 
    2266     BOOL WritePrivateProfileStringA(LPCSTR, LPCSTR, LPCSTR, LPCSTR); 
    2267     BOOL WritePrivateProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR, LPCWSTR); 
    2268     BOOL WritePrivateProfileStructA(LPCSTR, LPCSTR, LPVOID, UINT, LPCSTR); 
    2269     BOOL WritePrivateProfileStructW(LPCWSTR, LPCWSTR, LPVOID, UINT, LPCWSTR); 
    2270     BOOL WriteProcessMemory(HANDLE, LPVOID, LPCVOID, SIZE_T, SIZE_T*); 
    2271     BOOL WriteProfileSectionA(LPCSTR, LPCSTR); 
    2272     BOOL WriteProfileSectionW(LPCWSTR, LPCWSTR); 
    2273     BOOL WriteProfileStringA(LPCSTR, LPCSTR, LPCSTR); 
    2274     BOOL WriteProfileStringW(LPCWSTR, LPCWSTR, LPCWSTR); 
    2275     DWORD WriteTapemark(HANDLE, DWORD, DWORD, BOOL); 
    2276  
    2277     /*  Memory allocation functions. 
    2278      *  MSDN documents these erroneously as Win2000+; thus it is uncertain what 
    2279      *  version compatibility they really have. 
    2280      */ 
    2281     HGLOBAL GlobalAlloc(UINT, DWORD); 
    2282     HGLOBAL GlobalDiscard(HGLOBAL); 
    2283     HGLOBAL GlobalFree(HGLOBAL); 
    2284     HGLOBAL GlobalHandle(PCVOID); 
    2285     LPVOID GlobalLock(HGLOBAL); 
    2286     VOID GlobalMemoryStatus(LPMEMORYSTATUS); 
    2287     HGLOBAL GlobalReAlloc(HGLOBAL, DWORD, UINT); 
    2288     DWORD GlobalSize(HGLOBAL); 
    2289     BOOL GlobalUnlock(HGLOBAL); 
    2290     PVOID HeapAlloc(HANDLE, DWORD, DWORD); 
    2291     SIZE_T HeapCompact(HANDLE, DWORD); 
    2292     HANDLE HeapCreate(DWORD, DWORD, DWORD); 
    2293     BOOL HeapDestroy(HANDLE); 
    2294     BOOL HeapFree(HANDLE, DWORD, PVOID); 
    2295     BOOL HeapLock(HANDLE); 
    2296     PVOID HeapReAlloc(HANDLE, DWORD, PVOID, DWORD); 
    2297     DWORD HeapSize(HANDLE, DWORD, PCVOID); 
    2298     BOOL HeapUnlock(HANDLE); 
    2299     BOOL HeapValidate(HANDLE, DWORD, PCVOID); 
    2300     BOOL HeapWalk(HANDLE, LPPROCESS_HEAP_ENTRY); 
    2301     HLOCAL LocalAlloc(UINT, SIZE_T); 
    2302     HLOCAL LocalDiscard(HLOCAL); 
    2303     HLOCAL LocalFree(HLOCAL); 
    2304     HLOCAL LocalHandle(LPCVOID); 
    2305     PVOID LocalLock(HLOCAL); 
    2306     HLOCAL LocalReAlloc(HLOCAL, SIZE_T, UINT); 
    2307     UINT LocalSize(HLOCAL); 
    2308     BOOL LocalUnlock(HLOCAL); 
    2309  
    2310     // ------ 
    2311     // functions added in later Windows versions 
    2312  
    2313     static if (_WIN32_WINNT >= 0x0400) { 
    2314         LPVOID CreateFiberEx(SIZE_T, SIZE_T, DWORD, LPFIBER_START_ROUTINE, LPVOID); 
    2315         BOOL ConvertFiberToThread(); 
    2316     } 
    2317     static if ((_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0410)) { 
    2318         DWORD GetLongPathNameA(LPCSTR, LPSTR, DWORD); 
    2319         DWORD GetLongPathNameW(LPCWSTR, LPWSTR, DWORD); 
    2320         EXECUTION_STATE SetThreadExecutionState(EXECUTION_STATE); 
    2321     } 
    2322     static if ((_WIN32_WINNT >= 0x0500) || (_WIN32_WINDOWS >= 0x0490)) { 
    2323         HANDLE OpenThread(DWORD, BOOL, DWORD); 
    2324     } 
    2325  
    2326     static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) { 
    2327         BOOL AddAccessAllowedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 
    2328         BOOL AddAccessDeniedAceEx(PACL, DWORD, DWORD, DWORD, PSID); 
    2329         PVOID AddVectoredExceptionHandler(ULONG, PVECTORED_EXCEPTION_HANDLER); 
    2330         BOOL CreateHardLinkA(LPCSTR, LPCSTR, LPSECURITY_ATTRIBUTES); 
    2331         BOOL CreateHardLinkW(LPCWSTR, LPCWSTR, LPSECURITY_ATTRIBUTES); 
    2332         HANDLE CreateJobObjectA(LPSECURITY_ATTRIBUTES, LPCSTR); 
    2333         HANDLE CreateJobObjectW(LPSECURITY_ATTRIBUTES, LPCWSTR); 
    2334         BOOL TerminateJobObject(HANDLE, UINT); 
    2335         BOOL AssignProcessToJobObject(HANDLE, HANDLE); 
    2336  
    2337         BOOL ChangeTimerQueueTimer(HANDLE,HANDLE,ULONG,ULONG); 
    2338         BOOL DeleteTimerQueue(HANDLE); 
    2339         BOOL DeleteTimerQueueEx(HANDLE, HANDLE); 
    2340         BOOL DeleteTimerQueueTimer(HANDLE, HANDLE, HANDLE); 
    2341         BOOL DeleteVolumeMountPointA(LPCSTR); 
    2342         BOOL DeleteVolumeMountPointW(LPCWSTR); 
    2343  
    2344         BOOL CreateProcessWithLogonW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPCWSTR, 
    2345           LPWSTR, DWORD, LPVOID, LPCWSTR, LPSTARTUPINFOW, LPPROCESS_INFORMATION); 
    2346         enum { 
    2347             LOGON_WITH_PROFILE=0x00000001, 
    2348             LOGON_NETCREDENTIALS_ONLY=0x00000002 
     2413 
     2414        static if (_WIN32_WINNT >= 0x502) { 
     2415            DWORD GetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 
     2416            DWORD GetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 
     2417            DWORD GetDllDirectoryA(DWORD, LPSTR); 
     2418            DWORD GetDllDirectoryW(DWORD, LPWSTR); 
     2419            DWORD GetProcessId(HANDLE); 
     2420            BOOL GetProcessHandleCount(HANDLE, PDWORD); 
     2421            BOOL GetSystemRegistryQuota(PDWORD, PDWORD); 
     2422            BOOL GetThreadIOPendingFlag(HANDLE, PBOOL); 
     2423            HANDLE ReOpenFile(HANDLE, DWORD, DWORD, DWORD); 
     2424            BOOL SetDllDirectoryA(LPCSTR); 
     2425            BOOL SetDllDirectoryW(LPCWSTR); 
     2426            BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 
     2427            BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 
    23492428        } 
    2350  
    2351         HANDLE CreateTimerQueue(); 
    2352         BOOL CreateTimerQueueTimer(PHANDLE, HANDLE, WAITORTIMERCALLBACK, PVOID, DWORD, DWORD, ULONG); 
    2353         BOOL DnsHostnameToComputerNameA(LPCSTR, LPSTR, LPDWORD); 
    2354         BOOL DnsHostnameToComputerNameW(LPCWSTR, LPWSTR, LPDWORD); 
    2355         HANDLE FindFirstVolumeA(LPCSTR, DWORD); 
    2356         HANDLE FindFirstVolumeW(LPCWSTR, DWORD); 
    2357         HANDLE FindFirstVolumeMountPointA(LPSTR, LPSTR, DWORD); 
    2358         HANDLE FindFirstVolumeMountPointW(LPWSTR, LPWSTR, DWORD); 
    2359         BOOL FindNextVolumeA(HANDLE, LPCSTR, DWORD); 
    2360         BOOL FindNextVolumeW(HANDLE, LPWSTR, DWORD); 
    2361         BOOL FindNextVolumeMountPointA(HANDLE, LPSTR, DWORD); 
    2362         BOOL FindNextVolumeMountPointW(HANDLE, LPWSTR, DWORD); 
    2363         BOOL FindVolumeClose(HANDLE); 
    2364         BOOL FindVolumeMountPointClose(HANDLE); 
    2365         BOOL GetComputerNameExA(COMPUTER_NAME_FORMAT, LPSTR, LPDWORD); 
    2366         BOOL GetComputerNameExW(COMPUTER_NAME_FORMAT, LPWSTR, LPDWORD); 
    2367         BOOL GetFileSizeEx(HANDLE, PLARGE_INTEGER); 
    2368         BOOL GetModuleHandleExA(DWORD, LPCSTR, HMODULE*); 
    2369         BOOL GetModuleHandleExW(DWORD, LPCWSTR, HMODULE*); 
    2370         BOOL GetProcessIoCounters(HANDLE, PIO_COUNTERS); 
    2371         UINT GetSystemWindowsDirectoryA(LPSTR, UINT); 
    2372         UINT GetSystemWindowsDirectoryW(LPWSTR, UINT); 
    2373         BOOL GetVolumeNameForVolumeMountPointA(LPCSTR, LPSTR, DWORD); 
    2374         BOOL GetVolumeNameForVolumeMountPointW(LPCWSTR, LPWSTR, DWORD); 
    2375         BOOL GetVolumePathNameA(LPCSTR, LPSTR, DWORD); 
    2376         BOOL GetVolumePathNameW(LPCWSTR, LPWSTR, DWORD); 
    2377         BOOL GlobalMemoryStatusEx(LPMEMORYSTATUSEX); 
    2378         BOOL SetVolumeMountPointA(LPCSTR, LPCSTR); 
    2379         BOOL SetVolumeMountPointW(LPCWSTR, LPCWSTR); 
    2380         BOOL UnregisterWait(HANDLE); 
    2381         BOOL UnregisterWaitEx(HANDLE, HANDLE); 
    2382         BOOL AllocateUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 
    2383         BOOL FreeUserPhysicalPages(HANDLE, PULONG_PTR, PULONG_PTR); 
    2384         BOOL MapUserPhysicalPages(PVOID, ULONG_PTR, PULONG_PTR); 
    2385         BOOL MapUserPhysicalPagesScatter(PVOID*, ULONG_PTR, PULONG_PTR); 
    2386         BOOL ProcessIdToSessionId(DWORD, DWORD*); 
    2387         BOOL QueryInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD, 
    2388           LPDWORD); 
    2389         ULONG RemoveVectoredExceptionHandler(PVOID); 
    2390         BOOL ReplaceFileA(LPCSTR, LPCSTR, LPCSTR, DWORD, LPVOID, LPVOID); 
    2391         BOOL ReplaceFileW(LPCWSTR, LPCWSTR, LPCWSTR, DWORD, LPVOID, LPVOID); 
    2392         BOOL SetComputerNameExA(COMPUTER_NAME_FORMAT, LPCSTR); 
    2393         BOOL SetComputerNameExW(COMPUTER_NAME_FORMAT, LPCWSTR); 
    2394         BOOL SetInformationJobObject(HANDLE, JOBOBJECTINFOCLASS, LPVOID, DWORD); 
    2395     } 
    2396  
    2397     static if (_WIN32_WINNT >= 0x0501) { 
    2398         BOOL ActivateActCtx(HANDLE, ULONG_PTR*); 
    2399         void AddRefActCtx(HANDLE); 
    2400         BOOL CheckNameLegalDOS8Dot3A(LPCSTR, LPSTR, DWORD, PBOOL, PBOOL); 
    2401         BOOL CheckNameLegalDOS8Dot3W(LPCWSTR, LPSTR, DWORD, PBOOL, PBOOL); 
    2402         BOOL CheckRemoteDebuggerPresent(HANDLE, PBOOL); 
    2403         HANDLE CreateActCtxA(PCACTCTXA); 
    2404         HANDLE CreateActCtxW(PCACTCTXW); 
    2405         HANDLE CreateMemoryResourceNotification(MEMORY_RESOURCE_NOTIFICATION_TYPE); 
    2406         BOOL DebugActiveProcessStop(DWORD); 
    2407         BOOL DebugBreakProcess(HANDLE); 
    2408         BOOL DebugSetProcessKillOnExit(BOOL); 
    2409         BOOL DeactivateActCtx(DWORD, ULONG_PTR); 
    2410         BOOL GetCurrentActCtx(HANDLE*); 
    2411         BOOL FindActCtxSectionGuid(DWORD, GUID*, ULONG, GUID*, PACTCTX_SECTION_KEYED_DATA); 
    2412         BOOL FindActCtxSectionStringA(DWORD, GUID*, ULONG, LPCSTR, PACTCTX_SECTION_KEYED_DATA); 
    2413         BOOL FindActCtxSectionStringW(DWORD, GUID*, ULONG, LPCWSTR, PACTCTX_SECTION_KEYED_DATA); 
    2414         VOID GetNativeSystemInfo(LPSYSTEM_INFO); 
    2415         BOOL GetSystemTimes(LPFILETIME, LPFILETIME, LPFILETIME); 
    2416         UINT GetSystemWow64DirectoryA(LPSTR, UINT); 
    2417         UINT GetSystemWow64DirectoryW(LPWSTR, UINT); 
    2418         BOOL GetVolumePathNamesForVolumeNameA(LPCSTR, LPSTR, DWORD, PDWORD); 
    2419         BOOL GetVolumePathNamesForVolumeNameW(LPCWSTR, LPWSTR, DWORD, PDWORD); 
    2420         BOOL HeapQueryInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T); 
    2421         BOOL HeapSetInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T); 
    2422         BOOL IsProcessInJob(HANDLE, HANDLE, PBOOL); 
    2423         BOOL IsWow64Process(HANDLE, PBOOL); 
    2424         BOOL QueryActCtxW(DWORD, HANDLE, PVOID, ULONG, PVOID, SIZE_T, SIZE_T*); 
    2425         BOOL QueryMemoryResourceNotification(HANDLE, PBOOL); 
    2426         void ReleaseActCtx(HANDLE); 
    2427         BOOL SetFileShortNameA(HANDLE, LPCSTR); 
    2428         BOOL SetFileShortNameW(HANDLE, LPCWSTR); 
    2429         BOOL SetFileValidData(HANDLE, LONGLONG); 
    2430         BOOL ZombifyActCtx(HANDLE); 
    2431     } 
    2432     static if (_WIN32_WINNT >= 0x0502) { 
    2433         DWORD GetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 
    2434         DWORD GetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 
    2435         DWORD GetDllDirectoryA(DWORD, LPSTR); 
    2436         DWORD GetDllDirectoryW(DWORD, LPWSTR); 
    2437         DWORD GetProcessId(HANDLE); 
    2438         BOOL GetProcessHandleCount(HANDLE, PDWORD); 
    2439         BOOL GetSystemRegistryQuota(PDWORD, PDWORD); 
    2440         BOOL GetThreadIOPendingFlag(HANDLE, PBOOL); 
    2441         HANDLE ReOpenFile(HANDLE, DWORD, DWORD, DWORD); 
    2442         BOOL SetDllDirectoryA(LPCSTR); 
    2443         BOOL SetDllDirectoryW(LPCWSTR); 
    2444         BOOL SetFirmwareEnvironmentVariableA(LPCSTR, LPCSTR, PVOID, DWORD); 
    2445         BOOL SetFirmwareEnvironmentVariableW(LPCWSTR, LPCWSTR, PVOID, DWORD); 
    2446     } 
    2447  
     2429    } 
     2430 
     2431    // ??? 
    24482432    static if (_WIN32_WINNT >= 0x0510) { 
    24492433        VOID RestoreLastError(DWORD); 
     
    25352519    alias lstrlenW lstrlen; 
    25362520    alias MoveFileW MoveFile; 
    2537     alias MoveFileExW MoveFileEx; 
    2538     alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm; 
    2539     alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm; 
    2540     alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm; 
    2541     alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm; 
    2542     alias OpenBackupEventLogW OpenBackupEventLog; 
    25432521    alias OpenEventW OpenEvent; 
    2544     alias OpenEventLogW OpenEventLog; 
    2545     alias OpenFileMappingW OpenFileMapping; 
    25462522    alias OpenMutexW OpenMutex; 
    25472523    alias OpenSemaphoreW OpenSemaphore; 
    25482524    alias OutputDebugStringW OutputDebugString; 
    2549     alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm; 
    2550     alias QueryDosDeviceW QueryDosDevice; 
    2551     alias ReadEventLogW ReadEventLog; 
    2552     alias RegisterEventSourceW RegisterEventSource; 
    25532525    alias RemoveDirectoryW RemoveDirectory; 
    2554     alias ReportEventW ReportEvent; 
    25552526    alias SearchPathW SearchPath; 
    25562527    alias SetComputerNameW SetComputerName; 
     
    25592530    alias SetEnvironmentVariableW SetEnvironmentVariable; 
    25602531    alias SetFileAttributesW SetFileAttributes; 
    2561     alias SetFileSecurityW SetFileSecurity; 
    25622532    alias SetVolumeLabelW SetVolumeLabel; 
    2563     alias UpdateResourceW UpdateResource; 
    2564     alias VerifyVersionInfoW VerifyVersionInfo; 
    25652533    alias WaitNamedPipeW WaitNamedPipe; 
    25662534    alias WritePrivateProfileSectionW WritePrivateProfileSection; 
     
    25732541        alias CreateWaitableTimerW CreateWaitableTimer; 
    25742542        alias GetFileAttributesExW GetFileAttributesEx; 
     2543        alias GetLongPathNameW GetLongPathName; 
     2544        alias QueryDosDeviceW QueryDosDevice; 
    25752545    } 
    25762546 
     
    25932563        alias LookupPrivilegeNameW LookupPrivilegeName; 
    25942564        alias LookupPrivilegeValueW LookupPrivilegeValue; 
     2565        alias MoveFileExW MoveFileEx; 
     2566        alias ObjectCloseAuditAlarmW ObjectCloseAuditAlarm; 
     2567        alias ObjectDeleteAuditAlarmW ObjectDeleteAuditAlarm; 
     2568        alias ObjectOpenAuditAlarmW ObjectOpenAuditAlarm; 
     2569        alias ObjectPrivilegeAuditAlarmW ObjectPrivilegeAuditAlarm; 
     2570        alias OpenBackupEventLogW OpenBackupEventLog; 
     2571        alias OpenEventLogW OpenEventLog; 
     2572        alias PrivilegedServiceAuditAlarmW PrivilegedServiceAuditAlarm; 
     2573        alias ReadEventLogW ReadEventLog; 
     2574        alias RegisterEventSourceW RegisterEventSource; 
     2575        alias ReportEventW ReportEvent; 
     2576        alias SetFileSecurityW SetFileSecurity; 
     2577        alias UpdateResourceW UpdateResource; 
    25952578 
    25962579        static if (_WIN32_WINNT >= 0x500) { 
    25972580            alias CreateFileMappingW CreateFileMapping; 
     2581&nbs