Get windows kernel version directly from registry
This commit is contained in:
parent
5d8a2b9e0f
commit
91e57fb606
@ -69,20 +69,39 @@ func getVersionRevision() (uint16, error) {
|
|||||||
|
|
||||||
// getKernelVersion gets the version of windows kernel.
|
// getKernelVersion gets the version of windows kernel.
|
||||||
func getKernelVersion() (string, error) {
|
func getKernelVersion() (string, error) {
|
||||||
ver, err := windows.GetVersion()
|
// Get CurrentBuildNumber.
|
||||||
|
buildNumber, err := getCurrentVersionVal("CurrentBuildNumber")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Get CurrentMajorVersionNumber.
|
||||||
|
majorVersionNumberString, err := getCurrentVersionVal("CurrentMajorVersionNumber")
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
majorVersionNumber, err := windows.UTF16FromString(majorVersionNumberString)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get CurrentMinorVersionNumber.
|
||||||
|
minorVersionNumberString, err := getCurrentVersionVal("CurrentMinorVersionNumber")
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
minorVersionNumber, err := windows.UTF16FromString(minorVersionNumberString)
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get UBR.
|
||||||
revision, err := getVersionRevision()
|
revision, err := getVersionRevision()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
|
|
||||||
major := ver & 0xFF
|
return fmt.Sprintf("%d.%d.%s.%d\n", majorVersionNumber[0], minorVersionNumber[0], buildNumber, revision), nil
|
||||||
minor := (ver >> 8) & 0xFF
|
|
||||||
build := (ver >> 16) & 0xFFFF
|
|
||||||
return fmt.Sprintf("%d.%d.%05d.%d\n", major, minor, build, revision), nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// getOSImageVersion gets the osImage name and version.
|
// getOSImageVersion gets the osImage name and version.
|
||||||
|
Loading…
Reference in New Issue
Block a user