summaryrefslogtreecommitdiff
path: root/vendor/winapi/src/um/sysinfoapi.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/winapi/src/um/sysinfoapi.rs')
-rw-r--r--vendor/winapi/src/um/sysinfoapi.rs217
1 files changed, 217 insertions, 0 deletions
diff --git a/vendor/winapi/src/um/sysinfoapi.rs b/vendor/winapi/src/um/sysinfoapi.rs
new file mode 100644
index 0000000..03bdb47
--- /dev/null
+++ b/vendor/winapi/src/um/sysinfoapi.rs
@@ -0,0 +1,217 @@
+// Licensed under the Apache License, Version 2.0
+// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option.
+// All files in the project carrying such notice may not be copied, modified, or distributed
+// except according to those terms.
+//! ApiSet Contract for api-ms-win-core-sysinfo-l1.
+use shared::basetsd::DWORD_PTR;
+use shared::minwindef::{
+ BOOL, BYTE, DWORD, LPDWORD, LPFILETIME, LPVOID, PBOOL, PDWORD, UINT, USHORT, WORD,
+};
+use um::minwinbase::{LPSYSTEMTIME, SYSTEMTIME};
+use um::winnt::{
+ DWORDLONG, HANDLE, LOGICAL_PROCESSOR_RELATIONSHIP, LPCSTR, LPCWSTR, LPOSVERSIONINFOA,
+ LPOSVERSIONINFOW, LPSTR, LPWSTR, PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,
+ PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION, PULONGLONG, PVOID, ULONGLONG,
+};
+STRUCT!{struct SYSTEM_INFO_u_s {
+ wProcessorArchitecture: WORD,
+ wReserved: WORD,
+}}
+UNION!{union SYSTEM_INFO_u {
+ [u32; 1],
+ dwOemId dwOemId_mut: DWORD,
+ s s_mut: SYSTEM_INFO_u_s,
+}}
+STRUCT!{struct SYSTEM_INFO {
+ u: SYSTEM_INFO_u,
+ dwPageSize: DWORD,
+ lpMinimumApplicationAddress: LPVOID,
+ lpMaximumApplicationAddress: LPVOID,
+ dwActiveProcessorMask: DWORD_PTR,
+ dwNumberOfProcessors: DWORD,
+ dwProcessorType: DWORD,
+ dwAllocationGranularity: DWORD,
+ wProcessorLevel: WORD,
+ wProcessorRevision: WORD,
+}}
+pub type LPSYSTEM_INFO = *mut SYSTEM_INFO;
+STRUCT!{struct MEMORYSTATUSEX {
+ dwLength: DWORD,
+ dwMemoryLoad: DWORD,
+ ullTotalPhys: DWORDLONG,
+ ullAvailPhys: DWORDLONG,
+ ullTotalPageFile: DWORDLONG,
+ ullAvailPageFile: DWORDLONG,
+ ullTotalVirtual: DWORDLONG,
+ ullAvailVirtual: DWORDLONG,
+ ullAvailExtendedVirtual: DWORDLONG,
+}}
+pub type LPMEMORYSTATUSEX = *mut MEMORYSTATUSEX;
+extern "system" {
+ pub fn GlobalMemoryStatusEx(
+ lpBuffer: LPMEMORYSTATUSEX,
+ ) -> BOOL;
+ pub fn GetSystemInfo(
+ lpSystemInfo: LPSYSTEM_INFO,
+ );
+ pub fn GetSystemTime(
+ lpSystemTime: LPSYSTEMTIME,
+ );
+ pub fn GetSystemTimeAsFileTime(
+ lpSystemTimeAsFileTime: LPFILETIME,
+ );
+ pub fn GetLocalTime(
+ lpSystemTime: LPSYSTEMTIME,
+ );
+ pub fn GetVersion() -> DWORD;
+ pub fn SetLocalTime(
+ lpSystemTime: *const SYSTEMTIME,
+ ) -> BOOL;
+ pub fn GetTickCount() -> DWORD;
+ pub fn GetTickCount64() -> ULONGLONG;
+ pub fn GetSystemTimeAdjustment(
+ lpTimeAdjustment: PDWORD,
+ lpTimeIncrement: PDWORD,
+ lpTimeAdjustmentDisabled: PBOOL,
+ ) -> BOOL;
+ pub fn GetSystemDirectoryA(
+ lpBuffer: LPSTR,
+ uSize: UINT,
+ ) -> UINT;
+ pub fn GetSystemDirectoryW(
+ lpBuffer: LPWSTR,
+ uSize: UINT,
+ ) -> UINT;
+ pub fn GetWindowsDirectoryA(
+ lpBuffer: LPSTR,
+ uSize: UINT,
+ ) -> UINT;
+ pub fn GetWindowsDirectoryW(
+ lpBuffer: LPWSTR,
+ uSize: UINT,
+ ) -> UINT;
+ pub fn GetSystemWindowsDirectoryA(
+ lpBuffer: LPSTR,
+ uSize: UINT,
+ ) -> UINT;
+ pub fn GetSystemWindowsDirectoryW(
+ lpBuffer: LPWSTR,
+ uSize: UINT,
+ ) -> UINT;
+}
+ENUM!{enum COMPUTER_NAME_FORMAT {
+ ComputerNameNetBIOS,
+ ComputerNameDnsHostname,
+ ComputerNameDnsDomain,
+ ComputerNameDnsFullyQualified,
+ ComputerNamePhysicalNetBIOS,
+ ComputerNamePhysicalDnsHostname,
+ ComputerNamePhysicalDnsDomain,
+ ComputerNamePhysicalDnsFullyQualified,
+ ComputerNameMax,
+}}
+extern "system" {
+ pub fn GetComputerNameExA(
+ NameType: COMPUTER_NAME_FORMAT,
+ lpBuffer: LPSTR,
+ nSize: LPDWORD,
+ ) -> BOOL;
+ pub fn GetComputerNameExW(
+ NameType: COMPUTER_NAME_FORMAT,
+ lpBuffer: LPWSTR,
+ nSize: LPDWORD,
+ ) -> BOOL;
+ pub fn SetComputerNameExW(
+ NameType: COMPUTER_NAME_FORMAT,
+ lpBuffer: LPCWSTR,
+ ) -> BOOL;
+ pub fn SetSystemTime(
+ lpSystemTime: *const SYSTEMTIME,
+ ) -> BOOL;
+ pub fn GetVersionExA(
+ lpVersionInformation: LPOSVERSIONINFOA,
+ ) -> BOOL;
+ pub fn GetVersionExW(
+ lpVersionInformation: LPOSVERSIONINFOW,
+ ) -> BOOL;
+ pub fn GetLogicalProcessorInformation(
+ Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,
+ ReturnedLength: PDWORD,
+ ) -> BOOL;
+ pub fn GetLogicalProcessorInformationEx(
+ RelationshipType: LOGICAL_PROCESSOR_RELATIONSHIP,
+ Buffer: PSYSTEM_LOGICAL_PROCESSOR_INFORMATION,
+ ReturnedLength: PDWORD,
+ ) -> BOOL;
+ pub fn GetNativeSystemInfo(
+ lpSystemInfo: LPSYSTEM_INFO,
+ );
+ pub fn GetSystemTimePreciseAsFileTime(
+ lpSystemTimeAsFileTime: LPFILETIME,
+ );
+ pub fn GetProductInfo(
+ dwOSMajorVersion: DWORD,
+ dwOSMinorVersion: DWORD,
+ dwSpMajorVersion: DWORD,
+ dwSpMinorVersion: DWORD,
+ pdwReturnedProductType: PDWORD,
+ ) -> BOOL;
+ pub fn VerSetConditionMask(
+ ConditionMask: ULONGLONG,
+ TypeMask: DWORD,
+ Condition: BYTE,
+ ) -> ULONGLONG;
+ // pub fn GetOsSafeBootMode();
+ pub fn EnumSystemFirmwareTables(
+ FirmwareTableProviderSignature: DWORD,
+ pFirmwareTableEnumBuffer: PVOID,
+ BufferSize: DWORD,
+ ) -> UINT;
+ pub fn GetSystemFirmwareTable(
+ FirmwareTableProviderSignature: DWORD,
+ FirmwareTableID: DWORD,
+ pFirmwareTableBuffer: PVOID,
+ BufferSize: DWORD,
+ ) -> UINT;
+ pub fn DnsHostnameToComputerNameExW(
+ Hostname: LPCWSTR,
+ ComputerName: LPWSTR,
+ nSize: LPDWORD,
+ ) -> BOOL;
+ pub fn GetPhysicallyInstalledSystemMemory(
+ TotalMemoryInKilobytes: PULONGLONG,
+ ) -> BOOL;
+}
+pub const SCEX2_ALT_NETBIOS_NAME: DWORD = 0x00000001;
+extern "system" {
+ pub fn SetComputerNameEx2W(
+ NameType: COMPUTER_NAME_FORMAT,
+ Flags: DWORD,
+ lpBuffer: LPCWSTR,
+ ) -> BOOL;
+ pub fn SetSystemTimeAdjustment(
+ dwTimeAdjustment: DWORD,
+ bTimeAdjustmentDisabled: BOOL,
+ ) -> BOOL;
+ pub fn InstallELAMCertificateInfo(
+ ELAMFile: HANDLE,
+ ) -> BOOL;
+ pub fn GetProcessorSystemCycleTime(
+ Group: USHORT,
+ Buffer: PSYSTEM_PROCESSOR_CYCLE_TIME_INFORMATION,
+ ReturnedLength: PDWORD,
+ ) -> BOOL;
+ // pub fn GetOsManufacturingMode();
+ // pub fn GetIntegratedDisplaySize();
+ pub fn SetComputerNameA(
+ lpComputerName: LPCSTR,
+ ) -> BOOL;
+ pub fn SetComputerNameW(
+ lpComputerName: LPCWSTR,
+ ) -> BOOL;
+ pub fn SetComputerNameExA(
+ NameType: COMPUTER_NAME_FORMAT,
+ lpBuffer: LPCSTR,
+ ) -> BOOL;
+}