O que é um arquivo PIF?
Um arquivo PIF consiste em informações usadas para determinar como um programa baseado em MS-DOS deve ser executado. Ele também pode ser usado como um atalho de um arquivo executável e é comumente criado quando o usuário cria um atalho para um programa DOS ou atualiza as propriedades de um programa. O Microsoft Windows reconhece os arquivos PIF como programas executáveis e pode ser executado como outros programas baseados em DOS. Os arquivos PIF não são comumente usados hoje em software devido à ausência de aplicativos DOS.
Formato de arquivo PIF
O arquivo PIF consiste basicamente em apenas um bloco de dados armazenando os parâmetros necessários para executar no TopView. Para opções como se a janela deve ou não ser desligada quando o programa termina, os campos para o título da janela incluem a quantidade máxima e mínima de RAM e bitmaps. Os desenvolvedores enfrentaram o problema de que havia opções adicionais que não se aplicavam ao TopView, quando o sistema foi adaptado para uso no Windows. Em vez de incorporar as novas opções ao final do arquivo, eles criam o arquivo como um arquivo de banco de dados que contém qualquer número de entradas. Dessa forma, o arquivo consistia em várias áreas de cabeçalho descrevendo qual sistema operacional deveria ler a seção e um deslocamento para a próxima seção. Os sistemas lerão a lista até encontrarem a mais apropriada. Portanto, essa teoria deixou um problema de compatibilidade com versões anteriores. O arquivo foi finalmente reorganizado com o primeiro cabeçalho aparecendo após os dados iniciais, o que deixou os primeiros 253 bytes do arquivo no mesmo formato de antes.
Exemplo de PIF
Aqui está uma representação hexadecimal de um arquivo PIF:
0000000: 0078 494e 5354 414c 4c20 2020 2020 2020 .xINSTALL
0000010: 2020 2020 2020 2020 2020 2020 2020 2020
0000020: 8002 0000 433a 5c74 656d 705c 7465 6d70 ....C:\temp\temp
0000030: 335c 494e 5354 414c 4c2e 4558 4500 0000 3\INSTALL.EXE...
0000040: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000050: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000060: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000070: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000080: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000090: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00000e0: 0000 0000 0000 0100 ff19 5000 0007 0000 ..........P.....
00000f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000100: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000110: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000120: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000130: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000140: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000150: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000160: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000170: 004d 4943 524f 534f 4654 2050 4946 4558 .MICROSOFT PIFEX
0000180: 0087 0100 0071 0157 494e 444f 5753 2033 .....q.WINDOWS 3
0000190: 3836 2033 2e30 0005 029d 0168 0080 0200 86 3.0.....h....
00001a0: 0064 0032 00ff ff00 00ff ff00 0002 1002 .d.2............
00001b0: 001f 0000 0000 0000 0000 0000 0000 0000 ................
00001c0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00001f0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000200: 0000 0000 0057 494e 444f 5753 2056 4d4d .....WINDOWS VMM
0000210: 2034 2e30 00ff ff1b 02ac 0100 0000 0000 4.0............
0000220: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000230: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000240: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000250: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000260: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000270: 0000 0050 4946 4d47 522e 444c 4c00 0000 ...PIFMGR.DLL...
0000280: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000290: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00002a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00002b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00002c0: 0000 0000 0002 0000 0000 0000 0000 0000 ................
00002d0: 0032 0001 0000 0000 0000 0000 0000 0001 .2..............
00002e0: 0000 0005 0019 0003 00c8 00e8 0302 000a ................
00002f0: 0001 0000 0000 0000 001c 0000 0000 0000 ................
0000300: 0008 000c 0054 6572 6d69 6e61 6c00 0000 .....Terminal...
0000310: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000320: 0000 0000 004c 7563 6964 6120 436f 6e73 .....Lucida Cons
0000330: 6f6c 6500 0000 0000 0000 0000 0000 0000 ole.............
0000340: 0000 0000 0000 0003 0000 0050 0019 0080 ...........P....
0000350: 022c 018c 0267 0116 0000 0001 00ff ffff .,...g..........
0000360: ffff ffff ffae 0626 013a 098d 0200 0000 .......&.:......
0000370: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000380: 0000 0000 0000 0000 0000 0000 0000 0000 ................
0000390: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00003a0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00003b0: 0000 0000 0000 0000 0000 0000 0000 0000 ................
00003c0: 0000 0000 0001 00 .......