我们知道,MS-DOS下可执行文件.EXE是MZ格式,也就是说.EXE文件的前两个
字节是字符串“MZ”。而Windows 3.1的.EXE是NE(New Executable)格式,
Win95和WinNT的.EXE是PE(Portable Executable)格式,VxD则是LE(Linear
Executable)格式。但是有一点需要注意,在NE、PE和LE的头部,总嵌有一小
段DOS程序,它的作用是:当你在DOS下运行这几种.EXE文件时,它会提示你
“This program cannot be run in DOS mode”。
LE文件格式最早出自OS/2 2.0。这种格式的文件可以同时包含16位和32位代
码,这正是VxD需要的,因为VxD在加载的初始化阶段,需要进行一些实模式的
操作,这需要16位代码,而VxD的主要运行阶段是在32位环境中,这又需要32
位代码,所以LE文件格式正好适合于VxD。