RIFF Compound Files and Elements - Sharing and Access

The following tables show the relationship between sharing and accessing RIFF compound files and elements within those files, both within the current process and between processes. The following scenarios are presented:

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.

Abbreviations of access modes are:

Abbreviations for sharing modes are:

                          Element Opened Again

                   ┌┬─────────────────┬┬───────────────────────┐
          Element  ││     Access      ││        Sharing        │
          Opened   ││ 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  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DR   ││  X  │  A  │  X  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DW   ││  A  │  X  │  X  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DN   ││  A  │  A  │  A  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - EX   ││  X  │  X  │  X  ││  X  │  X  │  X  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        └──────────┴┴─────┴─────┴─────┴┴─────┴─────┴─────┴─────┘

                             Any Process
                            ──────────────



                                Elements Opened

                   ┌┬─────────────────┬┬───────────────────────┐
                   ││     Access      ││        Sharing        │
         CF Opened ││ 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  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DR   ││  X  │  A  │  X  ││  A  │  A  │  A  │  A  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DW   ││  X  │  A  │  X  ││  A  │  A  │  A  │  A  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DN   ││  X  │  A  │  X  ││  A  │  A  │  A  │  A  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - EX   ││  X  │  A  │  X  ││  A  │  A  │  A  │  A  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        └──────────┴┴─────┴─────┴─────┴┴─────┴─────┴─────┴─────┘


                             Same Process
                            ──────────────


                      Fully Qualified Element Open
                      ────────────────────────────

                   ┌┬─────────────────┬┬───────────────────────┐
                   ││     Access      ││        Sharing        │
         CF Opened ││ RO    WO    RW  ││ DR    DW     DN   EX  │
        ┌──────────┼┼─────┬─────┬─────┼┼─────┬─────┬─────┬─────┤
        │RW - DN   ││  A  │  A  │  A  ││  A  │  A  │  A  │  A  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        └──────────┴┴─────┴─────┴─────┴┴─────┴─────┴─────┴─────┘



                              CF Opened Again

                   ┌┬─────────────────┬┬───────────────────────┐
                   ││     Access      ││        Sharing        │
         CF Opened ││ 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  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DR   ││  X  │  A  │  X  ││  A  │  X  │  X  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DW   ││  X  │  X  │  X  ││  X  │  X  │  X  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DN   ││  X  │  A  │  X  ││  X  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - EX   ││  X  │  X  │  X  ││  X  │  X  │  X  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        └──────────┴┴─────┴─────┴─────┴┴─────┴─────┴─────┴─────┘


                            Same Process
                           ──────────────




                              Element Opened
                             (different process)

                   ┌┬─────────────────┬┬───────────────────────┐
                   ││     Access      ││        Sharing        │
         CF Opened ││ 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  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DR   ││  X  │  A  │  X  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DW   ││  A  │  X  │  X  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DN   ││  A  │  A  │  A  ││  X  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - EX   ││  X  │  X  │  X  ││  X  │  X  │  X  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        └──────────┴┴─────┴─────┴─────┴┴─────┴─────┴─────┴─────┘



                              CF Opened Again

                   ┌┬─────────────────┬┬───────────────────────┐
                   ││     Access      ││        Sharing        │
         CF Opened ││ 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  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DR   ││  X  │  A  │  X  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DW   ││  A  │  X  │  X  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - DN   ││  A  │  A  │  A  ││  A  │  X  │  A  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        │WO - EX   ││  X  │  X  │  X  ││  X  │  X  │  X  │  X  │
        ├──────────┼┼─────┼─────┼─────┼┼─────┼─────┼─────┼─────┤
        └──────────┴┴─────┴─────┴─────┴┴─────┴─────┴─────┴─────┘


                           Different Process
                          ───────────────────


[Back: Embedded File Information]
[Next: Return Codes]