class Chef::ReservedNames::Win32::Memory
Public Class Methods
local_alloc(length, flags = LPTR) { |result| ... }
click to toggle source
::local_alloc(length[, flags]) [BLOCK] Allocates memory using LocalAlloc If BLOCK is specified, the memory will be passed to the block and freed afterwards.
# File lib/chef/win32/memory.rb, line 32 def self.local_alloc(length, flags = LPTR, &block) result = LocalAlloc(flags, length) if result.null? Chef::ReservedNames::Win32::Error.raise! end # If a block is passed, handle freeing the memory at the end if block != nil begin yield result ensure local_free(result) end else result end end
local_discard(pointer)
click to toggle source
::local_discard(pointer) Discard memory. Equivalent to ::local_realloc(pointer, 0)
# File lib/chef/win32/memory.rb, line 51 def self.local_discard(pointer) local_realloc(pointer, 0, LMEM_MOVEABLE) end
local_flags(pointer)
click to toggle source
::local_flags(pointer) Get lock count and Windows flags for ::local_alloc allocated memory. Use: flags, lock_count = ::local_flags(pointer)
# File lib/chef/win32/memory.rb, line 58 def self.local_flags(pointer) result = LocalFlags(pointer) if result == LMEM_INVALID_HANDLE Chef::ReservedNames::Win32::Error.raise! end [ result & ~LMEM_LOCKCOUNT, result & LMEM_LOCKCOUNT ] end
local_free(pointer)
click to toggle source
::local_free(pointer) Free memory allocated using ::local_alloc
# File lib/chef/win32/memory.rb, line 68 def self.local_free(pointer) result = LocalFree(pointer) if !result.null? Chef::ReservedNames::Win32::Error.raise! end end
local_free_finalizer(pointer)
click to toggle source
# File lib/chef/win32/memory.rb, line 95 def self.local_free_finalizer(pointer) proc { local_free(pointer) } end
local_realloc(pointer, size, flags = LMEM_MOVEABLE | LMEM_ZEROINIT)
click to toggle source
::local_realloc(pointer, size[, flags]) Resizes memory allocated using LocalAlloc.
# File lib/chef/win32/memory.rb, line 77 def self.local_realloc(pointer, size, flags = LMEM_MOVEABLE | LMEM_ZEROINIT) result = LocalReAlloc(pointer, size, flags) if result.null? Chef::ReservedNames::Win32::Error.raise! end result end
local_size(pointer)
click to toggle source
::local_size(pointer) Gets the size of memory allocated using LocalAlloc.
# File lib/chef/win32/memory.rb, line 87 def self.local_size(pointer) result = LocalSize(pointer) if result == 0 Chef::ReservedNames::Win32::Error.raise! end result end