Mechanisms for communicating with an I/O device or endpoint using a queue
data structure and pre-translated addresses associated with the queue
data structure are provided. With the mechanisms, a device driver invokes
device driver services for initializing address translation and
protection table (ATPT) entries in a root complex for the queue data
structure. The device driver services return untranslated addresses to
the device driver which are in turn provided to the I/O device or
endpoint. The I/O device or endpoint may then request a translation of
these untranslated addresses and store them in the I/O device or endpoint
prior to receiving an I/O operation targeting the queue data structure.
The cached translation may be used to directly access the queue data
structure from the I/O device or endpoint by bypassing the root complex's
address translation facilities.