The Delay-Load Directory Table is the counterpart to the Import Directory Table, and can be retrieved via the Delay Import Descriptor entry in the Optional Header Data Directories list (offset 200). The Table is arranged as follows:
Offset | Size | Field | Description |
0 | 4 | Attributes | Must be zero. |
4 | 4 | Name | Address of the name of the dll to be loaded. The name resides in the read-only data section of the image. |
8 | 4 | Module Handle | Address of the module handle (in the data section of the image) of the dll to be delay-loaded. Used for storage by the routine supplied to manage delay-loading. |
12 | 4 | Delay Import Address Table | Address of the delay-load import address table. See below for further details. |
16 | 4 | Delay Import Name Table | Address of the delay-load name table, which contains the names of the imports that may need to be loaded. Matches the layout of the Import Name Table, Section 6.4.3.6.4.3 Hint/Name Table. |
20 | 4 | Bound Delay Import Table | Address of the bound delay-load address table, if it exists. |
24 | 4 | Unload Delay Import Table | Address of the unload delay-load address table, if it exists. This is an exact copy of the Delay Import Address Table. In the event that the caller unloads the dll, this table should be copied back over the Delay IAT such that subsequent calls to the dll continue to use the thunking mechanism correctly. |
28 | 4 | Time Stamp | Time stamp of dll to which this image has been bound. |
The tables referenced in this data structure are organized and sorted just as their counterparts are for traditional imports. See Section "Section 6.4. The .idata Section" for details.