Method: Chef::ReservedNames::Win32::Security.get_security_descriptor_owner

Defined in:
lib/chef/win32/security.rb

.get_security_descriptor_owner(security_descriptor) ⇒ Object



343
344
345
346
347
348
349
350
351
352
353
354
# File 'lib/chef/win32/security.rb', line 343

def self.get_security_descriptor_owner(security_descriptor)
  security_descriptor = security_descriptor.pointer if security_descriptor.respond_to?(:pointer)
  result = FFI::Buffer.new :pointer
  defaulted = FFI::Buffer.new :long
  unless GetSecurityDescriptorOwner(security_descriptor, result, defaulted)
    Chef::ReservedNames::Win32::Error.raise!
  end

  sid = SID.new(result.read_pointer, security_descriptor)
  defaulted = defaulted.read_char != 0
  [ sid, defaulted ]
end