⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pe_linker.h

📁 ndis在linux下的无线网卡驱动源码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* Import thunk */typedef struct _IMAGE_THUNK_DATA32 {	union {		DWORD    ForwarderString;		DWORD    Function;		DWORD    Ordinal;		DWORD	AddressOfData;	} u1;} IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;typedef struct _IMAGE_THUNK_DATA64 {	union {		ULONGLONG    ForwarderString;		ULONGLONG    Function;		ULONGLONG    Ordinal;		ULONGLONG    AddressOfData;	} u1;} IMAGE_THUNK_DATA64,*PIMAGE_THUNK_DATA64;#ifdef CONFIG_X86_64typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA;#elsetypedef IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA;typedef PIMAGE_THUNK_DATA64 PIMAGE_THUNK_DATA;#endif/* Import module directory */typedef struct packed _IMAGE_IMPORT_DESCRIPTOR {	union {		DWORD	Characteristics; /* 0 for terminating null					  * import descriptor */		DWORD   OriginalFirstThunk; /* RVA to original unbound					     * IAT */	} u;	DWORD	TimeDateStamp;	/* 0 if not bound,				 * -1 if bound, and real date\time stamp				 *    in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT				 * (new BIND)				 * otherwise date/time stamp of DLL bound to				 * (Old BIND)				 */	DWORD	ForwarderChain;	/* -1 if no forwarders */	DWORD	Name;	/* RVA to IAT (if bound this IAT has actual addresses) */	DWORD   FirstThunk;} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR;#define	IMAGE_ORDINAL_FLAG32		0x80000000#define	IMAGE_ORDINAL_FLAG64		0x8000000000000000#define	IMAGE_SNAP_BY_ORDINAL32(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG32) != 0)#define	IMAGE_SNAP_BY_ORDINAL64(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG64) != 0)#define	IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)#ifdef CONFIG_X86_64#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG64#define IMAGE_SNAP_BY_ORDINAL IMAGE_SNAP_BY_ORDINAL64#else#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG32#define IMAGE_SNAP_BY_ORDINAL IMAGE_SNAP_BY_ORDINAL32#endiftypedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR{    DWORD   TimeDateStamp;    WORD    OffsetModuleName;    WORD    NumberOfModuleForwarderRefs;/* Array of zero or more IMAGE_BOUND_FORWARDER_REF follows */} IMAGE_BOUND_IMPORT_DESCRIPTOR,  *PIMAGE_BOUND_IMPORT_DESCRIPTOR;typedef struct _IMAGE_BOUND_FORWARDER_REF{    DWORD   TimeDateStamp;    WORD    OffsetModuleName;    WORD    Reserved;} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF;typedef struct _IMAGE_BASE_RELOCATION{	DWORD	VirtualAddress;	DWORD	SizeOfBlock;	WORD	TypeOffset[0];} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION;typedef struct _IMAGE_RELOCATION{    union {        DWORD   VirtualAddress;        DWORD   RelocCount;    } DUMMYUNIONNAME;    DWORD   SymbolTableIndex;    WORD    Type;} IMAGE_RELOCATION, *PIMAGE_RELOCATION;#define IMAGE_SIZEOF_RELOCATION 10/* generic relocation types */#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_REL_BASED_SECTION			6#define	IMAGE_REL_BASED_REL			7#define IMAGE_REL_BASED_MIPS_JMPADDR16		9#define IMAGE_REL_BASED_IA64_IMM64		9 /* yes, 9 too */#define IMAGE_REL_BASED_DIR64			10#define IMAGE_REL_BASED_HIGH3ADJ		11/* I386 relocation types */#define	IMAGE_REL_I386_ABSOLUTE			0#define	IMAGE_REL_I386_DIR16			1#define	IMAGE_REL_I386_REL16			2#define	IMAGE_REL_I386_DIR32			6#define	IMAGE_REL_I386_DIR32NB			7#define	IMAGE_REL_I386_SEG12			9#define	IMAGE_REL_I386_SECTION			10#define	IMAGE_REL_I386_SECREL			11#define	IMAGE_REL_I386_REL32			20/* MIPS relocation types */#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/* ALPHA relocation types */#define IMAGE_REL_ALPHA_ABSOLUTE	0x0000#define IMAGE_REL_ALPHA_REFLONG		0x0001#define IMAGE_REL_ALPHA_REFQUAD		0x0002#define IMAGE_REL_ALPHA_GPREL		0x0003#define IMAGE_REL_ALPHA_LITERAL		0x0004#define IMAGE_REL_ALPHA_LITUSE		0x0005#define IMAGE_REL_ALPHA_GPDISP		0x0006#define IMAGE_REL_ALPHA_BRADDR		0x0007#define IMAGE_REL_ALPHA_HINT		0x0008#define IMAGE_REL_ALPHA_INLINE_REFLONG	0x0009#define IMAGE_REL_ALPHA_REFHI		0x000A#define IMAGE_REL_ALPHA_REFLO		0x000B#define IMAGE_REL_ALPHA_PAIR		0x000C#define IMAGE_REL_ALPHA_MATCH		0x000D#define IMAGE_REL_ALPHA_SECTION		0x000E#define IMAGE_REL_ALPHA_SECREL		0x000F#define IMAGE_REL_ALPHA_REFLONGNB	0x0010#define IMAGE_REL_ALPHA_SECRELLO	0x0011#define IMAGE_REL_ALPHA_SECRELHI	0x0012#define IMAGE_REL_ALPHA_REFQ3		0x0013#define IMAGE_REL_ALPHA_REFQ2		0x0014#define IMAGE_REL_ALPHA_REFQ1		0x0015#define IMAGE_REL_ALPHA_GPRELLO		0x0016#define IMAGE_REL_ALPHA_GPRELHI		0x0017/* PowerPC relocation types */#define IMAGE_REL_PPC_ABSOLUTE          0x0000#define IMAGE_REL_PPC_ADDR64            0x0001#define IMAGE_REL_PPC_ADDR            0x0002#define IMAGE_REL_PPC_ADDR24            0x0003#define IMAGE_REL_PPC_ADDR16            0x0004#define IMAGE_REL_PPC_ADDR14            0x0005#define IMAGE_REL_PPC_REL24             0x0006#define IMAGE_REL_PPC_REL14             0x0007#define IMAGE_REL_PPC_TOCREL16          0x0008#define IMAGE_REL_PPC_TOCREL14          0x0009#define IMAGE_REL_PPC_ADDR32NB          0x000A#define IMAGE_REL_PPC_SECREL            0x000B#define IMAGE_REL_PPC_SECTION           0x000C#define IMAGE_REL_PPC_IFGLUE            0x000D#define IMAGE_REL_PPC_IMGLUE            0x000E#define IMAGE_REL_PPC_SECREL16          0x000F#define IMAGE_REL_PPC_REFHI             0x0010#define IMAGE_REL_PPC_REFLO             0x0011#define IMAGE_REL_PPC_PAIR              0x0012#define IMAGE_REL_PPC_SECRELLO          0x0013#define IMAGE_REL_PPC_SECRELHI          0x0014#define IMAGE_REL_PPC_GPREL		0x0015#define IMAGE_REL_PPC_TYPEMASK          0x00FF/* modifier bits */#define IMAGE_REL_PPC_NEG               0x0100#define IMAGE_REL_PPC_BRTAKEN           0x0200#define IMAGE_REL_PPC_BRNTAKEN          0x0400#define IMAGE_REL_PPC_TOCDEFN           0x0800/* SH3 ? relocation type */#define IMAGE_REL_SH3_ABSOLUTE          0x0000#define IMAGE_REL_SH3_DIRECT16          0x0001#define IMAGE_REL_SH3_DIRECT          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/* ARM (Archimedes?) relocation types */#define IMAGE_REL_ARM_ABSOLUTE		0x0000#define IMAGE_REL_ARM_ADDR		0x0001#define IMAGE_REL_ARM_ADDR32NB		0x0002#define IMAGE_REL_ARM_BRANCH24		0x0003#define IMAGE_REL_ARM_BRANCH11		0x0004#define IMAGE_REL_ARM_SECTION		0x000E#define IMAGE_REL_ARM_SECREL		0x000F/* IA64 relocation types */#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_DIR		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_SECREL		0x000E#define IMAGE_REL_IA64_LTOFF64		0x000F#define IMAGE_REL_IA64_DIR32NB		0x0010#define IMAGE_REL_IA64_RESERVED_11	0x0011#define IMAGE_REL_IA64_RESERVED_12	0x0012#define IMAGE_REL_IA64_RESERVED_13	0x0013#define IMAGE_REL_IA64_RESERVED_14	0x0014#define IMAGE_REL_IA64_RESERVED_15	0x0015#define IMAGE_REL_IA64_RESERVED_16	0x0016#define IMAGE_REL_IA64_ADDEND		0x001F/* archive format */#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       "//              "typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER{    BYTE     Name[16];    BYTE     Date[12];    BYTE     UserID[6];    BYTE     GroupID[6];    BYTE     Mode[8];    BYTE     Size[10];    BYTE     EndHeader[2];} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER;#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60/* * Resource directory stuff */typedef struct _IMAGE_RESOURCE_DIRECTORY {	DWORD	Characteristics;	DWORD	TimeDateStamp;	WORD	MajorVersion;	WORD	MinorVersion;	WORD	NumberOfNamedEntries;	WORD	NumberOfIdEntries;	/*  IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; */} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY;#define	IMAGE_RESOURCE_NAME_IS_STRING		0x80000000#define	IMAGE_RESOURCE_DATA_IS_DIRECTORY	0x80000000typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {	union {		struct {#ifdef BITFIELDS_BIGENDIAN			unsigned NameIsString:1;			unsigned NameOffset:31;#else			unsigned NameOffset:31;			unsigned NameIsString:1;#endif		} DUMMYSTRUCTNAME1;		DWORD   Name;                struct {#ifdef WORDS_BIGENDIAN			WORD    __pad;			WORD    Id;#else			WORD    Id;			WORD    __pad;#endif		} DUMMYSTRUCTNAME2;	} DUMMYUNIONNAME1;	union {		DWORD   OffsetToData;		struct {#ifdef BITFIELDS_BIGENDIAN			unsigned DataIsDirectory:1;			unsigned OffsetToDirectory:31;#else			unsigned OffsetToDirectory:31;			unsigned DataIsDirectory:1;#endif		} DUMMYSTRUCTNAME3;	} DUMMYUNIONNAME2;} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY;typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {	WORD	Length;	CHAR	NameString[ 1 ];} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING;

⌨️ 快捷键说明

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