code: def get_handle(self, dwDesiredAccess = win32.THREAD_ALL_ACCESS):
          
          if self.hThread in (None, win32.INVALID_HANDLE_VALUE):
              self.open_handle(dwDesiredAccess)
          else:
              dwAccess = self.hThread.dwAccess
              if (dwAccess | dwDesiredAccess) != dwAccess:
                  self.open_handle(dwAccess | dwDesiredAccess)
          return self.hThread
docs: Returns a handle to the thread with I{at least} the access rights
          requested.
  
          @note:
              If a handle was previously opened and has the required access
              rights, it's reused. If not, a new handle is opened with the
              combination of the old and new access rights.
  
          @type  dwDesiredAccess: int
          @param dwDesiredAccess: Desired access rights.
              See: U{http://msdn.microsoft.com/en-us/library/windows/desktop/ms686769(v=vs.85).aspx}
  
          @rtype:  ThreadHandle
          @return: Handle to the thread.
  
          @raise WindowsError: It's not possible to open a handle to the thread
              with the requested access rights. This tipically happens because
              the target thread belongs to system process and the debugger is not
              runnning with administrative rights.