As the name suggests, these modules are designed to be the first and last elements of a modules chain. Access input and output handles most of the basic I/O for VLC. Protocol implementations, device access (like V4L2), file access and network I/O are all examples of access modules.
Generally speaking, access input will provide Read() functions and output Write(). Both needs to provide Seek() and Control() even if the underlying architecture does not support these actions. In this case, Seek() and Control() should return VLC_EGENERIC, although Control() might need to answer ACCESS_OUT_CONTROLS_PACE requests. See modules/access_output/http.c about using a source without seeking.