mono_metadata_guid_heap| meta | metadata context | 
| index | index into the guid heap. | 
mono_metadata_string_heap| meta | metadata context | 
| index | index into the string heap. | 
mono_metadata_blob_heap| meta | metadata context | 
| index | index into the blob. | 
mono_metadata_user_string| meta | metadata context | 
| index | index into the user string heap. | 
USmono_metadata_decode_blob_size| ptr | pointer to a blob object | 
| rptr | the new position of the pointer | 
US and Blob a blob or user string object)
| ECMA CLI Table Name | C Constant Name | Table Schema (Array Size + Columns Constants) | Assembly | MONO_TABLE_ASSEMBLY | Array size: 
MONO_ASSEMBLY_SIZE 
 | AssemblyOS | MONO_TABLE_ASSEMBLYOS | Array size: 
MONO_ASSEMBLYOS_SIZE 
 | AssemblyProcessor | MONO_TABLE_ASSEMBLYPROCESSOR | Array
size: MONO_ASSEMBLYPROCESSOR_SIZE 
 | AssemblyRef | MONO_TABLE_ASSEMBLYREF | Array size: 
MONO_ASSEMBLYREF_SIZE 
 | AssemblyRefProcessor | MONO_TABLE_ASSEMBLYREFPROCESSOR | Array
size: MONO_ASSEMBLYREFPROC_SIZE 
 | AssemblyRefOS | MONO_TABLE_ASSEMBLYREFOS | Array size: 
 | ClassLayout | MONO_TABLE_CLASSLAYOUT | Array size: 
MONO_CLASSLAYOUT_SIZE 
 | Constant | MONO_TABLE_CONSTANT | Array size: 
MONO_CONSTANT_SIZE 
 | CustomAttribute | MONO_TABLE_CUSTOMATTRIBUTE | Array size:
MONO_CUSTOM_ATTR_SIZE 
 | DeclSecurity | MONO_TABLE_DECLSECURITY | Array size: 
MONO_DECL_SECURITY_SIZE 
 | EventMap | MONO_TABLE_EVENTMAP | Array size: 
MONO_EVENT_MAP_SIZE 
 | EventPtr | MONO_TABLE_EVENT_POINTER | Array size: 
MONO_EVENT_POINTER_SIZE 
 | Event | MONO_TABLE_EVENT | Array size:  MONO_EVENT_SIZE 
 | ExportedType | MONO_TABLE_EXPORTEDTYPE | Array size: 
MONO_EXPORTEDTYPE_SIZE 
 | Field | MONO_TABLE_FIELD | Array size:  MONO_FIELD_SIZE 
 | FieldLayoutt | MONO_TABLE_FIELDLAYOUT | Array size: 
MONO_FIELDLAYOUT_SIZE 
 | FieldMarshal | MONO_TABLE_FIELDMARSHAL | Array size: 
MONO_FIELD_MARSHAL_SIZE 
 | FieldPtr | MONO_TABLE_FIELD_POINTER | Array size: 
MONO_FIELD_POINTER_SIZE 
 | FieldRVA | MONO_TABLE_FIELDRVA | Array size: 
MONO_FIELDRVA_SIZE 
 | File | MONO_TABLE_FILE | Array size:  MONO_FILE_SIZE 
 | GenericParam | MONO_TABLE_GENERICPARAM | Array size: 
MONO_GENERICPARAM_SIZE 
 | GenericParamConstraint | MONO_TABLE_GENERICPARAMCONSTRAINT | Array
size: MONO_GENERICPARAMCONSTRAINT_SIZE 
 | 
| ImplMap | MONO_TABLE_IMPLMAP | Array size: 
MONO_IMPLMAP_SIZE 
 | InterfaceImpl | MONO_TABLE_INTERFACEIMPL | Array size: 
 | ManifestResource | MONO_TABLE_MANIFESTRESOURCE | Array
size: MONO_MANIFESTRESOURCE_SIZE 
 | 
| MemberRef | MONO_TABLE_MEMBERREF | Array size: 
MONO_MEMBERREF_SIZE 
 | MethodImpl | MONO_TABLE_METHODIMPL | Array size: 
MONO_METHODIMPL_SIZE 
 | MethodSpec | MONO_TABLE_METHODSPEC | Array size: 
MONO_METHODSPEC_SIZE 
 | 
| MethodSemantics | MONO_TABLE_METHODSEMANTICS | Array
size: MONO_METHOD_SEMA_SIZE 
 | Moduleref | MONO_TABLE_MODULEREF | Array size: 
MONO_MODULEREF_SIZE 
 | 
| Module | MONO_TABLE_MODULE | Array size: 
MONO_MODULE_SIZE Columns: 
 | TypeRef | MONO_TABLE_TYPEREF | Array size: 
MONO_TYPEREF_SIZE 
 | 
| MethodPtr | MONO_TABLE_METHOD_POINTER | Array size: 
MONO_METHOD_POINTER_SIZE 
 | Method | MONO_TABLE_METHOD | Array size: 
MONO_METHOD_SIZE 
 | 
| NestedClass | MONO_TABLE_NESTEDCLASS | Array size: 
MONO_NESTEDCLASS_SIZE 
 | 
| ParamPtr | MONO_TABLE_PARAM_POINTER | Array size: 
MONO_PARAM_POINTER_SIZE 
 | Param | MONO_TABLE_PARAM | Array size:  MONO_PARAM_SIZE 
 | PropertyMap | MONO_TABLE_PROPERTYMAP | Array size: 
MONO_PROPERTY_MAP_SIZE 
 | PropertyPtr | MONO_TABLE_PROPERTY_POINTER | Array
size: MONO_PROPERTY_POINTER_SIZE 
 | Property | MONO_TABLE_PROPERTY | Array size: 
MONO_PROPERTY_SIZE 
 | 
| StandaloneSig | MONO_TABLE_STANDALONESIG | Array size: 
 | 
| TypeDef | MONO_TABLE_TYPEDEF | Array size: 
MONO_TYPEDEF_SIZE 
 | 
| TypeSpec | MONO_TABLE_TYPESPEC | Array size: 
MONO_TYPESPEC_SIZE 
 | 
	/*
	 * Dumps a few fields from the AssemblyRef table
	 */
	void DumpAssemblyRefs (MonoImage *image)
	{
		/* Get a pointer to the AssemblyRef metadata table */
		MonoTableInfo *t = mono_image_get_table_info (image, MONO_TABLE_ASSEMBLYREF);
		/* Fetch the number of rows available in the table */
		int rows = mono_table_info_get_rows (t);
		int i;
		/* For each row, print some of its values */
		for (i = 0; i < rows; i++){
			/* Space where we extract one row from the metadata table */
			guint32 cols [MONO_ASSEMBLYREF_SIZE];
			/* Extract the row into the array cols */
			mono_metadata_decode_row (t, i, cols, MONO_ASSEMBLYREF_SIZE);
			fprintf (output, "%d: Version=%d.%d.%d.%d\n\tName=%s\n", i + 1,
                        	cols [MONO_ASSEMBLYREF_MAJOR_VERSION],
                        	cols [MONO_ASSEMBLYREF_MINOR_VERSION],
                        	cols [MONO_ASSEMBLYREF_BUILD_NUMBER],
                        	cols [MONO_ASSEMBLYREF_REV_NUMBER],
                        	mono_metadata_string_heap (image, cols [MONO_ASSEMBLYREF_NAME]));
		}
	}
	
	The above program shows the following output when ran on
	the C# compiler:
	1: Version=1.0.5000.0 Name=mscorlib 2: Version=1.0.5000.0 Name=System 3: Version=1.0.5000.0 Name=System.Xml
mono_image_get_table_infomono_image_get_table_rowsmono_metadata_decode_row_col| t | table to extract information from. | 
| idx | index for row in table. | 
| col | column in the row. | 
mono_metadata_decode_row| t | table to extract information from. | 
| idx | index in table. | 
| res | array of res_size cols to store the results in | 
guint32 res array that has res_size elementsmono_metadata_compute_size| meta | metadata context | 
| tableindex | metadata table number | 
| result_bitfield | pointer to guint32where to store additional info | 
mono_metadata_compute_size computes the length in bytes of a single
 row in a metadata table. The size of each column is encoded in the
 result_bitfield return value along with the number of columns in the table.
 the resulting bitfield should be handed to the mono_metadata_table_size
 and mono_metadata_table_count macros.
 This is a Mono runtime internal only function.mono_metadata_custom_attrs_from_index| meta | metadata context | 
| index | token representing the parent | 
| returns | the 1-based index into the CustomAttributetable of the first | 
mono_metadata_decode_signed_value| ptr | pointer to decode from | 
| rptr | the new position of the pointer | 
mono_metadata_decode_value| ptr | pointer to decode from | 
| rptr | the new position of the pointer | 
mono_metadata_encode_valuemono_pe_file_open| fname | filename that points to the module we want to open | 
| status | An error condition is returned in this field | 
MonoImage or NULL on error.  if
	 NULL, then check the value of status for details on the error.
	 This variant for mono_image_open DOES NOT SET UP CLI METADATA.
	 It's just a PE file loader, used for FileVersionInfo.  It also does
	 not use the image cache.mono_metadata_events_from_typedef| meta | metadata context | 
| index | 0-based index (in the TypeDeftable) describing a type | 
Event table for the events in the
	 type. The last event that belongs to the type (plus 1) is stored
	 in the end_idx pointer.mono_metadata_decode_table_rowmono_metadata_decode_row, but takes an image + table ID pair, and takes
 uncompressed metadata into account, so it should be used to access the
 Method, Field, Param and Event tables when the access is made from metadata, i.e.
 idx is retrieved from a metadata table, like MONO_TYPEDEF_FIELD_LIST.mono_metadata_decode_table_row_colmono_metadata_decode_row_col, but takes an image + table ID pair, and takes
 uncompressed metadata into account, so it should be used to access the
 Method, Field, Param and Event tables.mono_metadata_field_info| meta | the Image the field is defined in | 
| index | the index in the field table representing the field | 
| offset | a pointer to an integer where to store the offset that may have been specified for the field in a FieldLayout table | 
| rva | a pointer to the RVA of the field data in the image that may have been defined in a FieldRVAtable | 
| marshal_spec | a pointer to the marshal spec that may have been defined for the field in a FieldMarshaltable. | 
FieldLayout, 
 FieldRVA and FieldMarshal tables.
 Either of offset, rva and marshal_spec can be NULL if you're not interested 
 in the data.mono_metadata_free_array| array | array description | 
mono_metadata_parse_array.mono_metadata_free_marshal_specmono_metadata_free_mh| mh | a method header | 
mono_metadata_free_type| type | type to free | 
mono_metadata_get_constant_index| meta | the Image the field is defined in | 
| index | the token that may have a row defined in the constants table | 
| hint | possible position for the row | 
Constants table or 0 if not found.
FieldDef, ParamDef or PropertyDef token.
mono_metadata_get_marshal_infomono_metadata_implmap_from_methodmono_metadata_interfaces_from_typedef| meta | metadata context | 
| index | typedef token | 
| count | Out parameter used to store the number of interfaces | 
NULL on failure.
g_malloc and the caller must free it.
 LOCKING: Acquires the loader lock .
mono_metadata_locate| meta | metadata context | 
| table | table code. | 
| idx | index of element to retrieve from table. | 
mono_metadata_locate_token| meta | metadata context | 
| token | metadata token | 
mono_metadata_methods_from_event| meta | metadata context | 
| index | 0-based index (in the Eventtable) describing a event | 
MethodDef table for the methods in the
	 event. The last method that belongs to the event (plus 1) is stored
	 in the end_idx pointer.mono_metadata_methods_from_property| meta | metadata context | 
| index | 0-based index (in the PropertyDeftable) describing a property | 
MethodDef table for the methods in the
	 property. The last method that belongs to the property (plus 1) is stored
	 in the end_idx pointer.mono_metadata_nested_in_typedef| meta | metadata context | 
| index | typedef token | 
mono_metadata_nesting_typedef| meta | metadata context | 
| index | typedef token | 
TypeDef table of the first type
	 that is nested inside the type described by index. The search starts at
	 start_index. Returns 0 if no such type is found.mono_metadata_packing_from_typedef| meta | metadata context | 
| index | token representing a type | 
ClassLayout table for the given typedef token
	 into the packing and size pointers.
	 Returns 0 if the info is not found.mono_metadata_properties_from_typedef| meta | metadata context | 
| index | 0-based index (in the TypeDeftable) describing a type | 
Property table for the properties in the
	 type. The last property that belongs to the type (plus 1) is stored
	 in the end_idx pointer.mono_metadata_token_from_dor| dor_token | A TypeDefOrRefcoded index | 
TypeDefOrRef coded index: it contains either
 a TypeDef, TypeRef or TypeSpec in the lower bits, and the upper
 bits contain an index into the table.
mono_metadata_translate_token_indexMethod, Field, Event, or Param tables
 using the *Ptr tables in uncompressed metadata, if they are available.
 FIXME: The caller is not forced to call this function, which is error-prone, since 
 forgetting to call it would only show up as a bug on uncompressed metadata.mono_metadata_typedef_from_field| meta | metadata context | 
| index | FieldDef token | 
TypeDef table of the type that
	 declared the field described by index, or 0 if not found.mono_metadata_typedef_from_method| meta | metadata context | 
| index | MethodDeftoken | 
TypeDef table of the type that
	 declared the method described by index.  0 if not found.mono_metadata_type_equalmono_metadata_type_hash| t1 | a type | 
GHashTable.
 The returned hash is guaranteed to be the same across executions.mono_metadata_declsec_from_index| meta | metadata context | 
| index | token representing the parent | 
DeclarativeSecurity table of the first 
	 attribute which belongs to the metadata object described by index.
	 Returns -1 if no such attribute is found.mono_metadata_free_method_signature| sig | signature to destroy | 
mono_metadata_parse_arraymono_metadata_parse_custom_mod| m | a metadata context. | 
| dest | storage where the info about the custom modifier is stored (may be NULL) | 
| ptr | a pointer to (possibly) the start of a custom modifier list | 
| rptr | pointer updated to match the end of the decoded stream | 
TRUE if a custom modifier was found, FALSE if not.
mono_metadata_parse_field_type| m | metadata context to extract information from | 
| ptr | pointer to the field signature | 
| rptr | pointer updated to match the end of the decoded stream | 
MonoType that was extracted from ptr .
mono_metadata_parse_marshal_specmono_metadata_parse_method_signature| m | metadata context | 
| def | the MethodDefindex or 0 forRefsignatures. | 
| ptr | pointer to the signature metadata representation | 
| rptr | pointer updated to match the end of the decoded stream | 
MonoMethodSignature describing the signature.
mono_metadata_parse_mh| generic_context | generics context | 
| ptr | pointer to the method header. | 
MonoMethodHeader allocated from the heap.
mono_metadata_parse_param| m | metadata context to extract information from | 
| ptr | pointer to the param signature | 
| rptr | pointer updated to match the end of the decoded stream | 
MonoType that was extracted from ptr .
mono_metadata_parse_signature| image | metadata context | 
| token | metadata token | 
MonoMethodSignature describing the signature.
StandAloneSig table
mono_metadata_parse_typedef_or_ref| m | a metadata context. | 
| ptr | a pointer to an encoded TypedefOrRef in m | 
| rptr | pointer updated to match the end of the decoded stream | 
mono_metadata_parse_type| m | metadata context | 
| mode | kind of type that may be found at ptr | 
| opt_attrs | optional attributes to store in the returned type | 
| ptr | pointer to the type representation | 
| rptr | pointer updated to match the end of the decoded stream | 
| transient | whenever to allocate the result from the heap or from a mempool | 
MonoType structure representing the decoded type.
MONO_PARSE_MOD_TYPE, MONO_PARSE_PARAM, MONO_PARSE_RET,
 MONO_PARSE_FIELD, MONO_PARSE_LOCAL, MONO_PARSE_TYPE.
 This function can be used to decode type descriptions in method signatures,
 field signatures, locals signatures etc.
 To parse a generic type, generic_container points to the current class'es
 (the generic_container field in the MonoClass) or the current generic method's
 (stored in image->property_hash) generic container.
 When we encounter a MONO_TYPE_VAR or MONO_TYPE_MVAR, it's looked up in
 this MonoGenericContainer.
 LOCKING: Acquires the loader lock.
mono_metadata_generic_class_is_valuetypemono_ldtokenmono_ldstr| domain | the domain where the string will be used. | 
| image | a metadata context | 
| idx | index into the user string table. | 
ldstr opcode.mono_exception_from_token| image | the Mono image where to look for the class | 
| token | The type token of the class | 
mono_opcode_name