def ReadBytes(self, address, num_bytes):
    """Reads at most num_bytes starting from offset <address>."""
    address = int(address)
    buf = ctypes.create_string_buffer(num_bytes)
    bytesread = ctypes.c_size_t(0)
    res = ReadProcessMemory(self.h_process, address, buf, num_bytes,
                            ctypes.byref(bytesread))
    if res == 0:
      err = wintypes.GetLastError()
      if err == 299:
        # Only part of ReadProcessMemory has been done, let's return it.
        return buf.raw[:bytesread.value]
      raise process_error.ProcessError("Error in ReadProcessMemory: %d" % err)

    return buf.raw[:bytesread.value]
def ReadBytes ( self , address , num_bytes ) : address = int ( address ) buf = ctypes . create_string_buffer ( num_bytes ) bytesread = ctypes . c_size_t ( 0 ) res = ReadProcessMemory ( self . h_process , address , buf , num_bytes , ctypes . byref ( bytesread ) ) if res == 0 : err = wintypes . GetLastError ( ) if err == 299 : return buf . raw [ : bytesread . value ] raise process_error . ProcessError ( "Error in ReadProcessMemory: %d" % err ) return buf . raw [ : bytesread . value ]
Reads at most num_bytes starting from offset <address>.