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.
-
Flags shall have only those values set that are specified (all combinations valid) [ERROR]
-
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] -
HashValue shall index a non-empty 'blob' in the Blob heap [ERROR]
-
There shall be no duplicate rows; that is, rows with the same Name value [ERROR]
-
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]
-
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.