    # File lib/chef/win32/security.rb, line 151
          def self.get_named_security_info(path, type = :SE_FILE_OBJECT, info = OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION)
            security_descriptor = FFI::MemoryPointer.new :pointer
            hr = GetNamedSecurityInfoW(path.to_wstring, type, info, nil, nil, nil, nil, security_descriptor)
            if hr != ERROR_SUCCESS
              Chef::ReservedNames::Win32::Error.raise!("get_named_security_info(#{path}, #{type}, #{info})")
            end

            result_pointer = security_descriptor.read_pointer
            result = SecurityDescriptor.new(result_pointer)

            # This memory has to be freed with LocalFree.
            ObjectSpace.define_finalizer(result, Memory.local_free_finalizer(result_pointer))

            result
          end