VirtualBox

Changeset 106732 in vbox for trunk/include


Ignore:
Timestamp:
Oct 27, 2024 10:54:55 PM (6 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
165615
Message:

IPRT/ldrPE.cpp,pecoff.h: Added IMAGE_LOAD_CONFIG_DIRECTORY64_V14 / IMAGE_LOAD_CONFIG_DIRECTORY32_V13 for the windows 11 22h2 structure update (added GuardMemcpyFunctionPointer). jiraref:VBP-1253

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/iprt/formats/pecoff.h

    r106730 r106732  
    15301530typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V13 const *PCIMAGE_LOAD_CONFIG_DIRECTORY32_V13;
    15311531
    1532 typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V13   IMAGE_LOAD_CONFIG_DIRECTORY32;
    1533 typedef PIMAGE_LOAD_CONFIG_DIRECTORY32_V13  PIMAGE_LOAD_CONFIG_DIRECTORY32;
    1534 typedef PCIMAGE_LOAD_CONFIG_DIRECTORY32_V13 PCIMAGE_LOAD_CONFIG_DIRECTORY32;
     1532/** @since  Visual C++ 2022 / SDK 10.0.22621.0 (22h2) */
     1533typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY32_V14
     1534{
     1535    uint32_t  Size;                                 /**< 0x00 - virtual address */
     1536    uint32_t  TimeDateStamp;                        /**< 0x04 */
     1537    uint16_t  MajorVersion;                         /**< 0x08 */
     1538    uint16_t  MinorVersion;                         /**< 0x0a */
     1539    uint32_t  GlobalFlagsClear;                     /**< 0x0c */
     1540    uint32_t  GlobalFlagsSet;                       /**< 0x10 */
     1541    uint32_t  CriticalSectionDefaultTimeout;        /**< 0x14 */
     1542    uint32_t  DeCommitFreeBlockThreshold;           /**< 0x18 - virtual address */
     1543    uint32_t  DeCommitTotalFreeThreshold;           /**< 0x1c - virtual address */
     1544    uint32_t  LockPrefixTable;                      /**< 0x20 */
     1545    uint32_t  MaximumAllocationSize;                /**< 0x24 */
     1546    uint32_t  VirtualMemoryThreshold;               /**< 0x28 - virtual address of pointer variable */
     1547    uint32_t  ProcessHeapFlags;                     /**< 0x2c - virtual address of pointer variable */
     1548    uint32_t  ProcessAffinityMask;                  /**< 0x30 - virtual address */
     1549    uint16_t  CSDVersion;                           /**< 0x34 */
     1550    uint16_t  DependentLoadFlags;                   /**< 0x36 */
     1551    uint32_t  EditList;                             /**< 0x38 */
     1552    uint32_t  SecurityCookie;                       /**< 0x3c - virtual address */
     1553    uint32_t  SEHandlerTable;                       /**< 0x40 */
     1554    uint32_t  SEHandlerCount;                       /**< 0x44 - virtual address */
     1555    uint32_t  GuardCFCCheckFunctionPointer;         /**< 0x48 */
     1556    uint32_t  GuardCFDispatchFunctionPointer;       /**< 0x4c - virtual address */
     1557    uint32_t  GuardCFFunctionTable;                 /**< 0x50 */
     1558    uint32_t  GuardCFFunctionCount;                 /**< 0x54 - virtual address */
     1559    uint32_t  GuardFlags;                           /**< 0x58 - virtual address of pointer variable */
     1560    IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; /**< 0x5c */
     1561    uint32_t  GuardAddressTakenIatEntryTable;       /**< 0x68 - virtual address */
     1562    uint32_t  GuardAddressTakenIatEntryCount;       /**< 0x6c */
     1563    uint32_t  GuardLongJumpTargetTable;             /**< 0x70 - virtual address */
     1564    uint32_t  GuardLongJumpTargetCount;             /**< 0x74 */
     1565    uint32_t  DynamicValueRelocTable;               /**< 0x78 - virtual address */
     1566    uint32_t  CHPEMetadataPointer;                  /**< 0x7c Not sure when this was renamed from HybridMetadataPointer. */
     1567    uint32_t  GuardRFFailureRoutine;                /**< 0x80 - virtual address */
     1568    uint32_t  GuardRFFailureRoutineFunctionPointer; /**< 0x84 - virtual address of pointer variable */
     1569    uint32_t  DynamicValueRelocTableOffset;         /**< 0x88 */
     1570    uint16_t  DynamicValueRelocTableSection;        /**< 0x8c */
     1571    uint16_t  Reserved2;                            /**< 0x8e */
     1572    uint32_t  GuardRFVerifyStackPointerFunctionPointer; /**< 0x90 - virtual address of pointer variable */
     1573    uint32_t  HotPatchTableOffset;                  /**< 0x94 */
     1574    uint32_t  Reserved3;                            /**< 0x98 */
     1575    uint32_t  EnclaveConfigurationPointer;          /**< 0x9c - virtual address of pointer variable */
     1576    uint32_t  VolatileMetadataPointer;              /**< 0xa0 - virtual address of pointer variable */
     1577    uint32_t  GuardEHContinuationTable;             /**< 0xa4 - virtual address */
     1578    uint32_t  GuardEHContinuationCount;             /**< 0xa8 */
     1579    uint32_t  GuardXFGCheckFunctionPointer;         /**< 0xac - virtual address of pointer variable */
     1580    uint32_t  GuardXFGDispatchFunctionPointer;      /**< 0xb0 - virtual address of pointer variable */
     1581    uint32_t  GuardXFGTableDispatchFunctionPointer; /**< 0xb4 - virtual address of pointer variable */
     1582    uint32_t  CastGuardOsDeterminedFailureMode;     /**< 0xb8 - virtual address */
     1583    uint32_t  GuardMemcpyFunctionPointer;           /**< 0xbc - virtual address */
     1584} IMAGE_LOAD_CONFIG_DIRECTORY32_V14;
     1585AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY32_V14, 0xc0);
     1586typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V14 *PIMAGE_LOAD_CONFIG_DIRECTORY32_V14;
     1587typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V14 const *PCIMAGE_LOAD_CONFIG_DIRECTORY32_V14;
     1588
     1589typedef IMAGE_LOAD_CONFIG_DIRECTORY32_V14   IMAGE_LOAD_CONFIG_DIRECTORY32;
     1590typedef PIMAGE_LOAD_CONFIG_DIRECTORY32_V14  PIMAGE_LOAD_CONFIG_DIRECTORY32;
     1591typedef PCIMAGE_LOAD_CONFIG_DIRECTORY32_V14 PCIMAGE_LOAD_CONFIG_DIRECTORY32;
    15351592
    15361593
     
    20662123typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V13 const *PCIMAGE_LOAD_CONFIG_DIRECTORY64_V13;
    20672124
    2068 typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V13   IMAGE_LOAD_CONFIG_DIRECTORY64;
    2069 typedef PIMAGE_LOAD_CONFIG_DIRECTORY64_V13  PIMAGE_LOAD_CONFIG_DIRECTORY64;
    2070 typedef PCIMAGE_LOAD_CONFIG_DIRECTORY64_V13 PCIMAGE_LOAD_CONFIG_DIRECTORY64;
     2125/** @since  Visual C++ 2022 / SDK 10.0.22621.0 (22h2) */
     2126typedef struct _IMAGE_LOAD_CONFIG_DIRECTORY64_V14
     2127{
     2128    uint32_t  Size;                                 /**< 0x00 */
     2129    uint32_t  TimeDateStamp;                        /**< 0x04 */
     2130    uint16_t  MajorVersion;                         /**< 0x08 */
     2131    uint16_t  MinorVersion;                         /**< 0x0a */
     2132    uint32_t  GlobalFlagsClear;                     /**< 0x0c */
     2133    uint32_t  GlobalFlagsSet;                       /**< 0x10 */
     2134    uint32_t  CriticalSectionDefaultTimeout;        /**< 0x14 */
     2135    uint64_t  DeCommitFreeBlockThreshold;           /**< 0x18 */
     2136    uint64_t  DeCommitTotalFreeThreshold;           /**< 0x20 */
     2137    uint64_t  LockPrefixTable;                      /**< 0x28 - virtual address */
     2138    uint64_t  MaximumAllocationSize;                /**< 0x30 */
     2139    uint64_t  VirtualMemoryThreshold;               /**< 0x38 */
     2140    uint64_t  ProcessAffinityMask;                  /**< 0x40 */
     2141    uint32_t  ProcessHeapFlags;                     /**< 0x48 */
     2142    uint16_t  CSDVersion;                           /**< 0x4c */
     2143    uint16_t  DependentLoadFlags;                   /**< 0x4e */
     2144    uint64_t  EditList;                             /**< 0x50 - virtual address */
     2145    uint64_t  SecurityCookie;                       /**< 0x58 - virtual address */
     2146    uint64_t  SEHandlerTable;                       /**< 0x60 */
     2147    uint64_t  SEHandlerCount;                       /**< 0x68 */
     2148    uint64_t  GuardCFCCheckFunctionPointer;         /**< 0x70 - virtual address of pointer variable */
     2149    uint64_t  GuardCFDispatchFunctionPointer;       /**< 0x78 - virtual address of pointer variable */
     2150    uint64_t  GuardCFFunctionTable;                 /**< 0x80 - virtual address */
     2151    uint64_t  GuardCFFunctionCount;                 /**< 0x88 */
     2152    uint32_t  GuardFlags;                           /**< 0x90 */
     2153    IMAGE_LOAD_CONFIG_CODE_INTEGRITY CodeIntegrity; /**< 0x94 */
     2154    uint64_t  GuardAddressTakenIatEntryTable;       /**< 0xa0 - virtual address */
     2155    uint64_t  GuardAddressTakenIatEntryCount;       /**< 0xa8 */
     2156    uint64_t  GuardLongJumpTargetTable;             /**< 0xb0 - virtual address */
     2157    uint64_t  GuardLongJumpTargetCount;             /**< 0xb8 */
     2158    uint64_t  DynamicValueRelocTable;               /**< 0xc0 - virtual address */
     2159    uint64_t  CHPEMetadataPointer;                  /**< 0xc8 */
     2160    uint64_t  GuardRFFailureRoutine;                /**< 0xd0 - virtual address */
     2161    uint64_t  GuardRFFailureRoutineFunctionPointer; /**< 0xd8 - virtual address of pointer variable */
     2162    uint32_t  DynamicValueRelocTableOffset;         /**< 0xe0 */
     2163    uint16_t  DynamicValueRelocTableSection;        /**< 0xe4 */
     2164    uint16_t  Reserved2;                            /**< 0xe6 */
     2165    uint64_t  GuardRFVerifyStackPointerFunctionPointer; /**< 0xe8 - virtual address of pointer variable */
     2166    uint32_t  HotPatchTableOffset;                  /**< 0xf0 */
     2167    uint32_t  Reserved3;                            /**< 0xf4 */
     2168    uint64_t  EnclaveConfigurationPointer;          /**< 0xf8 - seen in bcrypt and bcryptprimitives pointing to the string "L". */
     2169    uint64_t  VolatileMetadataPointer;              /**< 0x100 - virtual address of pointer variable */
     2170    uint64_t  GuardEHContinuationTable;             /**< 0x108 - virtual address */
     2171    uint64_t  GuardEHContinuationCount;             /**< 0x110 */
     2172    uint64_t  GuardXFGCheckFunctionPointer;         /**< 0x118 - virtual address of pointer variable */
     2173    uint64_t  GuardXFGDispatchFunctionPointer;      /**< 0x120 - virtual address of pointer variable */
     2174    uint64_t  GuardXFGTableDispatchFunctionPointer; /**< 0x128 - virtual address of pointer variable */
     2175    uint64_t  CastGuardOsDeterminedFailureMode;     /**< 0x130 - virtual address */
     2176    uint64_t  GuardMemcpyFunctionPointer;           /**< 0x138 - virtual address */
     2177} IMAGE_LOAD_CONFIG_DIRECTORY64_V14;
     2178AssertCompileSize(IMAGE_LOAD_CONFIG_DIRECTORY64_V14, 0x140);
     2179typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V14 *PIMAGE_LOAD_CONFIG_DIRECTORY64_V14;
     2180typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V14 const *PCIMAGE_LOAD_CONFIG_DIRECTORY64_V14;
     2181
     2182typedef IMAGE_LOAD_CONFIG_DIRECTORY64_V14   IMAGE_LOAD_CONFIG_DIRECTORY64;
     2183typedef PIMAGE_LOAD_CONFIG_DIRECTORY64_V14  PIMAGE_LOAD_CONFIG_DIRECTORY64;
     2184typedef PCIMAGE_LOAD_CONFIG_DIRECTORY64_V14 PCIMAGE_LOAD_CONFIG_DIRECTORY64;
    20712185
    20722186#endif /* !__ASSEMBLER__ */
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette