# File lib/childprocess/windows/functions.rb, line 102
      def self.duplicate_handle(handle)
        dup  = FFI::MemoryPointer.new(:pointer)
        proc = current_process

        ok = _duplicate_handle(
          proc, handle, proc, dup, 0, false, DUPLICATE_SAME_ACCESS)

        ok or raise Error, last_error_message

        dup.read_pointer
      ensure
        close_handle proc
      end