Как переключаться между реальным и защищенным режимами в оболочке Windows?

Как переключаться между реальным и защищенным режимами в оболочке Windows?

Я заметил, что происходит интересная вещь, когда вы вводите старую команду mem.exe в командной строке XP:

Переключиться в реальный режим

Оболочка переключается из защищенного режима в реальный режим, как вы можете заметить по изменению имени каталога (и отображаемой структуре памяти). Это делает загрузчик Windows exe или cmd.exe? Есть ли способ переключиться обратно в защищенный режим?

решение1

mem.exeявляется 16-битным приложением, перенесенным из 16-битных Windows для совместимости. Таким образом, оно работает в 16-битной VM 1 в 32-битных Windows и отображает память как таковую. (В 64-битных Windows его нет, так как 16-битная VM не включена).

Смещение запроса на отображение короткого имени файла является одним из несоответствий, cmd.exeвызванных запуском дочернего процесса WoW.

Но cmd.exeне работает в «реальном режиме», поскольку реального режима не существует для 32- или 64-битных процессов.


1 16-разрядная подсистема Windows-on-Windows использует один из 16-разрядных режимов выполнения процессоров x86/x64 для обеспечения изолированной среды, подобно тому, как VMWare (и др.) делают для размещения полноценной машины.

Связанный контент