Appendix B
Metadata Tables Reference
|
BYTE |
Unsigned 1-byte integer |
|
SHORT |
Signed 2-byte integer |
|
USHORT |
Unsigned 2-byte integer |
|
ULONG |
Unsigned 4-byte integer |
|
RID: <table> |
Record index to <table> |
|
STRING |
Offset in the #Strings stream |
|
GUID |
Offset in the #GUID stream |
|
BLOB |
Offset in the #Blob stream |
|
<coded_token_type> |
Coded token (see the Coded Token Types table at the end of the Appendix) |
|
Entry
|
Entry Type |
Comments |
|
Generation |
USHORT |
For edit-and-continue |
|
Name |
STRING |
No longer than 512 bytes |
|
Mvid |
GUID |
Generated automatically |
|
EncId |
GUID |
For edit-and-continue |
|
EncBaseId |
GUID |
For edit-and-continue |
|
Entry Name |
Entry Type |
Comments |
|
ResolutionScope |
ResolutionScope |
|
|
Name |
STRING |
|
|
Namespace |
STRING |
|
Entry Name |
Entry Type |
Comments |
|
Flags |
ULONG |
Validity mask: 0x001173DBF |
|
Name |
STRING |
|
|
Namespace |
STRING |
|
|
Extends |
TypeDefOrRef |
Base type |
|
FieldList |
RID: Field |
|
|
MethodList |
RID: Method |
|
Entry Name |
Entry Type |
Comments |
|
Field |
RID: Field |
|
Entry Name |
Entry Type |
Comments |
|
Flags |
USHORT |
Validity mask: 0xB7F7 |
|
Name |
STRING |
No longer than 1023 bytes |
|
Signature |
BLOB |
Cannot be 0 |
|
Entry Name |
Entry Type |
Comments |
|
Method |
RID: Method |
|
Entry Name |
Entry Type |
Comments |
|
RVA |
ULONG |
Must be 0 or point at read-only section |
|
ImplFlags |
USHORT |
Validity mask: 0x10BF |
|
Flags |
USHORT |
Validity mask: 0xFDF7 |
|
Name |
STRING |
No longer than 1023 bytes |
|
Signature |
BLOB |
Cannot be 0 |
|
ParamList |
RID: Param |
|
Entry Name |
Entry Type |
Comments |
|
Param |
RID: Param |
|
Entry Name |
Entry Type |
Comments |
|
Flags |
USHORT |
Validity mask: 0x3013 |
|
Sequence |
USHORT |
0 means return value |
|
Name |
STRING |
|
Entry Name |
Entry Type |
Comments |
|
Class |
RID: TypeDef |
Class implementing the interface |
|
Interface |
TypeDefOrRef |
Implemented interface |
|
Entry Name |
Entry Type |
Comments |
|
Class |
MemberRefParent |
Cannot be TypeDef |
|
Name |
STRING |
No longer than 1023 bytes |
|
Signature |
BLOB |
Cannot be 0 |
|
Entry Name |
Entry Type |
Comments |
|
Type |
BYTE |
|
|
Parent |
HasConstant |
|
|
Value |
BLOB |
|
Entry Name |
Entry Type |
Comments |
|
Parent |
HasCustomAttribute |
|
|
Type |
CustomAttributeType |
|
|
Value |
BLOB |
|
Entry Name |
Entry Type |
Comments |
|
Parent |
HasFieldMarshal |
|
|
NativeType |
BLOB |
Cannot be 0 |
|
Entry Name |
Entry Type |
Comments |
|
Action |
SHORT |
|
|
Parent |
HasDeclSecurity |
|
|
PermissionSet |
BLOB |
|
Entry Name |
Entry Type |
Comments |
|
PackingSize |
USHORT |
Power of 2, from 1 through 128 |
|
ClassSize |
ULONG |
|
|
Parent |
RID: TypeDef |
|
Entry Name |
Entry Type |
Comments |
|
OffSet |
ULONG |
Offset in bytes or ordinal |
|
Field |
RID: Field |
|
Entry Name |
Entry Type |
Comments |
|
Signature |
BLOB |
Cannot be 0 |
|
Entry Name |
Entry Type |
Comments |
|
Parent |
RID: TypeDef |
|
|
EventList |
RID: Event |
|
Entry Name |
Entry Type |
Comments |
|
Event |
RID: Event |
|
Entry Name |
Entry Type |
Comments |
|
EventFlags |
USHORT |
0x0000, 0x0200, or 0x0600 |
|
Name |
STRING |
|
|
EventType |
TypeDefOrRef |
|
Entry Name |
Entry Type |
Comments |
|
Parent |
RID: TypeDef |
|
|
PropertyList |
RID: Property |
|
Entry Name |
Entry Type |
Comments |
|
Property |
RID: Property |
|
Entry Name |
Entry Type |
Comments |
|
PropFlags |
USHORT |
Validity mask: 0x1600 |
|
Name |
STRING |
|
|
Type |
BLOB |
Property signature |
|
Entry Name |
Entry Type |
Comments |
|
Semantic |
USHORT |
|
|
Method |
RID: Method |
|
|
Association |
HasSemantic |
|
Entry Name |
Entry Type |
Comments |
|
Class |
RID: TypeDef |
|
|
MethodBody |
MethodDefOrRef |
Overriding method |
|
MethodDeclaration |
MethodDefOrRef |
Overridden method |
|
Entry Name |
Entry Type |
Comments |
|
Name |
STRING |
No longer than 512 bytes |
|
Entry Name |
Entry Type |
Comments |
|
Signature |
BLOB |
Cannot be 0 |
|
Entry Name |
Entry Type |
Comments |
|
Token |
ULONG |
|
|
FuncCode |
ULONG |
|
Entry Name |
Entry Type |
Comments |
|
MappingFlags |
USHORT |
Validity mask: 0x0747 |
|
MemberForwarded |
MemberForwarded |
Method only |
|
ImportName |
STRING |
Entry point name |
|
ImportScope |
RID: ModuleRef |
ModuleRef to unmanaged DLL |
|
Entry Name |
Entry Type |
Comments |
|
Token |
ULONG |
|
Entry Name |
Entry Type |
Comments |
|
RVA |
ULONG |
|
|
Field |
RID: Field |
|
Entry Name |
Entry Type |
Comments |
|
HashAlgId |
ULONG |
|
|
MajorVersion |
USHORT |
|
|
MinorVersion |
USHORT |
|
|
BuildNumber |
USHORT |
|
|
RevisionNumber |
USHORT |
|
|
Flags |
ULONG |
Validity mask: 0x0000C031 |
|
PublicKey |
BLOB |
|
|
Name |
STRING |
No
|
|
Locale |
STRING |
|
Entry Name |
Entry Type |
Comments |
|
Processor |
ULONG |
|
Entry Name |
Entry Type |
Comments |
|
OSPlatformId |
ULONG |
|
|
OSMajorVersion |
ULONG |
|
|
OSMinorVersion |
ULONG |
|
Entry Name |
Entry Type |
Comments |
|
MajorVersion |
USHORT |
|
|
MinorVersion |
USHORT |
|
|
BuildNumber |
USHORT |
|
|
RevisionNumber |
USHORT |
|
|
Flags |
ULONG |
0x00000000 or 0x00000001 |
|
PublicKeyOrToken |
BLOB |
|
|
Name |
STRING |
No path, no extension |
|
Locale |
STRING |
|
|
HashValue |
BLOB |
|
Entry Name |
Entry Type |
Comments |
|
Processor |
ULONG |
|
|
AssemblyRef |
RID: AssemblyRef |
|
Entry Name |
Entry Type |
Comments |
|
OSPlatformId |
ULONG |
|
|
OSMajorVersion |
ULONG |
|
|
OSMinorVersion |
ULONG |
|
|
AssemblyRef |
RID: AssemblyRef |
|
Entry Name |
Entry Type |
Comments |
|
Flags |
ULONG |
0x00000000 or 0x00000001 |
|
Name |
STRING |
No path |
|
HashValue |
BLOB |
|
Entry Name |
Entry Type |
Comments |
|
Flags |
ULONG |
Validity mask: 0x00000007 |
|
TypeDefId |
ULONG |
TypeDef token in another module |
|
TypeName |
STRING |
|
|
TypeNamespace |
STRING |
|
|
Implementation |
Implementation |
File , ExportedType |
|
Entry Name |
Entry Type |
Comments |
|
Offset |
ULONG |
|
|
Flags |
ULONG |
0x000001 or 0x000002 |
|
Name |
STRING |
|
|
Implementation |
Implementation |
0, File , AssemblyRef |
|
Entry Name |
Entry Type |
Comments |
|
NestedClass |
RID: TypeDef |
|
|
EnclosingClass |
RID: TypeDef |
|
Type |
Tag |
|
TypeDefOrRef
(64): 3 referenced tables, tag
|
|
|
TypeDef |
|
|
TypeRe f |
1 |
|
TypeSpec |
2 |
|
HasConstant (65): 3 referenced tables, tag size 2 |
|
|
Field |
|
|
Param |
1 |
|
Property |
2 |
|
HasCustomAttribute (66): 19 referenced tables, tag size 5 |
|
|
Method |
|
|
Field |
1 |
|
TypeRef |
2 |
|
TypeDef |
3 |
|
Param |
4 |
|
InterfaceImpl |
5 |
|
MemberRef |
6 |
|
Module |
7 |
|
DeclSecurity |
8 |
|
Property |
9 |
|
Event |
10 |
|
StandAloneSig |
11 |
|
ModuleRef |
12 |
|
TypeSpec |
13 |
|
Assembly |
14 |
|
AssemblyRef |
15 |
|
File |
16 |
|
ExportedType |
17 |
|
ManifestResource |
18 |
|
HasFieldMarshal (67): 2 referenced tables, tag size 1 |
|
|
Field |
|
|
Param |
1 |
|
HasDeclSecurity (68): 3 referenced tables, tag size 2 |
|
|
TypeDef |
|
|
Method |
1 |
|
Assembly |
2 |
|
MemberRefParent (69): 5 referenced tables, tag size 3 |
|
|
TypeDef |
|
|
TypeRef |
1 |
|
ModuleRef |
2 |
|
Method |
3 |
|
TypeSpec |
4 |
|
HasSemantics (70): 2 referenced tables, tag size 1 |
|
|
Event |
|
|
Property |
1 |
|
MethodDefOrRef (71): 2 referenced tables, tag size 1 |
|
|
Method |
|
|
MemberRef |
1 |
|
MemberForwarded (72): 2 referenced tables, tag size 1 |
|
|
Field |
|
|
Method |
1 |
|
Implementation (73): 3 referenced tables, tag size 2 |
|
|
File |
|
|
AssemblyRef |
1 |
|
ExportedType |
2 |
|
CustomAttributeType (74): 5 referenced tables, tag size 3 |
|
|
TypeRef |
|
|
TypeDef |
1 |
|
Method |
2 |
|
MemberRef |
3 |
|
String |
4 |
|
ResolutionScope (75): 4 referenced tables, tag size 2 |
|
|
Module |
|
|
ModuleRef |
1 |
|
AssemblyRef |
2 |
|
TypeRef |
3 |