-//\r
-// Leaf section which contains PE32+ image.\r
-// \r
-typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION;\r
-\r
-\r
-//\r
-// Leaf section which used to determine the dispatch order of PEIMs.\r
-// \r
-typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION;\r
-\r
-//\r
-// Leaf section which constains the position-independent-code image.\r
-// \r
-typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION;\r
-\r
-//\r
-// Leaf section which contains an array of zero or more bytes.\r
-// \r
-typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION;\r
-\r
-//\r
-// Leaf section which contains a unicode string that \r
-// is human readable file name.\r
-// \r
+typedef struct {\r
+ ///\r
+ /// The common section header. CommonHeader.Type = EFI_SECTION_GUID_DEFINED.\r
+ ///\r
+ EFI_COMMON_SECTION_HEADER2 CommonHeader;\r
+ ///\r
+ /// The GUID that defines the format of the data that follows. It is a vendor-defined section type.\r
+ /// \r
+ EFI_GUID SectionDefinitionGuid;\r
+ ///\r
+ /// Contains the offset in bytes from the beginning of the common header to the first byte of the data.\r
+ /// \r
+ UINT16 DataOffset;\r
+ ///\r
+ /// The bit field that declares some specific characteristics of the section contents.\r
+ /// \r
+ UINT16 Attributes;\r
+} EFI_GUID_DEFINED_SECTION2;\r
+\r
+///\r
+/// The leaf section which contains PE32+ image.\r
+/// \r
+typedef EFI_COMMON_SECTION_HEADER EFI_PE32_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PE32_SECTION2;\r
+\r
+///\r
+/// The leaf section used to determine the dispatch order of PEIMs.\r
+/// \r
+typedef EFI_COMMON_SECTION_HEADER EFI_PEI_DEPEX_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PEI_DEPEX_SECTION2;\r
+\r
+///\r
+/// A leaf section type that contains a position-independent-code (PIC) image.\r
+/// A PIC image section is a leaf section that contains a position-independent-code (PIC) image.\r
+/// In addition to normal PE32+ images that contain relocation information, PEIM executables may be\r
+/// PIC and are referred to as PIC images. A PIC image is the same as a PE32+ image except that all\r
+/// relocation information has been stripped from the image and the image can be moved and will\r
+/// execute correctly without performing any relocation or other fix-ups. EFI_PIC_SECTION2 must\r
+/// be used if the section is 16MB or larger.\r
+///\r
+typedef EFI_COMMON_SECTION_HEADER EFI_PIC_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_PIC_SECTION2;\r
+\r
+///\r
+/// The leaf section which constains the position-independent-code image.\r
+/// \r
+typedef EFI_COMMON_SECTION_HEADER EFI_TE_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_TE_SECTION2;\r
+\r
+///\r
+/// The leaf section which contains an array of zero or more bytes.\r
+/// \r
+typedef EFI_COMMON_SECTION_HEADER EFI_RAW_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_RAW_SECTION2;\r
+\r
+/// \r
+/// The SMM dependency expression section is a leaf section that contains a dependency expression that\r
+/// is used to determine the dispatch order for SMM drivers. Before the SMRAM invocation of the\r
+/// SMM driver's entry point, this dependency expression must evaluate to TRUE. See the Platform\r
+/// Initialization Specification, Volume 2, for details regarding the format of the dependency expression.\r
+/// The dependency expression may refer to protocols installed in either the UEFI or the SMM protocol\r
+/// database. EFI_SMM_DEPEX_SECTION2 must be used if the section is 16MB or larger.\r
+/// \r
+typedef EFI_COMMON_SECTION_HEADER EFI_SMM_DEPEX_SECTION;\r
+typedef EFI_COMMON_SECTION_HEADER2 EFI_SMM_DEPEX_SECTION2;\r
+\r
+///\r
+/// The leaf section which contains a unicode string that \r
+/// is human readable file name.\r
+/// \r