EXPDEF STRUC
edRecordType db 88h ; COMENT record
edLength dw ? ; length of record
edAttribute db ? ; attributes
edClass db 0A0h ; comment class
edSubType db 02h ; EXPDEF subtype
edExpFlag db ? ; export flags
edExportedName db ? dup(?) ; exported name (var-length)
edInternalName db ? dup(?) ; internal name (var-length)
edExportOrdinal dw ? ; export ordinal (conditional)
EXPDEF ENDS
The EXPDEF record defines one exported symbol.
edRecordType
Specifies the record type. This member must be 88h.
edLength
Specifies the length of the record.
edAttribute
Specifies the record attributes. These are as defined for the COMENT record.
edClass
Specifies the comment class. This member must be 0A0h.
edSubType
Specifies the EXPDEF subtype. This member must be 02h.
edExpFlag
Specifies the export flags. The bits in this 8-bit member have the following meanings:
Bit | Meaning |
OrdBit (80h) | If set, the item is exported by using the ordinal value of a function. In this case, the edExportOrdinal member is present. |
ResName (40h) | If set, the exported name is to be kept resident by the system loader. Keeping the exported name resident is an optimization for frequently used items imported by name. |
NoData (20h) | If set, the entry point does not use initialized data. |
ParmCount (1Fh) | Set to zero for all but call gates to 16-bit segments. This bit specifies the number of parameter words. |
edExportedName
Contains a character string defining the exported symbol. This name is used when the symbol is imported by name. The first byte in this member specifies the number of characters in the string.
edInternalName
Contains a character string defining the internal name. This name is used within the module that defines the symbol. The first byte in this member specifies the number of characters in the string. If the first byte is zero, the internal name is the same as the exported name given in the edExportedName member.
edExportOrdinal
Specifies the ordinal value representing the exported symbol. This member is present only if the OrdBit bit (80h) is set in the edExpFlag member.
Microsoft compilers generate the EXPDEF record when the keyword _export is used in a source file. Microsoft Segmented Executable Linker (LINK) limits the edExportOrdinal value to 16,384 (16K) or less.