The requester and service module can reside either on separate execution environments, or on a single processor system. I 2 O also defines a neutral memory format, which provides independence for the host OS memory model. The OSM provides the interface between the host OS and the I 2 O Message Layer. The OSM translates requests from the host OS into messages that can be dispatched to the appropriate HDM for processing. HDM information is forwarded back to the host OS through the OSM via the I 2 O Message Layer.
Developers can also create host OSMs that works with multiple HDMs.
By implementing an OSM with a single message handle which services multiple queues from different service modules, a single OSM can send and service requests to and from multiple different devices. The HDM is the lowest-level module in the I 2 O environment. HDMs provide the device-specific portion of the driver that will interface with the particular controller and devices. HDMs are roughly analogous to the hardware-specific portion of the network and SCSI drivers that exist today. The HDM translation layer is unique to each individual hardware device and vendor, and supports a range of operation types, including synchronous and asynchronous requests, and event-driven and polled transactions.