| 1 | /** |
| 2 | * This file is part of the mingw-w64 runtime package. |
| 3 | * No warranty is given; refer to the file DISCLAIMER within this package. |
| 4 | */ |
| 5 | #ifndef _SYSINFOAPI_H_ |
| 6 | #define _SYSINFOAPI_H_ |
| 7 | |
| 8 | #include <apiset.h> |
| 9 | #include <apisetcconv.h> |
| 10 | #include <minwindef.h> |
| 11 | #include <minwinbase.h> |
| 12 | |
| 13 | #ifdef __cplusplus |
| 14 | extern "C" { |
| 15 | #endif |
| 16 | |
| 17 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 18 | typedef struct _SYSTEM_INFO { |
| 19 | __C89_NAMELESS union { |
| 20 | DWORD dwOemId; |
| 21 | __C89_NAMELESS struct { |
| 22 | 	WORD wProcessorArchitecture; |
| 23 | 	WORD wReserved; |
| 24 | } DUMMYSTRUCTNAME; |
| 25 | } DUMMYUNIONNAME; |
| 26 | DWORD dwPageSize; |
| 27 | LPVOID lpMinimumApplicationAddress; |
| 28 | LPVOID lpMaximumApplicationAddress; |
| 29 | DWORD_PTR dwActiveProcessorMask; |
| 30 | DWORD dwNumberOfProcessors; |
| 31 | DWORD dwProcessorType; |
| 32 | DWORD dwAllocationGranularity; |
| 33 | WORD wProcessorLevel; |
| 34 | WORD wProcessorRevision; |
| 35 | } SYSTEM_INFO, *LPSYSTEM_INFO; |
| 36 | |
| 37 | WINBASEAPI VOID WINAPI GetSystemTime (LPSYSTEMTIME lpSystemTime); |
| 38 | WINBASEAPI VOID WINAPI GetSystemTimeAsFileTime (LPFILETIME lpSystemTimeAsFileTime); |
| 39 | WINBASEAPI VOID WINAPI GetLocalTime (LPSYSTEMTIME lpSystemTime); |
| 40 | WINBASEAPI VOID WINAPI GetNativeSystemInfo (LPSYSTEM_INFO lpSystemInfo); |
| 41 | #if _WIN32_WINNT >= 0x0600 |
| 42 | WINBASEAPI ULONGLONG WINAPI GetTickCount64 (VOID); |
| 43 | #endif |
| 44 | |
| 45 | #define USER_CET_ENVIRONMENT_WIN32_PROCESS 0x00000000 |
| 46 | #define USER_CET_ENVIRONMENT_SGX2_ENCLAVE 0x00000002 |
| 47 | #define USER_CET_ENVIRONMENT_VBS_ENCLAVE 0x00000010 |
| 48 | #define USER_CET_ENVIRONMENT_VBS_BASIC_ENCLAVE 0x00000011 |
| 49 | |
| 50 | #if (NTDDI_VERSION >= NTDDI_WIN10_VB) |
| 51 | WINBASEAPI WINBOOL WINAPI IsUserCetAvailableInEnvironment(DWORD UserCetEnvironment); |
| 52 | #endif |
| 53 | |
| 54 | #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */ |
| 55 | |
| 56 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) || _WIN32_WINNT >= _WIN32_WINNT_WIN10 |
| 57 | |
| 58 | typedef struct _MEMORYSTATUSEX { |
| 59 | DWORD dwLength; |
| 60 | DWORD dwMemoryLoad; |
| 61 | DWORDLONG ullTotalPhys; |
| 62 | DWORDLONG ullAvailPhys; |
| 63 | DWORDLONG ullTotalPageFile; |
| 64 | DWORDLONG ullAvailPageFile; |
| 65 | DWORDLONG ullTotalVirtual; |
| 66 | DWORDLONG ullAvailVirtual; |
| 67 | DWORDLONG ullAvailExtendedVirtual; |
| 68 | } MEMORYSTATUSEX,*LPMEMORYSTATUSEX; |
| 69 | |
| 70 | WINBASEAPI VOID WINAPI GetSystemInfo (LPSYSTEM_INFO lpSystemInfo); |
| 71 | WINBASEAPI WINBOOL WINAPI GlobalMemoryStatusEx (LPMEMORYSTATUSEX lpBuffer); |
| 72 | WINBASEAPI DWORD WINAPI GetTickCount (VOID); |
| 73 | WINBASEAPI VOID WINAPI GetSystemTimePreciseAsFileTime (LPFILETIME lpSystemTimeAsFileTime); |
| 74 | WINBASEAPI WINBOOL WINAPI GetVersionExA (LPOSVERSIONINFOA lpVersionInformation); |
| 75 | WINBASEAPI WINBOOL WINAPI GetVersionExW (LPOSVERSIONINFOW lpVersionInformation); |
| 76 | |
| 77 | #endif |
| 78 | |
| 79 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP) |
| 80 | typedef enum _COMPUTER_NAME_FORMAT { |
| 81 | ComputerNameNetBIOS, |
| 82 | ComputerNameDnsHostname, |
| 83 | ComputerNameDnsDomain, |
| 84 | ComputerNameDnsFullyQualified, |
| 85 | ComputerNamePhysicalNetBIOS, |
| 86 | ComputerNamePhysicalDnsHostname, |
| 87 | ComputerNamePhysicalDnsDomain, |
| 88 | ComputerNamePhysicalDnsFullyQualified, |
| 89 | ComputerNameMax |
| 90 | } COMPUTER_NAME_FORMAT; |
| 91 | |
| 92 | WINBASEAPI DWORD WINAPI GetVersion (VOID); |
| 93 | |
| 94 | WINBASEAPI WINBOOL WINAPI SetLocalTime (CONST SYSTEMTIME *lpSystemTime); |
| 95 | WINBASEAPI WINBOOL WINAPI GetSystemTimeAdjustment (PDWORD lpTimeAdjustment, PDWORD lpTimeIncrement, PBOOL lpTimeAdjustmentDisabled); |
| 96 | WINBASEAPI UINT WINAPI GetWindowsDirectoryA (LPSTR lpBuffer, UINT uSize); |
| 97 | WINBASEAPI UINT WINAPI GetWindowsDirectoryW (LPWSTR lpBuffer, UINT uSize); |
| 98 | WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryA (LPSTR lpBuffer, UINT uSize); |
| 99 | WINBASEAPI UINT WINAPI GetSystemWindowsDirectoryW (LPWSTR lpBuffer, UINT uSize); |
| 100 | WINBASEAPI WINBOOL WINAPI GetComputerNameExA (COMPUTER_NAME_FORMAT NameType, LPSTR lpBuffer, LPDWORD nSize); |
| 101 | WINBASEAPI WINBOOL WINAPI GetComputerNameExW (COMPUTER_NAME_FORMAT NameType, LPWSTR lpBuffer, LPDWORD nSize); |
| 102 | WINBASEAPI WINBOOL WINAPI SetComputerNameExW (COMPUTER_NAME_FORMAT NameType, LPCWSTR lpBuffer); |
| 103 | WINBASEAPI WINBOOL WINAPI SetSystemTime (CONST SYSTEMTIME *lpSystemTime); |
| 104 | NTSYSAPI ULONGLONG NTAPI VerSetConditionMask (ULONGLONG ConditionMask, ULONG TypeMask, UCHAR Condition); |
| 105 | #if _WIN32_WINNT >= 0x0601 |
| 106 | WINBASEAPI WINBOOL WINAPI GetOsSafeBootMode (PDWORD Flags); |
| 107 | #endif |
| 108 | |
| 109 | #define GetSystemDirectory __MINGW_NAME_AW(GetSystemDirectory) |
| 110 | #define GetWindowsDirectory __MINGW_NAME_AW(GetWindowsDirectory) |
| 111 | #define GetSystemWindowsDirectory __MINGW_NAME_AW(GetSystemWindowsDirectory) |
| 112 | #define GetComputerNameEx __MINGW_NAME_AW(GetComputerNameEx) |
| 113 | #define GetVersionEx __MINGW_NAME_AW(GetVersionEx) |
| 114 | |
| 115 | #ifdef UNICODE |
| 116 | #define SetComputerNameEx SetComputerNameExW |
| 117 | #endif |
| 118 | #elif defined(WINSTORECOMPAT) |
| 119 | WINBASEAPI DWORD WINAPI GetTickCount (VOID); |
| 120 | #endif |
| 121 | |
| 122 | #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP) |
| 123 | WINBASEAPI UINT WINAPI GetSystemDirectoryA (LPSTR lpBuffer, UINT uSize); |
| 124 | WINBASEAPI UINT WINAPI GetSystemDirectoryW (LPWSTR lpBuffer, UINT uSize); |
| 125 | WINBASEAPI WINBOOL WINAPI GetLogicalProcessorInformation (PSYSTEM_LOGICAL_PROCESSOR_INFORMATION Buffer, PDWORD ReturnedLength); |
| 126 | WINBASEAPI UINT WINAPI EnumSystemFirmwareTables (DWORD FirmwareTableProviderSignature, PVOID pFirmwareTableEnumBuffer, DWORD BufferSize); |
| 127 | WINBASEAPI UINT WINAPI GetSystemFirmwareTable (DWORD FirmwareTableProviderSignature, DWORD FirmwareTableID, PVOID pFirmwareTableBuffer, DWORD BufferSize); |
| 128 | #if _WIN32_WINNT >= 0x0600 |
| 129 | WINBASEAPI WINBOOL WINAPI GetProductInfo (DWORD dwOSMajorVersion, DWORD dwOSMinorVersion, DWORD dwSpMajorVersion, DWORD dwSpMinorVersion, PDWORD pdwReturnedProductType); |
| 130 | #endif |
| 131 | #if _WIN32_WINNT >= 0x0601 |
| 132 | WINBASEAPI WINBOOL WINAPI GetLogicalProcessorInformationEx (LOGICAL_PROCESSOR_RELATIONSHIP RelationshipType, PSYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX Buffer, PDWORD ReturnedLength); |
| 133 | #endif |
| 134 | #endif |
| 135 | |
| 136 | #ifdef __cplusplus |
| 137 | } |
| 138 | #endif |
| 139 | #endif |