Program information file
A program information file (PIF) defines how a given DOS program should be run in a multi-tasking environment, especially in order to avoid giving it unnecessary resources which could remain available to other programs. TopView was the originator of PIFs; they were then inherited and extended by DESQview and Microsoft Windows, where they are most often seen. PIFs are seldom used today in software due to the absence of DOS applications.

Basic overview
The PIF file originally contained only one block of data storing the parameters needed to run under TopView. These included fields like an ASCII string for the window title, the maximum and minimum amount of RAM needed, and bitmaps for switches like whether or not the window should be closed when the program exits.

When the system was adapted for use under Windows, the developers faced the problem that there were additional switches that did not apply to TopView. Instead of simply adding the new switches to the end of the file, they instead re-imagined the file as a database file containing any number of entries. In theory the file consisted of a number of header areas describing what operating system should read the section, and an offset to the next section. Systems would read down the list until they found the most appropriate one.

However, this left a problem with backward compatibility. If the file started with a header, even if it was for the original switches, TopView and DESQview would not be able to read it properly. The file was thus re-arranged with the first header appearing after the initial data, which left the first 253 bytes of the file in the same format as before.

Notes 
 Creating a program information file for a DOS-based program creates a shortcut to the program executable. All the settings saved in the PIF are contained in the shortcut.
 Although a file in PIF format does not contain any executable code (it lacks executable files' magic number "MZ"), Microsoft Windows handles all files with (pseudo-)executables' extensions in the same manner: all .COMs, .EXEs, and .PIFs are analyzed by the ShellExecute function and will run accordingly to their content and not extension, meaning a file with the PIF extension can be used to transmit computer viruses.
 The concept of program information files was also used under Digital Research operating systems such as Concurrent DOS, Multiuser DOS, System Manager and REAL/32. Using the PIFED command, the necessary program information got directly embedded into the .EXE or .COM executable file.

See also
 Compatibility mode

References

 The PIF format in various Windows versions

External links 
 Windows 98 Sample Program Information (.pif) Files on Microsoft Support
 Dobb's Undocumented Corner – The PIF File Format, or, TopView (sort of) Lives!

Windows architecture
Executable file formats