mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-07 00:28:23 +02:00
* ugly auto conversion IMAGE_IMPORT_DESCRIPTOR and _IMAGE_TLS_DIRECTORY64/32 fixed.
* IMAGE_EXPORT_DIRECTORY (see comments mantis #27674 ) git-svn-id: trunk@30264 -
This commit is contained in:
parent
50fd91b3e1
commit
57212decc8
@ -8346,6 +8346,25 @@ type
|
||||
|
||||
{$push}
|
||||
{$packrecords 4}
|
||||
|
||||
PIMAGE_EXPORT_DIRECTORY = ^TIMAGE_EXPORT_DIRECTORY;
|
||||
IMAGE_EXPORT_DIRECTORY = record
|
||||
Characteristics : DWORD;
|
||||
TimeDateStamp : DWORD;
|
||||
MajorVersion : WORD;
|
||||
MinorVersion : WORD;
|
||||
Name : DWORD;
|
||||
Base : DWORD;
|
||||
NumberOfFunctions : DWORD;
|
||||
NumberOfNames : DWORD;
|
||||
AddressOfFunctions : DWORD; { RVA from base of image }
|
||||
AddressOfNames : DWORD; { RVA from base of image }
|
||||
AddressOfNameOrdinals : DWORD; { RVA from base of image }
|
||||
end;
|
||||
TIMAGE_EXPORT_DIRECTORY = IMAGE_EXPORT_DIRECTORY;
|
||||
_IMAGE_EXPORT_DIRECTORY = IMAGE_EXPORT_DIRECTORY;
|
||||
LPIMAGE_EXPORT_DIRECTORY= PIMAGE_EXPORT_DIRECTORY;
|
||||
|
||||
P_IMAGE_IMPORT_BY_NAME = ^_IMAGE_IMPORT_BY_NAME;
|
||||
_IMAGE_IMPORT_BY_NAME = record
|
||||
Hint : WORD;
|
||||
@ -8403,15 +8422,13 @@ type
|
||||
AddressOfIndex : ULONGLONG; { PDWORD }
|
||||
AddressOfCallBacks : ULONGLONG; { PIMAGE_TLS_CALLBACK *; }
|
||||
SizeOfZeroFill : DWORD;
|
||||
DUMMYUNIONNAME : bitpacked record
|
||||
case longint of
|
||||
0 : ( Characteristics : DWORD );
|
||||
1 : ( DUMMYSTRUCTNAME : record
|
||||
Reserved0 : 0..$FFFFF; // 5 nibbles=20 bits
|
||||
Alignment : 0..$F; // 4 bits
|
||||
Reserved1 : 0..$FF; // 8 bits
|
||||
1 : ( CharacteristicsFields: bitpacked record
|
||||
Reserved0 : 0..$FFFFF; // 5 nibbles=20 bits
|
||||
Alignment : 0..$F; // 4 bits
|
||||
Reserved1 : 0..$FF; // 8 bits
|
||||
end );
|
||||
end;
|
||||
end;
|
||||
IMAGE_TLS_DIRECTORY64 = _IMAGE_TLS_DIRECTORY64;
|
||||
PIMAGE_TLS_DIRECTORY64 = ^IMAGE_TLS_DIRECTORY64;
|
||||
@ -8425,15 +8442,14 @@ type
|
||||
AddressOfIndex : DWORD; { PDWORD }
|
||||
AddressOfCallBacks : DWORD; { PIMAGE_TLS_CALLBACK * }
|
||||
SizeOfZeroFill : DWORD;
|
||||
DUMMYUNIONNAME : record
|
||||
case longint of
|
||||
0 : ( Characteristics : DWORD );
|
||||
1 : ( DUMMYSTRUCTNAME : bitpacked record
|
||||
Reserved0 : 0..$FFFFF; // 5 nibbles=20 bits
|
||||
Alignment : 0..$F; // 4 bits
|
||||
Reserved1 : 0..$FF; // 8 bits
|
||||
1 : ( CharacteristicsFields : bitpacked record
|
||||
Reserved0 : 0..$FFFFF; // 5 nibbles=20 bits
|
||||
Alignment : 0..$F; // 4 bits
|
||||
Reserved1 : 0..$FF; // 8 bits
|
||||
end );
|
||||
end;
|
||||
|
||||
end;
|
||||
IMAGE_TLS_DIRECTORY32 = _IMAGE_TLS_DIRECTORY32;
|
||||
PIMAGE_TLS_DIRECTORY32 = ^IMAGE_TLS_DIRECTORY32;
|
||||
@ -8472,18 +8488,17 @@ type
|
||||
|
||||
P_IMAGE_IMPORT_DESCRIPTOR = ^_IMAGE_IMPORT_DESCRIPTOR;
|
||||
_IMAGE_IMPORT_DESCRIPTOR = record
|
||||
DUMMYUNIONNAME : bitpacked record
|
||||
case longint of
|
||||
0 : ( Characteristics : DWORD ); { 0 for terminating null import descriptor }
|
||||
1 : ( OriginalFirstThunk : DWORD ); { RVA to original unbound IAT (PIMAGE_THUNK_DATA) }
|
||||
end;
|
||||
TimeDateStamp : DWORD; { 0 if not bound, }
|
||||
1 : ( OriginalFirstThunk : DWORD; { RVA to original unbound IAT (PIMAGE_THUNK_DATA) }
|
||||
TimeDateStamp : DWORD; { 0 if not bound, }
|
||||
// -1 if bound, and real date\time stamp
|
||||
// in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND)
|
||||
// O.W. date/time stamp of DLL bound to (Old BIND)
|
||||
ForwarderChain : DWORD; // -1 if no forwarders
|
||||
Name : DWORD;
|
||||
FirstThunk : DWORD; // RVA to IAT (if bound this IAT has actual addresses)
|
||||
ForwarderChain : DWORD; // -1 if no forwarders
|
||||
Name : DWORD;
|
||||
FirstThunk : DWORD; // RVA to IAT (if bound this IAT has actual addresses)
|
||||
);
|
||||
end;
|
||||
IMAGE_IMPORT_DESCRIPTOR = _IMAGE_IMPORT_DESCRIPTOR;
|
||||
PIMAGE_IMPORT_DESCRIPTOR = ^IMAGE_IMPORT_DESCRIPTOR {UNALIGNED } ;
|
||||
|
Loading…
Reference in New Issue
Block a user