Class: RightScale::Platform::WindowsSystemInformation

Inherits:
PlatformHelperBase show all
Defined in:
lib/right_agent/platform/windows/platform.rb,
lib/right_agent/platform/windows/mingw/platform.rb,
lib/right_agent/platform/windows/mswin/platform.rb

Overview

WindowsSecurity

Defined Under Namespace

Classes: API, Version

Constant Summary

Constants inherited from PlatformHelperBase

PlatformHelperBase::API_FALSE, PlatformHelperBase::API_NULL, PlatformHelperBase::API_TRUE, PlatformHelperBase::SIZEOF_DWORD, PlatformHelperBase::SIZEOF_QWORD, PlatformHelperBase::WIDE

Instance Method Summary collapse

Methods inherited from PlatformHelperBase

#copy_to_string_buffer, #with_unicode_buffer

Constructor Details

#initializeWindowsSystemInformation

Returns a new instance of WindowsSystemInformation.



1710
1711
1712
1713
# File 'lib/right_agent/platform/windows/platform.rb', line 1710

def initialize
  @version = nil
  @os_version_info = nil
end

Instance Method Details

#create_os_version_infoObject

Overrides base WindowsSystemInformation#create_os_version_info



1756
1757
1758
# File 'lib/right_agent/platform/windows/platform.rb', line 1756

def create_os_version_info
  must_be_overridden
end

#GetVersionEx(version_info_buffer) ⇒ Object

Overrides base WindowsSystemInformation#GetVersionEx



1748
1749
1750
# File 'lib/right_agent/platform/windows/platform.rb', line 1748

def GetVersionEx(version_info_buffer)
  must_be_overridden
end

#os_version_infoArray

Returns members of queried OSVERSIONINFO struct.

Returns:

  • (Array)

    members of queried OSVERSIONINFO struct



1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
# File 'lib/right_agent/platform/windows/platform.rb', line 1728

def os_version_info
  unless @os_version_info
    buffer = create_os_version_info
    unless GetVersionEx(buffer)
      raise ::RightScale::Platform::Win32Error,
            'Failed to query Windows version'
    end
    @os_version_info = unpack_os_version_info(buffer)
  end
  @os_version_info
end

#unpack_os_version_info(buffer) ⇒ Object

Overrides base WindowsSystemInformation#unpack_os_version_info



1763
1764
1765
# File 'lib/right_agent/platform/windows/platform.rb', line 1763

def unpack_os_version_info(buffer)
  must_be_overridden
end

#versionVersion

Returns version.

Returns:



1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
# File 'lib/right_agent/platform/windows/platform.rb', line 1716

def version
  unless @version
    osvi = os_version_info
    @version = ::RightScale::Platform::WindowsSystemInformation::Version.new(
      major = osvi[1],
      minor = osvi[2],
      build = osvi[3])
  end
  @version
end