diff options
Diffstat (limited to 'version/os_windows.go')
-rw-r--r-- | version/os_windows.go | 35 |
1 files changed, 3 insertions, 32 deletions
diff --git a/version/os_windows.go b/version/os_windows.go index 2f5e8d44..70d3e82f 100644 --- a/version/os_windows.go +++ b/version/os_windows.go @@ -7,8 +7,8 @@ package version import ( "fmt" - "unsafe" + "golang.org/x/sys/windows" "golang.org/x/sys/windows/registry" ) @@ -167,35 +167,9 @@ const ( PRODUCT_UNLICENSED = 0xABCDABCD ) -type OsVersionInfo struct { - osVersionInfoSize uint32 - MajorVersion uint32 - MinorVersion uint32 - BuildNumber uint32 - PlatformId uint32 - CsdVersion [128]uint16 - ServicePackMajor uint16 - ServicePackMinor uint16 - SuiteMask uint16 - ProductType byte - _ byte -} - -//sys rtlGetVersion(versionInfo *OsVersionInfo) (err error) [failretval!=0] = ntdll.RtlGetVersion - -func OsVersion() (versionInfo OsVersionInfo, err error) { - versionInfo.osVersionInfoSize = uint32(unsafe.Sizeof(versionInfo)) - err = rtlGetVersion(&versionInfo) - return -} func OsIsCore() bool { - versionInfo := OsVersionInfo{osVersionInfoSize: uint32(unsafe.Sizeof(OsVersionInfo{}))} - err := rtlGetVersion(&versionInfo) - if err != nil { - return false - } - + versionInfo := windows.RtlGetVersion() if versionInfo.MajorVersion > 6 || (versionInfo.MajorVersion == 6 && versionInfo.MinorVersion >= 2) { k, err := registry.OpenKey(registry.LOCAL_MACHINE, `Software\Microsoft\Windows NT\CurrentVersion\Server\ServerLevels`, registry.READ) if err != nil { @@ -219,10 +193,7 @@ func OsIsCore() bool { } func OsName() string { - versionInfo, err := OsVersion() - if err != nil { - return "Windows Unknown" - } + versionInfo := windows.RtlGetVersion() winType := "" switch versionInfo.ProductType { case 3: |