Поскольку вы уже опубликовали диаграмму, ясно, что вы знаете, почему существует WOW64.Теперь, чтобы ответить на ваш вопрос:
Я хотел бы знать, что происходит в этом слое.
Я думаю, вы хотите знать, как это
Запуск процесса: загрузчик, как обычно, загружает 64-битную часть пользовательского режима 'Ntdll.dll', но также загружает 32-битную Ntdll.dll в случае, если процесс предназначен для 32-битного выполнения.Теперь загрузчики обязаны инициализировать с помощью Wow64.dll, который устанавливает контексты процессов и потоков в 32-битном Ntdll и «переключает ЦП в 32-битный режим» для выполнения.
Системный вызов: всетеперь работает в 32-битном режиме, до системного вызова.Мы знаем, что системные вызовы проходят через Ntdll.dll, User32.dll, Gdi32.dll и т. Д .;в этом случае 32-битные версии.Существует отдельная 32-разрядная версия этих библиотек, расположенная в папке \ Windows \ Syswow64 bit.Это просто заглушки, которые вместо «родных системных вызовов» фактически вызывают Wow64.dll.Теперь Wow64.dll легко перейти в 64-разрядный режим, преобразовать параметры в их 64-разрядные аналоги, выполнить системный вызов с использованием 64-разрядных версий, получить результат и преобразовать выходные данные в 32-разрядные.Затем он переводит ЦП обратно в 32-битный режим и возвращает вывод.
Диспетчеризация исключений, пользовательские обратные вызовы, операции с файловой системой и реестром, а также ввод / вывод обрабатываются таким же образом, используя перехватчики где-то вниз по линии,Прочитайте книгу, предписанную ниже.
(особенно, как они могут преобразовать адресное пространство).
64-битное адресное пространство - это расширенный набор32-битное адресное пространство.Кроме того, один и тот же указатель (фактически PTE) в 32-разрядном / 64-разрядном не используется для ссылки на все адресное пространство, но существуют отдельные таблицы страниц для пользовательского пространства и для системного пространства.
Пожалуйста, дайте мне несколько важных моментов.
Чтобы узнать о Windows, самое важное, что я могу вам сказать, это прочитать «Windows Internals» - Руссинович