The I2O driver model includes two parts: the OS Services Module (OSM), which interfaces to the host operating system's interface, and the Hardware Device Module (HDM), which interfaces with the particular device, media, or server that the driver must manage. These modules interface with each other through a communication system comprised of a message layer that sets up a communications session between two parties and a transport layer that defines how the two parties will share information.