parameters: (self, lpBaseAddress, nSize)
return_statement: return data
docstring: Reads from the memory of the process.
  
          @see: L{peek}
  
          @type  lpBaseAddress: int
          @param lpBaseAddress: Memory address to begin reading.
  
          @type  nSize: int
          @param nSize: Number of bytes to read.
  
          @rtype:  str
          @return: Bytes read from the process memory.
  
          @raise WindowsError: On error an exception is raised.
docstring_summary: Reads from the memory of the process.
docstring_tokens: Reads from the memory of the process .
function: def read(self, lpBaseAddress, nSize):
          """
          Reads from the memory of the process.
  
          @see: L{peek}
  
          @type  lpBaseAddress: int
          @param lpBaseAddress: Memory address to begin reading.
  
          @type  nSize: int
          @param nSize: Number of bytes to read.
  
          @rtype:  str
          @return: Bytes read from the process memory.
  
          @raise WindowsError: On error an exception is raised.
          """
          hProcess = self.get_handle( win32.PROCESS_VM_READ |
                                      win32.PROCESS_QUERY_INFORMATION )
          if not self.is_buffer(lpBaseAddress, nSize):
              raise ctypes.WinError(win32.ERROR_INVALID_ADDRESS)
          data = win32.ReadProcessMemory(hProcess, lpBaseAddress, nSize)
          if len(data) != nSize:
              raise ctypes.WinError()
          return data
function_tokens: def read ( self , lpBaseAddress , nSize ) : hProcess = self . get_handle ( win32 . PROCESS_VM_READ | win32 . PROCESS_QUERY_INFORMATION ) if not self . is_buffer ( lpBaseAddress , nSize ) : raise ctypes . WinError ( win32 . ERROR_INVALID_ADDRESS ) data = win32 . ReadProcessMemory ( hProcess , lpBaseAddress , nSize ) if len ( data ) != nSize : raise ctypes . WinError ( ) return data