IOMemoryDescriptor
IOMemoryDescriptor is an abstract base class in Apple's I/O Kit that describes a region of memory to be used in I/O operations. It encapsulates information about the memory's address, length, and applicable constraints, and can represent different kinds of memory, including kernel memory, user memory, or device-accessible memory. A descriptor may describe a single contiguous region or multiple segments, enabling flexible handling of various memory layouts.
The primary purpose of IOMemoryDescriptor is to allow drivers to specify the buffers involved in data transfer
Creation and usage of a descriptor typically involve factory methods that tailor the descriptor to the memory
Related concepts include IOBufferMemoryDescriptor and IOMemoryMap, which provide concrete implementations and mapping capabilities, and IOMemoryDescriptor work