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.