Skip to content

Latest commit

 

History

History
27 lines (14 loc) · 1.26 KB

ii.22.19-file-0x26.md

File metadata and controls

27 lines (14 loc) · 1.26 KB

II.22.19 File: 0x26

The File table has the following columns:

  • Flags (a 4-byte bitmask of type FileAttributes, §II.23.1.6)

  • Name (an index into the String heap)

  • HashValue (an index into the Blob heap)

The rows of the File table result from .file directives in an Assembly (§II.6.2.3)

This contains informative text only.

  1. Flags shall have only those values set that are specified (all combinations valid) [ERROR]

  2. Name shall index a non-empty string in the String heap. It shall be in the format <filename>.<extension> (e.g., "foo.dll", but not "c:\utils\foo.dll") [ERROR]

  3. HashValue shall index a non-empty 'blob' in the Blob heap [ERROR]

  4. There shall be no duplicate rows; that is, rows with the same Name value [ERROR]

  5. If this module contains a row in the Assembly table (that is, if this module "holds the manifest") then there shall not be any row in the File table for this module; i.e., no self-reference [ERROR]

  6. If the File table is empty, then this, by definition, is a single-file assembly. In this case, the ExportedType table should be empty [WARNING]

End informative text.