# File lib/facter/util/windows/process.rb, line 104 def os_version(&block) FFI::MemoryPointer.new(OSVERSIONINFOEX.size) do |ver_ptr| ver = OSVERSIONINFOEX.new(ver_ptr) ver[:dwOSVersionInfoSize] = OSVERSIONINFOEX.size result = RtlGetVersion(ver_ptr) if result != STATUS_SUCCESS raise RuntimeError, 'Calling Windows RtlGetVersion failed' end yield ver end # ver_ptr has already had free called, so nothing to return nil end