Because files services have unique characteristics, the architecture of MMIO is stand-alone and separate from the notion of the media control interface, although some media drivers and file system stream handlers still require file services from MMIO.
When an application calls multimedia I/O functions, the MMIO Manager calls the appropriate I/O procedure (IOProc) if necessary, or processes the function within the MMIO Manager itself. The MMIO Manager uses IOProcs to direct the input and output associated with reading from and writing to different types of storage systems or file formats. IOProcs provide an abstract of the file format, allowing operations such as read, write, and seek to be independent of the specific format in use. The handler is responsible for translating a generic application request into the necessary format-specific operations.
The MMIO architecture provides for CODEC procedures to operate on data objects as required. A given file format I/O procedure might support none, one, or many CODEC procedures operating on a single format.
The following figure illustrates the architecture of the MMIO subsystem.
ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ MEDIA ³ ³ STREAM ³ ³APPLICATIONS³ ³ DRIVERS ³ ³ HANDLER ³ ÀÄÄÄÄÄÂÄÄÄÄÄÄÙ ÀÄÄÄÄÄÂÄÄÄÄÄÄÙ ÀÄÄÄÄÄÂÄÄÄÄÄÄÙ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ MMIO MANAGER ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³File Format IOProcs ³ ³ ³File Format IOProcs ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ WAVE ³ ³ ³ ³ ³ AVC image ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ CLI VOC ³ ³ ³ ³ ³M-Motion image ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ÃÄÄÄÄÄÅÄÄÄÄ´ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ AVC audio ³ ³ ³ ³ ³1.3 & 2.0 BMP ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ RMID & MID ³ ³ ³ ³ ³ RDIB & DIB ³ ³ ³ ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ AVI ³ ³ ³ ³ . ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ . ³ ³ ³ ³ ³ . ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Codec Procedures ÃÄÄÄÄÄÄÅÄÄÄÄÄ´ Codec Procedures ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ ³ ³ Ultimotion ³ ³ ³ ³ ³ Others ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ³ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ - - - - - - - - - - - - - - - - - ³ - - - - - - - - - - - - - - - ÚÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÁÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄ¿ ÚÄÄÄÄÄÄÄÄÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄ¿ÚÄÄÄÄÄÄÄÄÄÄ¿ System ³ DOS ³³ MEMORY ³³ COMPOUND ³³ OTHERS ³ Storage ³ FILE ³³ FILE ³³ FILE ³³ ³ IOProcs ÀÄÄÄÄÂÄÄÄÄÄÙÀÄÄÄÄÄÄÄÄÄÄÙÀÄÄÄÄÂÄÄÄÄÄÙÀÄÄÄÄÄÂÄÄÄÄÙ ³ ³ ³ Ring 3 - - - - - - - -³- - - - - - - - - - - -³- - - - - - ³- - - - - - - Ring 0 ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ File System ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ