Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
347 lines (331 sloc) 19.7 KB
<Type Name="SectionHeader" FullName="System.Reflection.PortableExecutable.SectionHeader">
<TypeSignature Language="C#" Value="public struct SectionHeader" />
<TypeSignature Language="ILAsm" Value=".class public sequential ansi sealed beforefieldinit SectionHeader extends System.ValueType" />
<TypeSignature Language="DocId" Value="T:System.Reflection.PortableExecutable.SectionHeader" />
<TypeSignature Language="VB.NET" Value="Public Structure SectionHeader" />
<TypeSignature Language="C++ CLI" Value="public value class SectionHeader" />
<TypeSignature Language="F#" Value="type SectionHeader = struct" />
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<Base>
<BaseTypeName>System.ValueType</BaseTypeName>
</Base>
<Interfaces />
<Attributes>
<Attribute FrameworkAlternate="netcore-2.1;netcore-2.2;netcore-3.0;netcore-3.1">
<AttributeName>System.Runtime.CompilerServices.IsReadOnly</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>Provides information about the section header of a PE/COFF file.</summary>
<remarks>To be added.</remarks>
</Docs>
<Members>
<Member MemberName="Name">
<MemberSignature Language="C#" Value="public string Name { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance string Name" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.Name" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property Name As String" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property System::String ^ Name { System::String ^ get(); };" />
<MemberSignature Language="F#" Value="member this.Name : string" Usage="System.Reflection.PortableExecutable.SectionHeader.Name" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the name of the section.</summary>
<value>The name of the section.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="NumberOfLineNumbers">
<MemberSignature Language="C#" Value="public ushort NumberOfLineNumbers { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance unsigned int16 NumberOfLineNumbers" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.NumberOfLineNumbers" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property NumberOfLineNumbers As UShort" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property System::UInt16 NumberOfLineNumbers { System::UInt16 get(); };" />
<MemberSignature Language="F#" Value="member this.NumberOfLineNumbers : uint16" Usage="System.Reflection.PortableExecutable.SectionHeader.NumberOfLineNumbers" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.UInt16</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the number of line-number entries for the section.</summary>
<value>The number of line-number entries for the section.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This value should be zero for an image because COFF debugging information is deprecated.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="NumberOfRelocations">
<MemberSignature Language="C#" Value="public ushort NumberOfRelocations { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance unsigned int16 NumberOfRelocations" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.NumberOfRelocations" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property NumberOfRelocations As UShort" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property System::UInt16 NumberOfRelocations { System::UInt16 get(); };" />
<MemberSignature Language="F#" Value="member this.NumberOfRelocations : uint16" Usage="System.Reflection.PortableExecutable.SectionHeader.NumberOfRelocations" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.UInt16</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the number of relocation entries for the section.</summary>
<value>The number of relocation entries for the section. Its value is zero for PE images.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="PointerToLineNumbers">
<MemberSignature Language="C#" Value="public int PointerToLineNumbers { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 PointerToLineNumbers" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.PointerToLineNumbers" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property PointerToLineNumbers As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property int PointerToLineNumbers { int get(); };" />
<MemberSignature Language="F#" Value="member this.PointerToLineNumbers : int" Usage="System.Reflection.PortableExecutable.SectionHeader.PointerToLineNumbers" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the file pointer to the beginning of line-number entries for the section.</summary>
<value>The file pointer to the beginning of line-number entries for the section, or zero if there are no COFF line numbers.</value>
<remarks>
<format type="text/markdown"><![CDATA[
## Remarks
This value should be zero for an image because COFF debugging information is deprecated.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="PointerToRawData">
<MemberSignature Language="C#" Value="public int PointerToRawData { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 PointerToRawData" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.PointerToRawData" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property PointerToRawData As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property int PointerToRawData { int get(); };" />
<MemberSignature Language="F#" Value="member this.PointerToRawData : int" Usage="System.Reflection.PortableExecutable.SectionHeader.PointerToRawData" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the file pointer to the first page of the section within the COFF file.</summary>
<value>The file pointer to the first page of the section within the COFF file.</value>
<remarks>
<format type="text/markdown"><![CDATA[
For PE images, this must be a multiple of <xref:System.Reflection.PortableExecutable.PEHeader.FileAlignment?displayProperty=nameWithType>. For object files, the value should be aligned on a 4-byte boundary for best performance. When a section contains only uninitialized data, this field should be zero.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="PointerToRelocations">
<MemberSignature Language="C#" Value="public int PointerToRelocations { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 PointerToRelocations" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.PointerToRelocations" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property PointerToRelocations As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property int PointerToRelocations { int get(); };" />
<MemberSignature Language="F#" Value="member this.PointerToRelocations : int" Usage="System.Reflection.PortableExecutable.SectionHeader.PointerToRelocations" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the file pointer to the beginning of relocation entries for the section.</summary>
<value>The file pointer to the beginning of relocation entries for the section. It is set to zero for PE images or if there are no relocations.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="SectionCharacteristics">
<MemberSignature Language="C#" Value="public System.Reflection.PortableExecutable.SectionCharacteristics SectionCharacteristics { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance valuetype System.Reflection.PortableExecutable.SectionCharacteristics SectionCharacteristics" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.SectionCharacteristics" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property SectionCharacteristics As SectionCharacteristics" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property System::Reflection::PortableExecutable::SectionCharacteristics SectionCharacteristics { System::Reflection::PortableExecutable::SectionCharacteristics get(); };" />
<MemberSignature Language="F#" Value="member this.SectionCharacteristics : System.Reflection.PortableExecutable.SectionCharacteristics" Usage="System.Reflection.PortableExecutable.SectionHeader.SectionCharacteristics" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Reflection.PortableExecutable.SectionCharacteristics</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the flags that describe the characteristics of the section.</summary>
<value>The flags that describe the characteristics of the section.</value>
<remarks>To be added.</remarks>
</Docs>
</Member>
<Member MemberName="SizeOfRawData">
<MemberSignature Language="C#" Value="public int SizeOfRawData { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 SizeOfRawData" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.SizeOfRawData" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property SizeOfRawData As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property int SizeOfRawData { int get(); };" />
<MemberSignature Language="F#" Value="member this.SizeOfRawData : int" Usage="System.Reflection.PortableExecutable.SectionHeader.SizeOfRawData" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the size of the section (for object files) or the size of the initialized data on disk (for image files).</summary>
<value>The size of the section (for object files) or the size of the initialized data on disk (for image files).</value>
<remarks>
<format type="text/markdown"><![CDATA[
For PE images, `SizeOfRawData` must be a multiple of <xref:System.Reflection.PortableExecutable.PEHeader.FileAlignment?displayProperty=nameWithType>. If it is less than <xref:System.Reflection.PortableExecutable.SectionHeader.VirtualSize?displayProperty=nameWithType>, the remainder of the section is zero-filled.
Because the <xref:System.Reflection.PortableExecutable.SectionHeader.SizeOfRawData?displayProperty=nameWithType> field is rounded but the <xref:System.Reflection.PortableExecutable.SectionHeader.VirtualSize?displayProperty=nameWithType> field is not, it is possible for <xref:System.Reflection.PortableExecutable.SectionHeader.SizeOfRawData> to be greater than <xref:System.Reflection.PortableExecutable.SectionHeader.VirtualSize> as well.
When a section contains only uninitialized data, this field should be zero.
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="VirtualAddress">
<MemberSignature Language="C#" Value="public int VirtualAddress { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 VirtualAddress" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.VirtualAddress" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property VirtualAddress As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property int VirtualAddress { int get(); };" />
<MemberSignature Language="F#" Value="member this.VirtualAddress : int" Usage="System.Reflection.PortableExecutable.SectionHeader.VirtualAddress" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the virtual addess of the section.</summary>
<value>The virtual address of the section.</value>
<remarks>
<format type="text/markdown"><![CDATA[
For PE images, the `VirtualAddress` is the address of the first byte of the section relative to the image base when the section is loaded into memory. For object files, it is the address of the first byte before relocation is applied; for simplicity, compilers should set this to zero. Otherwise, it is an arbitrary value that is subtracted from offsets during relocation..
]]></format>
</remarks>
</Docs>
</Member>
<Member MemberName="VirtualSize">
<MemberSignature Language="C#" Value="public int VirtualSize { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 VirtualSize" />
<MemberSignature Language="DocId" Value="P:System.Reflection.PortableExecutable.SectionHeader.VirtualSize" />
<MemberSignature Language="VB.NET" Value="Public ReadOnly Property VirtualSize As Integer" />
<MemberSignature Language="C++ CLI" Value="public:&#xA; property int VirtualSize { int get(); };" />
<MemberSignature Language="F#" Value="member this.VirtualSize : int" Usage="System.Reflection.PortableExecutable.SectionHeader.VirtualSize" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyName>System.Reflection.Metadata</AssemblyName>
<AssemblyVersion>1.0.22.0</AssemblyVersion>
<AssemblyVersion>1.3.0.0</AssemblyVersion>
<AssemblyVersion>1.4.1.0</AssemblyVersion>
<AssemblyVersion>1.4.2.0</AssemblyVersion>
<AssemblyVersion>1.4.3.0</AssemblyVersion>
<AssemblyVersion>1.4.4.0</AssemblyVersion>
<AssemblyVersion>1.4.5.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<summary>Gets the total size of the section when loaded into memory.</summary>
<value>The total size of the section when loaded into memory.</value>
<remarks>
<format type="text/markdown"><![CDATA[
If the `VirtualSize` property value is greater than <xref:System.Reflection.PortableExecutable.SectionHeader.SizeOfRawData, the section is zero-padded. This field is valid only for PE images and should be set to zero for object files.
]]></format>
</remarks>
</Docs>
</Member>
</Members>
</Type>
You can’t perform that action at this time.