Microsoft KB Archive/12185

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