'Schedules the ReadBuffer client action.'

@flow.StateHandler()
def Start(self):

    pathspec = rdf_paths.PathSpec(path='\\\\.\\PhysicalDrive0\\', pathtype=rdf_paths.PathSpec.PathType.OS, path_options=rdf_paths.PathSpec.Options.CASE_LITERAL)
    self.state.bytes_downloaded = 0
    self.state.buffers = []
    buffer_size = constants.CLIENT_MAX_BUFFER_SIZE
    buffers_we_need = (self.args.length / buffer_size)
    if (self.args.length % buffer_size):
        buffers_we_need += 1
    bytes_we_need = self.args.length
    for i in xrange(buffers_we_need):
        request = rdf_client.BufferReference(pathspec=pathspec, offset=(i * buffer_size), length=min(bytes_we_need, buffer_size))
        self.CallClient(server_stubs.ReadBuffer, request, next_state='StoreMBR')
        bytes_we_need -= buffer_size
