What is PEI format?
PEI is not an officially recognized format or term. The PE / COFF standard only describes two formats: PE32 (32-bit) and PE32 + (64-bit). I've heard discussions about PE and PEI before, but the only place I've ever come across the term PEI is in libpei
the one referenced by JEdot's answer . And as pointed out in this answer, the developers libpei
seem to be confused about the terminology itself, so it doesn't really make sense to use the PEI term at all.
Also, it is not true that the MS-DOS stub is required to run a PE executable on Windows. It's just built in for backward compatibility.
source to share
" The only difference between the pe format and the pei format is that the latter has the MSDOS 2.0.exe header on the front panel, which displays the message" This application must run under Windows. " (Or some for example). (FIXME: is this statement true or no) unknown. Are there any more subtle differences between the pe and pei formats? For now, let's assume not. If you find it, then God is there documenting it!)
Microsoft docs use the word "image" instead of "executable" because the former can also refer to a DLL (shared library). Confusion can arise from the fact that
i' in
pei 'also refers to "image". The "pe" format can also create images (ie executables), just to run on a win32 system you need to use the pei format. "
Source:
http://www.opensource.apple.com/source/gdb/gdb-1515/src/bfd/libpei.h
source to share