namespace BurnOutSharp.Models.PortableExecutable { /// public class TLSDirectory { #region RawDataStartVA /// /// The starting address of the TLS template. The template is a block of data /// that is used to initialize TLS data. The system copies all of this data /// each time a thread is created, so it must not be corrupted. Note that this /// address is not an RVA; it is an address for which there should be a base /// relocation in the .reloc section. /// public uint RawDataStartVA_PE32; /// /// The starting address of the TLS template. The template is a block of data /// that is used to initialize TLS data. The system copies all of this data /// each time a thread is created, so it must not be corrupted. Note that this /// address is not an RVA; it is an address for which there should be a base /// relocation in the .reloc section. /// public ulong RawDataStartVA_PE32Plus; #endregion #region RawDataEndVA /// /// The address of the last byte of the TLS, except for the zero fill. As /// with the Raw Data Start VA field, this is a VA, not an RVA. /// public uint RawDataEndVA_PE32; /// /// The address of the last byte of the TLS, except for the zero fill. As /// with the Raw Data Start VA field, this is a VA, not an RVA. /// public ulong RawDataEndVA_PE32Plus; #endregion #region AddressOfIndex /// /// The location to receive the TLS index, which the loader assigns. This /// location is in an ordinary data section, so it can be given a symbolic /// name that is accessible to the program. /// public uint AddressOfIndex_PE32; /// /// The location to receive the TLS index, which the loader assigns. This /// location is in an ordinary data section, so it can be given a symbolic /// name that is accessible to the program. /// public ulong AddressOfIndex_PE32Plus; #endregion #region AddressOfCallbacks /// /// The pointer to an array of TLS callback functions. The array is /// null-terminated, so if no callback function is supported, this field /// points to 4 bytes set to zero. /// public uint AddressOfCallbacks_PE32; /// /// The pointer to an array of TLS callback functions. The array is /// null-terminated, so if no callback function is supported, this field /// points to 4 bytes set to zero. /// public ulong AddressOfCallbacks_PE32Plus; #endregion /// /// The size in bytes of the template, beyond the initialized data delimited /// by the Raw Data Start VA and Raw Data End VA fields. The total template /// size should be the same as the total size of TLS data in the image file. /// The zero fill is the amount of data that comes after the initialized /// nonzero data. /// public uint SizeOfZeroFill; /// /// The four bits [23:20] describe alignment info. Possible values are those /// defined as IMAGE_SCN_ALIGN_*, which are also used to describe alignment /// of section in object files. The other 28 bits are reserved for future use. /// public uint Characteristics; } }