* 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:
marco 2015-03-20 14:01:28 +00:00
parent 50fd91b3e1
commit 57212decc8

View File

@ -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 } ;