Diff

Not logged in

Differences From Artifact [217222ad3190ccc6]:

To Artifact [0db4dca1f0f739a5]:


40 40 alias long* PLONGLONG; 41 41 alias ulong* PDWORDLONG, PULONGLONG; 42 42 43 43 // FIXME(MinGW) for __WIN64 44 44 alias void* PVOID64; 45 45 46 46 // const versions 47 -alias CPtr!(char) LPCCH, PCSTR, LPCSTR; 48 -alias CPtr!(wchar) LPCWCH, PCWCH, LPCWSTR, PCWSTR; 47 +alias const(char)* LPCCH, PCSTR, LPCSTR; 48 +alias const(wchar)* LPCWCH, PCWCH, LPCWSTR, PCWSTR; 49 49 50 50 version (Unicode) { 51 51 alias WCHAR TCHAR, _TCHAR; 52 52 } else { 53 53 alias CHAR TCHAR, _TCHAR; 54 54 } 55 55 56 -alias TCHAR TBYTE; 57 -alias TCHAR* PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR; 58 -alias CPtr!(TCHAR) LPCTSTR; 56 +alias TCHAR TBYTE; 57 +alias TCHAR* PTCH, PTBYTE, LPTCH, PTSTR, LPTSTR, LP, PTCHAR; 58 +alias const(TCHAR)* LPCTSTR; 59 59 60 60 const char ANSI_NULL = '\0'; 61 61 const wchar UNICODE_NULL = '\0'; 62 62 63 63 const APPLICATION_ERROR_MASK = 0x20000000; 64 64 const ERROR_SEVERITY_SUCCESS = 0x00000000; 65 65 const ERROR_SEVERITY_INFORMATIONAL = 0x40000000; ................................................................................ 982 982 KEY_NOTIFY = 0x000010, 983 983 KEY_CREATE_LINK = 0x000020, 984 984 KEY_WRITE = 0x020006, 985 985 KEY_EXECUTE = 0x020019, 986 986 KEY_READ = 0x020019, 987 987 KEY_ALL_ACCESS = 0x0F003F; 988 988 989 -static if (WINVER >= 0x502) { 989 +static if (_WIN32_WINNT >= 0x502) { 990 990 const ACCESS_MASK 991 991 KEY_WOW64_64KEY = 0x000100, 992 992 KEY_WOW64_32KEY = 0x000200; 993 993 } 994 994 995 995 const DWORD 996 996 REG_WHOLE_HIVE_VOLATILE = 1, ................................................................................ 1871 1871 WT_EXECUTEINWAITTHREAD = 0x00000004, 1872 1872 WT_EXECUTEONLYONCE = 0x00000008, 1873 1873 WT_EXECUTELONGFUNCTION = 0x00000010, 1874 1874 WT_EXECUTEINTIMERTHREAD = 0x00000020, 1875 1875 WT_EXECUTEINPERSISTENTTHREAD = 0x00000080, 1876 1876 WT_TRANSFER_IMPERSONATION = 0x00000100; 1877 1877 1878 -static if (_WIN32_WINNT_ONLY) { 1879 - static if (_WIN32_WINNT >= 0x500) { 1880 - const DWORD 1881 - VER_MINORVERSION = 0x01, 1882 - VER_MAJORVERSION = 0x02, 1883 - VER_BUILDNUMBER = 0x04, 1884 - VER_PLATFORMID = 0x08, 1885 - VER_SERVICEPACKMINOR = 0x10, 1886 - VER_SERVICEPACKMAJOR = 0x20, 1887 - VER_SUITENAME = 0x40, 1888 - VER_PRODUCT_TYPE = 0x80; 1889 - 1890 - enum : DWORD { 1891 - VER_EQUAL = 1, 1892 - VER_GREATER, 1893 - VER_GREATER_EQUAL, 1894 - VER_LESS, 1895 - VER_LESS_EQUAL, 1896 - VER_AND, 1897 - VER_OR // = 7 1898 - } 1899 - } 1900 - 1901 - static if (_WIN32_WINNT >= 0x501) { 1902 - enum : ULONG { 1903 - ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1, 1904 - ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, 1905 - ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, 1906 - ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION, 1907 - ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION, 1908 - ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION, 1909 - ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 7 1910 - ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES = 9 1911 - } 1878 +static if (_WIN32_WINNT >= 0x500) { 1879 + const DWORD 1880 + VER_MINORVERSION = 0x01, 1881 + VER_MAJORVERSION = 0x02, 1882 + VER_BUILDNUMBER = 0x04, 1883 + VER_PLATFORMID = 0x08, 1884 + VER_SERVICEPACKMINOR = 0x10, 1885 + VER_SERVICEPACKMAJOR = 0x20, 1886 + VER_SUITENAME = 0x40, 1887 + VER_PRODUCT_TYPE = 0x80; 1888 + 1889 + enum : DWORD { 1890 + VER_EQUAL = 1, 1891 + VER_GREATER, 1892 + VER_GREATER_EQUAL, 1893 + VER_LESS, 1894 + VER_LESS_EQUAL, 1895 + VER_AND, 1896 + VER_OR // = 7 1897 + } 1898 +} 1899 + 1900 +static if (_WIN32_WINNT >= 0x501) { 1901 + enum : ULONG { 1902 + ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION = 1, 1903 + ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION, 1904 + ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION, 1905 + ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION, 1906 + ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION, 1907 + ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION, 1908 + ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION, // = 7 1909 + ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES = 9 1912 1910 } 1913 1911 } 1914 1912 1915 1913 // Macros 1916 1914 BYTE BTYPE(BYTE x) { return cast(BYTE) (x & N_BTMASK); } 1917 1915 bool ISPTR(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT); } 1918 1916 bool ISFCN(uint x) { return (x & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT); } ................................................................................ 2117 2115 DWORD Eip; 2118 2116 DWORD SegCs; 2119 2117 DWORD EFlags; 2120 2118 DWORD Esp; 2121 2119 DWORD SegSs; 2122 2120 BYTE[MAXIMUM_SUPPORTED_EXTENSION] ExtendedRegisters; 2123 2121 } 2122 + 2123 +} else version(X86_64) 2124 +{ 2125 + const CONTEXT_AMD64 = 0x100000; 2126 + 2127 + const CONTEXT_CONTROL = (CONTEXT_AMD64 | 0x1L); 2128 + const CONTEXT_INTEGER = (CONTEXT_AMD64 | 0x2L); 2129 + const CONTEXT_SEGMENTS = (CONTEXT_AMD64 | 0x4L); 2130 + const CONTEXT_FLOATING_POINT = (CONTEXT_AMD64 | 0x8L); 2131 + const CONTEXT_DEBUG_REGISTERS = (CONTEXT_AMD64 | 0x10L); 2132 + 2133 + const CONTEXT_FULL = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_FLOATING_POINT); 2134 + const CONTEXT_ALL = (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS | CONTEXT_FLOATING_POINT | CONTEXT_DEBUG_REGISTERS); 2135 + 2136 + const CONTEXT_EXCEPTION_ACTIVE = 0x8000000; 2137 + const CONTEXT_SERVICE_ACTIVE = 0x10000000; 2138 + const CONTEXT_EXCEPTION_REQUEST = 0x40000000; 2139 + const CONTEXT_EXCEPTION_REPORTING = 0x80000000; 2140 + 2141 + const INITIAL_MXCSR = 0x1f80; 2142 + const INITIAL_FPCSR = 0x027f; 2143 + 2144 + align(16) struct M128A 2145 + { 2146 + ULONGLONG Low; 2147 + LONGLONG High; 2148 + } 2149 + alias M128A* PM128A; 2150 + 2151 + struct XMM_SAVE_AREA32 2152 + { 2153 + WORD ControlWord; 2154 + WORD StatusWord; 2155 + BYTE TagWord; 2156 + BYTE Reserved1; 2157 + WORD ErrorOpcode; 2158 + DWORD ErrorOffset; 2159 + WORD ErrorSelector; 2160 + WORD Reserved2; 2161 + DWORD DataOffset; 2162 + WORD DataSelector; 2163 + WORD Reserved3; 2164 + DWORD MxCsr; 2165 + DWORD MxCsr_Mask; 2166 + M128A[8] FloatRegisters; 2167 + M128A[16] XmmRegisters; 2168 + BYTE[96] Reserved4; 2169 + } 2170 + alias XMM_SAVE_AREA32 PXMM_SAVE_AREA32; 2171 + const LEGACY_SAVE_AREA_LENGTH = XMM_SAVE_AREA32.sizeof; 2172 + 2173 + align(16) struct CONTEXT 2174 + { 2175 + DWORD64 P1Home; 2176 + DWORD64 P2Home; 2177 + DWORD64 P3Home; 2178 + DWORD64 P4Home; 2179 + DWORD64 P5Home; 2180 + DWORD64 P6Home; 2181 + DWORD ContextFlags; 2182 + DWORD MxCsr; 2183 + WORD SegCs; 2184 + WORD SegDs; 2185 + WORD SegEs; 2186 + WORD SegFs; 2187 + WORD SegGs; 2188 + WORD SegSs; 2189 + DWORD EFlags; 2190 + DWORD64 Dr0; 2191 + DWORD64 Dr1; 2192 + DWORD64 Dr2; 2193 + DWORD64 Dr3; 2194 + DWORD64 Dr6; 2195 + DWORD64 Dr7; 2196 + DWORD64 Rax; 2197 + DWORD64 Rcx; 2198 + DWORD64 Rdx; 2199 + DWORD64 Rbx; 2200 + DWORD64 Rsp; 2201 + DWORD64 Rbp; 2202 + DWORD64 Rsi; 2203 + DWORD64 Rdi; 2204 + DWORD64 R8; 2205 + DWORD64 R9; 2206 + DWORD64 R10; 2207 + DWORD64 R11; 2208 + DWORD64 R12; 2209 + DWORD64 R13; 2210 + DWORD64 R14; 2211 + DWORD64 R15; 2212 + DWORD64 Rip; 2213 + union 2214 + { 2215 + XMM_SAVE_AREA32 FltSave; 2216 + XMM_SAVE_AREA32 FloatSave; 2217 + struct 2218 + { 2219 + M128A[2] Header; 2220 + M128A[8] Legacy; 2221 + M128A Xmm0; 2222 + M128A Xmm1; 2223 + M128A Xmm2; 2224 + M128A Xmm3; 2225 + M128A Xmm4; 2226 + M128A Xmm5; 2227 + M128A Xmm6; 2228 + M128A Xmm7; 2229 + M128A Xmm8; 2230 + M128A Xmm9; 2231 + M128A Xmm10; 2232 + M128A Xmm11; 2233 + M128A Xmm12; 2234 + M128A Xmm13; 2235 + M128A Xmm14; 2236 + M128A Xmm15; 2237 + }; 2238 + }; 2239 + M128A[26] VectorRegister; 2240 + DWORD64 VectorControl; 2241 + DWORD64 DebugControl; 2242 + DWORD64 LastBranchToRip; 2243 + DWORD64 LastBranchFromRip; 2244 + DWORD64 LastExceptionToRip; 2245 + DWORD64 LastExceptionFromRip; 2246 + } 2124 2247 2125 2248 } else { 2126 2249 static assert(false, "Unsupported CPU"); 2127 2250 // Versions for PowerPC, Alpha, SHX, and MIPS removed. 2128 2251 } 2129 2252 2130 2253 alias CONTEXT* PCONTEXT, LPCONTEXT; ................................................................................ 3568 3691 alias JOBOBJECT_EXTENDED_LIMIT_INFORMATION* PJOBOBJECT_EXTENDED_LIMIT_INFORMATION; 3569 3692 3570 3693 struct JOBOBJECT_JOBSET_INFORMATION { 3571 3694 DWORD MemberLevel; 3572 3695 } 3573 3696 alias JOBOBJECT_JOBSET_INFORMATION* PJOBOBJECT_JOBSET_INFORMATION; 3574 3697 3575 -// MinGW: Making these defines conditional on WINVER will break ddk includes 3576 -//static if (WINVER >= 0x0500) { 3698 +// MinGW: Making these defines conditional on _WIN32_WINNT will break ddk includes 3699 +//static if (_WIN32_WINNT >= 0x500) { 3577 3700 3578 3701 const DWORD 3579 3702 ES_SYSTEM_REQUIRED = 0x00000001, 3580 3703 ES_DISPLAY_REQUIRED = 0x00000002, 3581 3704 ES_USER_PRESENT = 0x00000004, 3582 3705 ES_CONTINUOUS = 0x80000000; 3583 3706 ................................................................................ 3609 3732 PowerActionShutdown, 3610 3733 PowerActionShutdownReset, 3611 3734 PowerActionShutdownOff, 3612 3735 PowerActionWarmEject 3613 3736 } 3614 3737 alias POWER_ACTION* PPOWER_ACTION; 3615 3738 3616 -static if (WINVER >= 0x600) { 3739 +static if (_WIN32_WINNT >= 0x600) { 3617 3740 enum SYSTEM_POWER_CONDITION { 3618 3741 PoAc, 3619 3742 PoDc, 3620 3743 PoHot, 3621 3744 PoConditionMaximum 3622 3745 } 3623 3746 alias SYSTEM_POWER_CONDITION* PSYSTEM_POWER_CONDITION; ................................................................................ 3841 3964 ULONG MinVideoTimeout; 3842 3965 ULONG MaxVideoTimeout; 3843 3966 ULONG MinSpindownTimeout; 3844 3967 ULONG MaxSpindownTimeout; 3845 3968 } 3846 3969 alias ADMINISTRATOR_POWER_POLICY* PADMINISTRATOR_POWER_POLICY; 3847 3970 3848 -//}//#endif /* WINVER >= 0x0500 */ 3971 +//}//#endif /* _WIN32_WINNT >= 0x500 */ 3849 3972 3850 3973 extern (Windows) { 3851 3974 alias void function(PVOID, DWORD, PVOID) PIMAGE_TLS_CALLBACK; 3852 3975 3853 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 3976 + static if (_WIN32_WINNT >= 0x500) { 3854 3977 alias LONG function(PEXCEPTION_POINTERS) PVECTORED_EXCEPTION_HANDLER; 3855 3978 alias void function(PVOID, BOOLEAN) WAITORTIMERCALLBACKFUNC; 3856 3979 } 3857 3980 } 3858 3981 3859 -static if (WINVER >= 0x501) { 3982 +static if (_WIN32_WINNT >= 0x501) { 3860 3983 enum HEAP_INFORMATION_CLASS { 3861 3984 HeapCompatibilityInformation 3862 3985 } 3863 3986 3864 3987 enum ACTIVATION_CONTEXT_INFO_CLASS { 3865 3988 ActivationContextBasicInformation = 1, 3866 3989 ActivationContextDetailedInformation, ................................................................................ 3886 4009 PCWSTR lpAssemblyEncodedAssemblyIdentity; 3887 4010 PCWSTR lpAssemblyManifestPath; 3888 4011 PCWSTR lpAssemblyPolicyPath; 3889 4012 PCWSTR lpAssemblyDirectoryName; 3890 4013 } 3891 4014 alias ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION* 3892 4015 PACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 3893 - alias CPtr!(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION) 4016 + alias const(ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION)* 3894 4017 PCACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION; 3895 4018 3896 4019 struct ACTIVATION_CONTEXT_DETAILED_INFORMATION { 3897 4020 DWORD dwFlags; 3898 4021 DWORD ulFormatVersion; 3899 4022 DWORD ulAssemblyCount; 3900 4023 DWORD ulRootManifestPathType; ................................................................................ 3905 4028 DWORD ulAppDirPathChars; 3906 4029 PCWSTR lpRootManifestPath; 3907 4030 PCWSTR lpRootConfigurationPath; 3908 4031 PCWSTR lpAppDirPath; 3909 4032 } 3910 4033 alias ACTIVATION_CONTEXT_DETAILED_INFORMATION* 3911 4034 PACTIVATION_CONTEXT_DETAILED_INFORMATION; 3912 - alias CPtr!(ACTIVATION_CONTEXT_DETAILED_INFORMATION) 4035 + alias const(ACTIVATION_CONTEXT_DETAILED_INFORMATION)* 3913 4036 PCACTIVATION_CONTEXT_DETAILED_INFORMATION; 3914 4037 3915 4038 struct ACTIVATION_CONTEXT_QUERY_INDEX { 3916 4039 ULONG ulAssemblyIndex; 3917 4040 ULONG ulFileIndexInAssembly; 3918 4041 } 3919 - alias ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; 3920 - alias CPtr!(ACTIVATION_CONTEXT_QUERY_INDEX) PCACTIVATION_CONTEXT_QUERY_INDEX; 4042 + alias ACTIVATION_CONTEXT_QUERY_INDEX* PACTIVATION_CONTEXT_QUERY_INDEX; 4043 + alias const(ACTIVATION_CONTEXT_QUERY_INDEX)* PCACTIVATION_CONTEXT_QUERY_INDEX; 3921 4044 3922 4045 struct ASSEMBLY_FILE_DETAILED_INFORMATION { 3923 4046 DWORD ulFlags; 3924 4047 DWORD ulFilenameLength; 3925 4048 DWORD ulPathLength; 3926 4049 PCWSTR lpFileName; 3927 4050 PCWSTR lpFilePath; 3928 4051 } 3929 4052 alias ASSEMBLY_FILE_DETAILED_INFORMATION* 3930 4053 PASSEMBLY_FILE_DETAILED_INFORMATION; 3931 - alias CPtr!(ASSEMBLY_FILE_DETAILED_INFORMATION) 4054 + alias const(ASSEMBLY_FILE_DETAILED_INFORMATION)* 3932 4055 PCASSEMBLY_FILE_DETAILED_INFORMATION; 3933 4056 } 3934 4057 3935 4058 version (Unicode) { 3936 4059 alias OSVERSIONINFOW OSVERSIONINFO; 3937 4060 alias OSVERSIONINFOEXW OSVERSIONINFOEX; 3938 4061 } else { ................................................................................ 3940 4063 alias OSVERSIONINFOEXA OSVERSIONINFOEX; 3941 4064 } 3942 4065 3943 4066 alias OSVERSIONINFO* POSVERSIONINFO, LPOSVERSIONINFO; 3944 4067 alias OSVERSIONINFOEX* POSVERSIONINFOEX, LPOSVERSIONINFOEX; 3945 4068 3946 4069 3947 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) { 4070 +static if (_WIN32_WINNT >= 0x500) { 3948 4071 extern (Windows) ULONGLONG VerSetConditionMask(ULONGLONG, DWORD, BYTE); 3949 4072 } 3950 4073 3951 4074 version (Win64) { 3952 4075 const WORD IMAGE_NT_OPTIONAL_HDR_MAGIC = IMAGE_NT_OPTIONAL_HDR64_MAGIC; 3953 4076 3954 4077 alias IMAGE_ORDINAL_FLAG64 IMAGE_ORDINAL_FLAG;