INF: Use of Interrupt 3F with Windows Dynamic-Link Libraries
ID Number:  Q12185

2.03 2.10 3.00
WINDOWS


Summary:

The following information applies to Windows versions 2.x and to
Windows version 3.0 real mode.

Interrupt 3F is used by the Windows dynamic-link loading mechanism to
bring in nonresident code, such as from a dynamic-link library (DLL).

For example, when Windows loads a library, it loads in the header file
of the executable. In the header file are INT 3Fs. When the
application calls the library routine, Windows searches the header
file to see if the routine is already loaded. If it is not loaded, the
INT 3F instruction still exists. Windows then loads the code from the
.EXE file off the disk and changes the INT 3F instruction to be the
address where the code was loaded into memory. It then executes that
code.

This process applies to dynamic-link libraries and also to regular 
application code. Whenever a routine is called, there is the chance 
that it was discarded by the Windows memory manager. If this has 
happened, the INT 3F dynamic-load mechanism will be called to read 
the appropriate code segments back into memory.

Additional reference words: 2.03 2.10 2.x 3.00 TAR57928 2.x INT 3F
