LIEF: Library to Instrument Executable Formats Version 0.17.0
Loading...
Searching...
No Matches
LIEF::PE::ResourceVersion::fixed_file_info_t Struct Reference

This structure represents the VS_FIXEDFILEINFO structure defined in verrsrc.h. More...

#include <ResourceVersion.hpp>

Public Types

enum class  VERSION_OS : uint32_t {
  UNKNOWN = 0x00000000 , DOS = 0x00010000 , OS216 = 0x00020000 , OS232 = 0x00030000 ,
  NT = 0x00040000 , WINCE = 0x00050000 , WINDOWS16 = 0x00000001 , PM16 = 0x00000002 ,
  PM32 = 0x00000003 , WINDOWS32 = 0x00000004 , DOS_WINDOWS16 = DOS | WINDOWS16 , DOS_WINDOWS32 = DOS | WINDOWS32 ,
  OS216_PM16 = OS216 | PM16 , OS232_PM32 = OS232 | PM32 , NT_WINDOWS32 = NT | WINDOWS32
}
 
enum class  FILE_TYPE : uint32_t {
  UNKNOWN = 0x00000000 , APP = 0x00000001 , DLL = 0x00000002 , DRV = 0x00000003 ,
  FONT = 0x00000004 , VXD = 0x00000005 , STATIC_LIB = 0x00000007
}
 
enum class  FILE_TYPE_DETAILS : uint64_t {
  UNKNOWN = 0x00000000 , DRV_PRINTER = 0x00000001 | DRV_K , DRV_KEYBOARD = 0x00000002 | DRV_K , DRV_LANGUAGE = 0x00000003 | DRV_K ,
  DRV_DISPLAY = 0x00000004 | DRV_K , DRV_MOUSE = 0x00000005 | DRV_K , DRV_NETWORK = 0x00000006 | DRV_K , DRV_SYSTEM = 0x00000007 | DRV_K ,
  DRV_INSTALLABLE = 0x00000008 | DRV_K , DRV_SOUND = 0x00000009 | DRV_K , DRV_COMM = 0x0000000A | DRV_K , DRV_INPUTMETHOD = 0x0000000B | DRV_K ,
  DRV_VERSIONED_PRINTER = 0x0000000C , FONT_RASTER = 0x00000001 | FONT_K , FONT_VECTOR = 0x00000002 | FONT_K , FONT_TRUETYPE = 0x00000003 | FONT_K
}
 
enum class  FILE_FLAGS : uint32_t {
  DEBUG = 0x00000001 , INFO_INFERRED = 0x00000010 , PATCHED = 0x00000004 , PRERELEASE = 0x00000002 ,
  PRIVATEBUILD = 0x00000008 , SPECIALBUILD = 0x00000020
}
 

Public Member Functions

bool has (FILE_FLAGS f) const
 Check if the given FILE_FLAGS is present.
 
std::vector< FILE_FLAGSflags () const
 List of FILE_FLAGS.
 
FILE_TYPE_DETAILS file_type_details () const
 
std::string to_string () const
 

Public Attributes

uint32_t signature = 0
 Contains the value 0xFEEF04BD. This is used with the szKey member of the VS_VERSIONINFO structure when searching a file for the VS_FIXEDFILEINFO structure.
 
uint32_t struct_version = 0
 The binary version number of this structure. The high-order word of this member contains the major version number, and the low-order word contains the minor version number.
 
uint32_t file_version_ms = 0
 The most significant 32 bits of the file's binary version number. This member is used with file_version_ls to form a 64-bit value used for numeric comparisons.
 
uint32_t file_version_ls = 0
 The least significant 32 bits of the file's binary version number. This member is used with file_version_ms to form a 64-bit value used for numeric comparisons.
 
uint32_t product_version_ms = 0
 The most significant 32 bits of the binary version number of the product with which this file was distributed. This member is used with product_version_ls to form a 64-bit value used for numeric comparisons.
 
uint32_t product_version_ls = 0
 The least significant 32 bits of the binary version number of the product with which this file was distributed. This member is used with product_version_ms to form a 64-bit value used for numeric comparisons.
 
uint32_t file_flags_mask = 0
 Contains a bitmask that specifies the valid bits in file_flags. A bit is valid only if it was defined when the file was created.
 
uint32_t file_flags = 0
 Contains a bitmask that specifies the Boolean attributes of the file. This member can include one or more of the values specified in FILE_FLAGS.
 
uint32_t file_os = 0
 The operating system for which this file was designed. This member can be one of the values specified in VERSION_OS.
 
uint32_t file_type = 0
 The general type of file. This member can be one of the values specified in FILE_TYPE. All other values are reserved.
 
uint32_t file_subtype = 0
 The function of the file. The possible values depend on the value of file_type.
 
uint32_t file_date_ms = 0
 The most significant 32 bits of the file's 64-bit binary creation date and time stamp.
 
uint32_t file_date_ls = 0
 The least significant 32 bits of the file's 64-bit binary creation date and time stamp.
 

Static Public Attributes

static constexpr auto DRV_K = uint64_t(1) << 33
 
static constexpr auto FONT_K = uint64_t(1) << 34
 
static constexpr auto SIGNATURE_VALUE = 0xFEEF04BD
 

Detailed Description

This structure represents the VS_FIXEDFILEINFO structure defined in verrsrc.h.

Member Enumeration Documentation

◆ FILE_FLAGS

Enumerator
DEBUG 

The file contains debugging information or is compiled with debugging features enabled.

INFO_INFERRED 

The file's version structure was created dynamically; therefore, some of the members in this structure may be empty or incorrect. This flag should never be set in a file's VS_VERSIONINFO data.

PATCHED 

The file has been modified and is not identical to the original shipping file of the same version number.

PRERELEASE 

The file is a development version, not a commercially released product.

PRIVATEBUILD 

The file was not built using standard release procedures. If this flag is set, the StringFileInfo structure should contain a PrivateBuild entry.

SPECIALBUILD 

The file was built by the original company using standard release procedures but is a variation of the normal file of the same version number. If this flag is set, the StringFileInfo structure should contain a SpecialBuild entry.

◆ FILE_TYPE

Enumerator
UNKNOWN 

The file type is unknown to the system.

APP 

The file contains an application.

DLL 

The file contains a DLL.

DRV 

The file contains a device driver. If dwFileType is VFT_DRV, dwFileSubtype contains a more specific description of the driver.

FONT 

The file contains a font. If dwFileType is VFT_FONT, dwFileSubtype contains a more specific description of the font file.

VXD 

The file contains a virtual device.

STATIC_LIB 

The file contains a static-link library.

◆ FILE_TYPE_DETAILS

Enumerator
UNKNOWN 

The type is unknown by the system.

DRV_PRINTER 

The file contains a printer driver.

DRV_KEYBOARD 

The file contains a keyboard driver.

DRV_LANGUAGE 

The file contains a language driver.

DRV_DISPLAY 

The file contains a display driver.

DRV_MOUSE 

The file contains a mouse driver.

DRV_NETWORK 

The file contains a network driver.

DRV_SYSTEM 

The file contains a system driver.

DRV_INSTALLABLE 

The file contains an installable driver.

DRV_SOUND 

The file contains a sound driver.

DRV_COMM 

The file contains a communications driver.

DRV_INPUTMETHOD 
DRV_VERSIONED_PRINTER 

The file contains a versioned printer driver.

FONT_RASTER 

The file contains a raster font.

FONT_VECTOR 

The file contains a vector font.

FONT_TRUETYPE 

The file contains a TrueType font.

◆ VERSION_OS

Enumerator
UNKNOWN 

The operating system for which the file was designed is unknown to the system.

DOS 

The file was designed for MS-DOS.

OS216 

The file was designed for 16-bit OS/2.

OS232 

The file was designed for 32-bit OS/2.

NT 

The file was designed for Windows NT.

WINCE 

The file was designed for Windows CE (Windows Embedded Compact).

WINDOWS16 

The file was designed for 16-bit Windows.

PM16 

The file was designed for 16-bit Presentation Manager.

PM32 

The file was designed for 32-bit Presentation Manager.

WINDOWS32 

The file was designed for 32-bit Windows.

DOS_WINDOWS16 

The file was designed for 16-bit Windows running on MS-DOS.

DOS_WINDOWS32 

The file was designed for 32-bit Windows running on MS-DOS.

OS216_PM16 

The file was designed for 16-bit Presentation Manager running on 16-bit OS/2.

OS232_PM32 

The file was designed for 32-bit Presentation Manager running on 32-bit OS/2.

NT_WINDOWS32 

The file was designed for Windows NT.

Member Function Documentation

◆ file_type_details()

FILE_TYPE_DETAILS LIEF::PE::ResourceVersion::fixed_file_info_t::file_type_details ( ) const
inline

◆ flags()

std::vector< FILE_FLAGS > LIEF::PE::ResourceVersion::fixed_file_info_t::flags ( ) const

List of FILE_FLAGS.

◆ has()

bool LIEF::PE::ResourceVersion::fixed_file_info_t::has ( FILE_FLAGS f) const
inline

Check if the given FILE_FLAGS is present.

◆ to_string()

std::string LIEF::PE::ResourceVersion::fixed_file_info_t::to_string ( ) const

Member Data Documentation

◆ DRV_K

auto LIEF::PE::ResourceVersion::fixed_file_info_t::DRV_K = uint64_t(1) << 33
staticconstexpr

◆ file_date_ls

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_date_ls = 0

The least significant 32 bits of the file's 64-bit binary creation date and time stamp.

◆ file_date_ms

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_date_ms = 0

The most significant 32 bits of the file's 64-bit binary creation date and time stamp.

◆ file_flags

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_flags = 0

Contains a bitmask that specifies the Boolean attributes of the file. This member can include one or more of the values specified in FILE_FLAGS.

◆ file_flags_mask

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_flags_mask = 0

Contains a bitmask that specifies the valid bits in file_flags. A bit is valid only if it was defined when the file was created.

◆ file_os

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_os = 0

The operating system for which this file was designed. This member can be one of the values specified in VERSION_OS.

◆ file_subtype

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_subtype = 0

The function of the file. The possible values depend on the value of file_type.

◆ file_type

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_type = 0

The general type of file. This member can be one of the values specified in FILE_TYPE. All other values are reserved.

◆ file_version_ls

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_version_ls = 0

The least significant 32 bits of the file's binary version number. This member is used with file_version_ms to form a 64-bit value used for numeric comparisons.

◆ file_version_ms

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::file_version_ms = 0

The most significant 32 bits of the file's binary version number. This member is used with file_version_ls to form a 64-bit value used for numeric comparisons.

◆ FONT_K

auto LIEF::PE::ResourceVersion::fixed_file_info_t::FONT_K = uint64_t(1) << 34
staticconstexpr

◆ product_version_ls

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::product_version_ls = 0

The least significant 32 bits of the binary version number of the product with which this file was distributed. This member is used with product_version_ms to form a 64-bit value used for numeric comparisons.

◆ product_version_ms

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::product_version_ms = 0

The most significant 32 bits of the binary version number of the product with which this file was distributed. This member is used with product_version_ls to form a 64-bit value used for numeric comparisons.

◆ signature

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::signature = 0

Contains the value 0xFEEF04BD. This is used with the szKey member of the VS_VERSIONINFO structure when searching a file for the VS_FIXEDFILEINFO structure.

◆ SIGNATURE_VALUE

auto LIEF::PE::ResourceVersion::fixed_file_info_t::SIGNATURE_VALUE = 0xFEEF04BD
staticconstexpr

◆ struct_version

uint32_t LIEF::PE::ResourceVersion::fixed_file_info_t::struct_version = 0

The binary version number of this structure. The high-order word of this member contains the major version number, and the low-order word contains the minor version number.


The documentation for this struct was generated from the following file: