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