Memory descriptors are implemented by the
IOMemoryDescriptor class and is fundamental to working with memory in I/O Kit. The
class also serves as a super class for other important memory-related classes, which we will discuss later in this chapter. Many parts of the I/O Kit accept an
IOMemoryDescriptor as an argument. For example, the USB family uses the class to describe memory used for USB read and write requests.
IOMemoryDescriptor describes the properties of a memory buffer or range of memory, but does not allocate (or free) the described memory. It contains metadata and allows some operations to be performed on the memory. It can describe virtual and physical memory. The class is versatile and can be used for a number ...