EXPDEF

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.

Members

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.

Comments

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.