Jump to content

MMProgRef - RIFF Compound Files and Elements - Sharing and Access

From EDM2

Reprint Courtesy of International Business Machines Corporation, © International Business Machines Corporation

Multimedia Programming Reference
  1. Introduction
  2. What's New...
  3. MCI Functions
  4. High-Level Macro Service Functions
  5. Subsystem Messages
  6. Notification Messages
  7. MCI Command Messages
  8. String Commands
  9. Memory Playlist Commands
  10. Graphic Button Control
  11. Secondary Window Functions
  12. MMIO Functions
  13. MMIO Messages
  14. CODEC Messages
  15. DIVE Functions
  16. Real-Time MIDI Functions
  17. SPI Functions
  18. Data Stream State Table
  19. SMH Messages
  20. DDCMD Messages
  21. VSD Commands
  22. SHD Messages
  23. SHC Messages
  24. Data Types
  25. Types of MIDI Messages
  26. Multimedia Specification Overview
  27. Resource Interchange File Format
  28. Multimedia File Formats
  29. RIFF Compound Files and Elements - Sharing and Access
  30. Return Codes
  31. Notices
  32. Glossary

The following tables show the relationship between sharing and accessing RIFF compound files (CF) and elements within those files, both within the current process and between processes.

Access and Sharing Modes

An A indicates that the function is allowed. Both the access and sharing values must be A for the open to work. For example, in the CF Open - CF Open of the same process, if the first CF Open is RO - DW, then the next CF Open must be RO - DW. Any access other than RO fails. Any sharing other than DW also will fail.

Access Modes
  • RO - READ ONLY
  • WO - WRITE ONLY
  • RW - READ and WRITE
Sharing Modes
  • DR - DENY READ
  • DW - DENY WRITE
  • DN - DENY NONE
  • EX - EXCLUSIVE (DENY ALL)

Element Opened Again (Any Process)

Element Opened Access Sharing
RO WO RW DR DW DN EX
RO - DR X A X X A A X
RO - DW A X X X A A X
RO - DN A A A X A A X
RO - EX X X X X X X X
RW - DR X A X X X A X
RW - DW A X X X X A X
RW - DN A A A X X A X
RW - EX X X X X X X X
RO - DR X A X A X A X
RO - DW A X X A X A X
RO - DN A A A A X A X
RO - EX X X X X X X X

Elements Opened (Same Process)

CF Opened Access Sharing
RO WO RW DR DW DN EX
RO - DR A X X A A A A
RO - DW A X X A A A A
RO - DN A X X A A A A
RO - EX A X X A A A A
RW - DR A A A A A A A
RW - DW A A A A A A A
RW - DN A A A A A A A
RW - EX A A A A A A A
RO - DR X A X A A A A
RO - DW X A X A A A A
RO - DN X A X A A A A
RO - EX X A X A A A A

Fully Qualified Element Open

CF Opened Access Sharing
RO WO RW DR DW DN EX
RW - DN A A A A A A A

CF Opened Again (Same Process)

CF Opened Access Sharing
RO WO RW DR DW DN EX
RO - DR X X X X X X X
RO - DW A X X X A X X
RO - DN A X X X X A X
RO - EX X X X X X X X
RW - DR X X X X X X X
RW - DW X X X X X X X
RW - DN X X A X X A X
RW - EX X X X X X X X
RO - DR X A X A X X X
RO - DW X X X X X X X
RO - DN X A X X X A X
RO - EX X X X X X X X

Element Opened (Different Process)

CF Opened Access Sharing
RO WO RW DR DW DN EX
RO - DR X A X X A A X
RO - DW A X X X A A X
RO - DN A A A X X A X
RO - EX X X X X X X X
RW - DR X A X X X A X
RW - DW A X X X X A X
RW - DN A A A X X A X
RW - EX X X X X X X X
RO - DR X A X A X A X
RO - DW A X X A X A X
RO - DN A A A X X A X
RO - EX X X X X X X X

CF Opened Again (Different Process)

CF Opened Access Sharing
RO WO RW DR DW DN EX
RO - DR X A X X A A X
RO - DW A X X X A A X
RO - DN A A A X A A X
RO - EX X X X X X X X
RW - DR X A X X X A X
RW - DW A X X X X A X
RW - DN A A A X X A X
RW - EX X X X X X X X
RO - DR X A X A X A X
RO - DW A X X A X A X
RO - DN A A A A X A X
RO - EX X X X X X X X