winnt.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 1,791 行 · 第 1/5 页

H
1,791
字号
#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10b
#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20b
#ifdef _WIN64
#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC
#else
#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC
#endif
#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x107
#define IMAGE_SEPARATE_DEBUG_SIGNATURE 0x4944
#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER 224
#define IMAGE_SIZEOF_SHORT_NAME 8
#define IMAGE_SIZEOF_SECTION_HEADER 40
#define IMAGE_SIZEOF_SYMBOL 18
#define IMAGE_SIZEOF_AUX_SYMBOL 18
#define IMAGE_SIZEOF_RELOCATION 10
#define IMAGE_SIZEOF_BASE_RELOCATION 8
#define IMAGE_SIZEOF_LINENUMBER 6
#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
#define SIZEOF_RFPO_DATA 16

#define IMAGE_SUBSYSTEM_UNKNOWN	0
#define IMAGE_SUBSYSTEM_NATIVE	1
#define IMAGE_SUBSYSTEM_WINDOWS_GUI	2
#define IMAGE_SUBSYSTEM_WINDOWS_CUI	3
#define IMAGE_SUBSYSTEM_OS2_CUI		5  /* Not in PECOFF v8 spec */
#define IMAGE_SUBSYSTEM_POSIX_CUI	7
#define IMAGE_SUBSYSTEM_NATIVE_WINDOWS	8  /* Not in PECOFF v8 spec */
#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI	9
#define IMAGE_SUBSYSTEM_EFI_APPLICATION	10
#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER	11
#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER	12
#define IMAGE_SUBSYSTEM_EFI_ROM	13
#define IMAGE_SUBSYSTEM_XBOX	14

#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE		0x0040
#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY	0x0080
#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT		0x0100
#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION		0x0200
#define IMAGE_DLLCHARACTERISTICS_NO_SEH			0x0400
#define IMAGE_DLLCHARACTERISTICS_NO_BIND		0x0800
#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER		0x2000
#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE	0x8000

#define IMAGE_FIRST_SECTION(h) ((PIMAGE_SECTION_HEADER) ((DWORD)h+FIELD_OFFSET(IMAGE_NT_HEADERS,OptionalHeader)+((PIMAGE_NT_HEADERS)(h))->FileHeader.SizeOfOptionalHeader))
#define IMAGE_DIRECTORY_ENTRY_EXPORT	0
#define IMAGE_DIRECTORY_ENTRY_IMPORT	1
#define IMAGE_DIRECTORY_ENTRY_RESOURCE	2
#define IMAGE_DIRECTORY_ENTRY_EXCEPTION	3
#define IMAGE_DIRECTORY_ENTRY_SECURITY	4
#define IMAGE_DIRECTORY_ENTRY_BASERELOC	5
#define IMAGE_DIRECTORY_ENTRY_DEBUG	6
#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT	7
#define IMAGE_DIRECTORY_ENTRY_ARCHITECTURE	7
#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR	8
#define IMAGE_DIRECTORY_ENTRY_TLS	9
#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG	10
#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT	11
#define IMAGE_DIRECTORY_ENTRY_IAT	12
#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT	13
#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR	14
#define IMAGE_SCN_TYPE_REG 0
#define IMAGE_SCN_TYPE_DSECT 1
#define IMAGE_SCN_TYPE_NOLOAD 2
#define IMAGE_SCN_TYPE_GROUP 4
#define IMAGE_SCN_TYPE_NO_PAD 8
#define IMAGE_SCN_TYPE_COPY 16
#define IMAGE_SCN_CNT_CODE 32
#define IMAGE_SCN_CNT_INITIALIZED_DATA 64
#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 128
#define IMAGE_SCN_LNK_OTHER 256
#define IMAGE_SCN_LNK_INFO 512
#define IMAGE_SCN_TYPE_OVER 1024
#define IMAGE_SCN_LNK_REMOVE 2048
#define IMAGE_SCN_LNK_COMDAT 4096
#define IMAGE_SCN_GPREL	0x8000 /*  Valid only for IA64 */
#define IMAGE_SCN_MEM_FARDATA 0x8000 /* Not in PECOFF v8 spec */
#define IMAGE_SCN_MEM_PURGEABLE 0x20000
#define IMAGE_SCN_MEM_16BIT 0x20000
#define IMAGE_SCN_MEM_LOCKED  0x40000
#define IMAGE_SCN_MEM_PRELOAD 0x80000
#define IMAGE_SCN_ALIGN_1BYTES 0x100000
#define IMAGE_SCN_ALIGN_2BYTES 0x200000
#define IMAGE_SCN_ALIGN_4BYTES 0x300000
#define IMAGE_SCN_ALIGN_8BYTES 0x400000
#define IMAGE_SCN_ALIGN_16BYTES 0x500000
#define IMAGE_SCN_ALIGN_32BYTES 0x600000
#define IMAGE_SCN_ALIGN_64BYTES 0x700000
#define IMAGE_SCN_ALIGN_128BYTES 0x800000
#define IMAGE_SCN_ALIGN_256BYTES 0x900000
#define IMAGE_SCN_ALIGN_512BYTES 0xa00000
#define IMAGE_SCN_ALIGN_1024BYTES 0xb00000
#define IMAGE_SCN_ALIGN_2048BYTES 0xc00000
#define IMAGE_SCN_ALIGN_4096BYTES 0xd00000
#define IMAGE_SCN_ALIGN_8192BYTES 0xe00000
#define IMAGE_SCN_LNK_NRELOC_OVFL 0x1000000
#define IMAGE_SCN_MEM_DISCARDABLE 0x2000000
#define IMAGE_SCN_MEM_NOT_CACHED 0x4000000
#define IMAGE_SCN_MEM_NOT_PAGED 0x8000000
#define IMAGE_SCN_MEM_SHARED 0x10000000
#define IMAGE_SCN_MEM_EXECUTE 0x20000000
#define IMAGE_SCN_MEM_READ 0x40000000
#define IMAGE_SCN_MEM_WRITE 0x80000000
#define IMAGE_SYM_UNDEFINED	0
#define IMAGE_SYM_ABSOLUTE (-1)
#define IMAGE_SYM_DEBUG	(-2)
#define IMAGE_SYM_TYPE_NULL 0
#define IMAGE_SYM_TYPE_VOID 1
#define IMAGE_SYM_TYPE_CHAR 2
#define IMAGE_SYM_TYPE_SHORT 3
#define IMAGE_SYM_TYPE_INT 4
#define IMAGE_SYM_TYPE_LONG 5
#define IMAGE_SYM_TYPE_FLOAT 6
#define IMAGE_SYM_TYPE_DOUBLE 7
#define IMAGE_SYM_TYPE_STRUCT 8
#define IMAGE_SYM_TYPE_UNION 9
#define IMAGE_SYM_TYPE_ENUM 10
#define IMAGE_SYM_TYPE_MOE 11
#define IMAGE_SYM_TYPE_BYTE 12
#define IMAGE_SYM_TYPE_WORD 13
#define IMAGE_SYM_TYPE_UINT 14
#define IMAGE_SYM_TYPE_DWORD 15
#define IMAGE_SYM_TYPE_PCODE 32768
#define IMAGE_SYM_DTYPE_NULL 0
#define IMAGE_SYM_DTYPE_POINTER 1
#define IMAGE_SYM_DTYPE_FUNCTION 2
#define IMAGE_SYM_DTYPE_ARRAY 3
#define IMAGE_SYM_CLASS_END_OF_FUNCTION	(-1)
#define IMAGE_SYM_CLASS_NULL 0
#define IMAGE_SYM_CLASS_AUTOMATIC 1
#define IMAGE_SYM_CLASS_EXTERNAL 2
#define IMAGE_SYM_CLASS_STATIC 3
#define IMAGE_SYM_CLASS_REGISTER 4
#define IMAGE_SYM_CLASS_EXTERNAL_DEF 5
#define IMAGE_SYM_CLASS_LABEL 6
#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 7
#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 8
#define IMAGE_SYM_CLASS_ARGUMENT 9
#define IMAGE_SYM_CLASS_STRUCT_TAG 10
#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 11
#define IMAGE_SYM_CLASS_UNION_TAG 12
#define IMAGE_SYM_CLASS_TYPE_DEFINITION 13
#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 14
#define IMAGE_SYM_CLASS_ENUM_TAG 15
#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 16
#define IMAGE_SYM_CLASS_REGISTER_PARAM 17
#define IMAGE_SYM_CLASS_BIT_FIELD 18
#define IMAGE_SYM_CLASS_FAR_EXTERNAL 68 /* Not in PECOFF v8 spec */
#define IMAGE_SYM_CLASS_BLOCK 100
#define IMAGE_SYM_CLASS_FUNCTION 101
#define IMAGE_SYM_CLASS_END_OF_STRUCT 102
#define IMAGE_SYM_CLASS_FILE 103
#define IMAGE_SYM_CLASS_SECTION 104
#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 105
#define IMAGE_SYM_CLASS_CLR_TOKEN 107

#define IMAGE_COMDAT_SELECT_NODUPLICATES 1
#define IMAGE_COMDAT_SELECT_ANY 2
#define IMAGE_COMDAT_SELECT_SAME_SIZE 3
#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4
#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
#define IMAGE_COMDAT_SELECT_LARGEST 6
#define IMAGE_COMDAT_SELECT_NEWEST 7 /* Not in PECOFF v8 spec */

#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3

#define IMAGE_REL_I386_ABSOLUTE	0x0000
#define IMAGE_REL_I386_DIR16	0x0001
#define IMAGE_REL_I386_REL16	0x0002
#define IMAGE_REL_I386_DIR32	0x0006
#define IMAGE_REL_I386_DIR32NB	0x0007
#define IMAGE_REL_I386_SEG12	0x0009
#define IMAGE_REL_I386_SECTION	0x000A
#define IMAGE_REL_I386_SECREL	0x000B
#define IMAGE_REL_I386_TOKEN	0x000C
#define IMAGE_REL_I386_SECREL7	0x000D
#define IMAGE_REL_I386_REL32	0x0014

#define IMAGE_REL_AMD64_ABSOLUTE	0x0000
#define IMAGE_REL_AMD64_ADDR64		0x0001
#define IMAGE_REL_AMD64_ADDR32		0x0002
#define IMAGE_REL_AMD64_ADDR32NB	0x0003
#define IMAGE_REL_AMD64_REL32		0x0004
#define IMAGE_REL_AMD64_REL32_1		0x0005
#define IMAGE_REL_AMD64_REL32_2		0x0006
#define IMAGE_REL_AMD64_REL32_3		0x0007
#define IMAGE_REL_AMD64_REL32_4		0x0008
#define IMAGE_REL_AMD64_REL32_5		0x0009
#define IMAGE_REL_AMD64_SECTION		0x000A
#define IMAGE_REL_AMD64_SECREL		0x000B
#define IMAGE_REL_AMD64_SECREL7		0x000C
#define IMAGE_REL_AMD64_TOKEN		0x000D
#define IMAGE_REL_AMD64_SREL32		0x000E
#define IMAGE_REL_AMD64_PAIR		0x000F
#define IMAGE_REL_AMD64_SSPAN32		0x0010

#define IMAGE_REL_IA64_ABSOLUTE		0x0000
#define IMAGE_REL_IA64_IMM14		0x0001
#define IMAGE_REL_IA64_IMM22		0x0002
#define IMAGE_REL_IA64_IMM64		0x0003
#define IMAGE_REL_IA64_DIR32		0x0004
#define IMAGE_REL_IA64_DIR64		0x0005
#define IMAGE_REL_IA64_PCREL21B		0x0006
#define IMAGE_REL_IA64_PCREL21M		0x0007
#define IMAGE_REL_IA64_PCREL21F		0x0008
#define IMAGE_REL_IA64_GPREL22		0x0009
#define IMAGE_REL_IA64_LTOFF22		0x000A
#define IMAGE_REL_IA64_SECTION		0x000B
#define IMAGE_REL_IA64_SECREL22		0x000C
#define IMAGE_REL_IA64_SECREL64I	0x000D
#define IMAGE_REL_IA64_SECREL32		0x000E
#define IMAGE_REL_IA64_DIR32NB		0x0010
#define IMAGE_REL_IA64_SREL14		0x0011
#define IMAGE_REL_IA64_SREL22		0x0012
#define IMAGE_REL_IA64_SREL32		0x0013
#define IMAGE_REL_IA64_UREL32		0x0014
#define IMAGE_REL_IA64_PCREL60X		0x0015
#define IMAGE_REL_IA64_PCREL60B		0x0016
#define IMAGE_REL_IA64_PCREL60F		0x0017
#define IMAGE_REL_IA64_PCREL60I		0x0018
#define IMAGE_REL_IA64_PCREL60M		0x0019
#define IMAGE_REL_IA64_IMMGPREL64	0x001a
#define IMAGE_REL_IA64_TOKEN		0x001b
#define IMAGE_REL_IA64_GPREL32		0x001c
#define IMAGE_REL_IA64_ADDEND		0x001F

#define	IMAGE_REL_SH3_ABSOLUTE		0x0000
#define	IMAGE_REL_SH3_DIRECT16		0x0001
#define	IMAGE_REL_SH3_DIRECT32		0x0002
#define	IMAGE_REL_SH3_DIRECT8		0x0003
#define	IMAGE_REL_SH3_DIRECT8_WORD	0x0004
#define	IMAGE_REL_SH3_DIRECT8_LONG	0x0005
#define	IMAGE_REL_SH3_DIRECT4		0x0006
#define	IMAGE_REL_SH3_DIRECT4_WORD	0x0007
#define	IMAGE_REL_SH3_DIRECT4_LONG	0x0008
#define	IMAGE_REL_SH3_PCREL8_WORD	0x0009
#define	IMAGE_REL_SH3_PCREL8_LONG	0x000A
#define	IMAGE_REL_SH3_PCREL12_WORD	0x000B
#define	IMAGE_REL_SH3_STARTOF_SECTION	0x000C
#define	IMAGE_REL_SH3_SIZEOF_SECTION	0x000D
#define	IMAGE_REL_SH3_SECTION		0x000E
#define	IMAGE_REL_SH3_SECREL		0x000F
#define	IMAGE_REL_SH3_DIRECT32_NB	0x0010
#define	IMAGE_REL_SH3_GPREL4_LONG	0x0011
#define	IMAGE_REL_SH3_TOKEN		0x0012
#define	IMAGE_REL_SHM_PCRELPT		0x0013
#define	IMAGE_REL_SHM_REFLO		0x0014
#define	IMAGE_REL_SHM_REFHALF		0x0015
#define	IMAGE_REL_SHM_RELLO		0x0016
#define	IMAGE_REL_SHM_RELHALF		0x0017
#define	IMAGE_REL_SHM_PAIR		0x0018
#define	IMAGE_REL_SHM_NOMODE		0x8000

#define	IMAGE_REL_M32R_ABSOLUTE	0x0000
#define	IMAGE_REL_M32R_ADDR32	0x0001
#define	IMAGE_REL_M32R_ADDR32NB	0x0002
#define	IMAGE_REL_M32R_ADDR24	0x0003
#define	IMAGE_REL_M32R_GPREL16	0x0004
#define	IMAGE_REL_M32R_PCREL24	0x0005
#define	IMAGE_REL_M32R_PCREL16	0x0006
#define	IMAGE_REL_M32R_PCREL8	0x0007
#define	IMAGE_REL_M32R_REFHALF	0x0008
#define	IMAGE_REL_M32R_REFHI	0x0009
#define	IMAGE_REL_M32R_REFLO	0x000A
#define	IMAGE_REL_M32R_PAIR	0x000B
#define	IMAGE_REL_M32R_SECTION	0x000C
#define	IMAGE_REL_M32R_SECREL	0x000D
#define	IMAGE_REL_M32R_TOKEN	0x000E

#define	IMAGE_REL_MIPS_ABSOLUTE	0x0000
#define	IMAGE_REL_MIPS_REFHALF	0x0001
#define	IMAGE_REL_MIPS_REFWORD	0x0002
#define	IMAGE_REL_MIPS_JMPADDR	0x0003
#define	IMAGE_REL_MIPS_REFHI	0x0004
#define	IMAGE_REL_MIPS_REFLO	0x0005
#define	IMAGE_REL_MIPS_GPREL	0x0006
#define	IMAGE_REL_MIPS_LITERAL	0x0007
#define	IMAGE_REL_MIPS_SECTION	0x000A
#define	IMAGE_REL_MIPS_SECREL	0x000B
#define	IMAGE_REL_MIPS_SECRELLO	0x000C
#define	IMAGE_REL_MIPS_SECRELHI	0x000D
#define	IMAGE_REL_MIPS_JMPADDR16	0x0010
#define	IMAGE_REL_MIPS_REFWORDNB	0x0022
#define	IMAGE_REL_MIPS_PAIR	0x0025

#define IMAGE_REL_ALPHA_ABSOLUTE 0
#define IMAGE_REL_ALPHA_REFLONG 1
#define IMAGE_REL_ALPHA_REFQUAD 2
#define IMAGE_REL_ALPHA_GPREL32 3
#define IMAGE_REL_ALPHA_LITERAL 4
#define IMAGE_REL_ALPHA_LITUSE 5
#define IMAGE_REL_ALPHA_GPDISP 6
#define IMAGE_REL_ALPHA_BRADDR 7
#define IMAGE_REL_ALPHA_HINT 8
#define IMAGE_REL_ALPHA_INLINE_REFLONG 9
#define IMAGE_REL_ALPHA_REFHI 10
#define IMAGE_REL_ALPHA_REFLO 11
#define IMAGE_REL_ALPHA_PAIR 12
#define IMAGE_REL_ALPHA_MATCH 13
#define IMAGE_REL_ALPHA_SECTION 14
#define IMAGE_REL_ALPHA_SECREL 15
#define IMAGE_REL_ALPHA_REFLONGNB 16
#define IMAGE_REL_ALPHA_SECRELLO 17
#define IMAGE_REL_ALPHA_SECRELHI 18
#define IMAGE_REL_PPC_ABSOLUTE 0
#define IMAGE_REL_PPC_ADDR64 1
#define IMAGE_REL_PPC_ADDR32 2
#define IMAGE_REL_PPC_ADDR24 3
#define IMAGE_REL_PPC_ADDR16 4
#define IMAGE_REL_PPC_ADDR14 5
#define IMAGE_REL_PPC_REL24 6
#define IMAGE_REL_PPC_REL14 7
#define IMAGE_REL_PPC_TOCREL16 8
#define IMAGE_REL_PPC_TOCREL14 9
#define IMAGE_REL_PPC_ADDR32NB 10
#define IMAGE_REL_PPC_SECREL 11
#define IMAGE_REL_PPC_SECTION 12
#define IMAGE_REL_PPC_IFGLUE 13
#define IMAGE_REL_PPC_IMGLUE 14
#define IMAGE_REL_PPC_SECREL16 15
#define IMAGE_REL_PPC_REFHI 16
#define IMAGE_REL_PPC_REFLO 17
#define IMAGE_REL_PPC_PAIR 18
#define IMAGE_REL_PPC_TYPEMASK 255
#define IMAGE_REL_PPC_NEG 256
#define IMAGE_REL_PPC_BRTAKEN 512
#define IMAGE_REL_PPC_BRNTAKEN 1024
#define IMAGE_REL_PPC_TOCDEFN 2048
#define IMAGE_REL_BASED_ABSOLUTE 0
#define IMAGE_REL_BASED_HIGH 1
#define IMAGE_REL_BASED_LOW 2
#define IMAGE_REL_BASED_HIGHLOW 3
#define IMAGE_REL_BASED_HIGHADJ 4
#define IMAGE_REL_BASED_MIPS_JMPADDR 5
#define IMAGE_ARCHIVE_START_SIZE 8
#define IMAGE_ARCHIVE_START "!<arch>\n"
#define IMAGE_ARCHIVE_END "`\n"
#define IMAGE_ARCHIVE_PAD "\n"
#define IMAGE_ARCHIVE_LINKER_MEMBER "/               "
#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "//              "
#define IMAGE_ORDINAL_FLAG32 0x80000000
#define IMAGE_SNAP_BY_ORDINAL32(o) ((o&IMAGE_ORDINAL_FLAG32)!=0)
#define IMAGE_ORDINAL32(o) (o&0xffff)
#define IMAGE_ORDINAL_FLAG64 0x8000000000000000ULL
#define IMAGE_SNAP_BY_ORDINAL64(o) ((o&IMAGE_ORDINAL_FLAG64)!=0)
#define IMAGE_ORDINAL64(o) (o&0xffff)
#ifdef _WIN64
#define IMAGE_ORDINAL_FLAG		IMAGE_ORDINAL_FLAG64
#define IMAGE_SNAP_BY_ORDINAL(o)	IMAGE_SNAP_BY_ORDINAL64(o)
#define IMAGE_ORDINAL(o)		IMAGE_ORDINAL64(o)
#else
#define IMAGE_ORDINAL_FLAG		IMAGE_ORDINAL_FLAG32
#define IMAGE_SNAP_BY_ORDINAL(o)	IMAGE_SNAP_BY_ORDINAL32(o)
#define IMAGE_ORDINAL(o)		IMAGE_ORDINAL32(o)
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?