code: def read_virtual_memory(self, cpu_id, address, size):
          
          if not isinstance(cpu_id, baseinteger):
              raise TypeError("cpu_id can only be an instance of type baseinteger")
          if not isinstance(address, baseinteger):
              raise TypeError("address can only be an instance of type baseinteger")
          if not isinstance(size, baseinteger):
              raise TypeError("size can only be an instance of type baseinteger")
          bytes_p = self._call("readVirtualMemory",
                       in_p=[cpu_id, address, size])
          return bytes_p
docs: Reads guest virtual memory, no side effects (MMIO++).
          
          This feature is not implemented in the 4.0.0 release but may show up
          in a dot release.
  
          in cpu_id of type int
              The identifier of the Virtual CPU.
  
          in address of type int
              The guest virtual address.
  
          in size of type int
              The number of bytes to read.
  
          return bytes_p of type str
              The bytes read.