Помощь нужна с ZwReadFile

Тема в разделе "WASM.NT.KERNEL", создана пользователем FoxB, 15 июл 2019.

  1. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    53
    Кстати во втором томе Windows Internals (7 издание) будет описан процесс загрузки ОС для десятки.

    [​IMG]
     
  2. cddee3

    cddee3 Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2020
    Сообщения:
    55
  3. MaKaKa

    MaKaKa Member

    Публикаций:
    0
    Регистрация:
    25 ноя 2020
    Сообщения:
    53
  4. cddee3

    cddee3 Member

    Публикаций:
    0
    Регистрация:
    15 ноя 2020
    Сообщения:
    55
    да, тож нужно переходить на kdnet...
     
  5. FoxB

    FoxB Member

    Публикаций:
    0
    Регистрация:
    10 июл 2003
    Сообщения:
    114
    простой путь описан тут https://lifeinhex.com/running-windbgx-on-windows-7/ (пост
    kao - 2021-04-21 at 17:46)
     
  6. 808Problem

    808Problem Member

    Публикаций:
    0
    Регистрация:
    1 мар 2023
    Сообщения:
    31
    Эх, жаль, что такую замечательная штуку, как TTD ещё не добавили в отладке ядра :dntknw: А ведь как раз таки именно там такой функционал нужнее всего... одно дело ребутать .exe, другое перезагружать операционку на виртуалке после очередного BSOD...
     
  7. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.461
    Адрес:
    Россия, Нижний Новгород
    На самом деле, никогда не было острой необходимости в TTD. В случае отладки ядра есть снапшоты в виртуалках: восстановить состояние дело пары секунд, не надо перезагружаться с нуля.
    И в целом, TTD для ядра - это прикольно, но довольно сложно реализуемо, ведь на каждый такой снимок тебе надо создавать где-то копию состояния всего ядра. Но это нельзя сделать атомарно из самого отлаживаемого ядра, ведь пока ты пишешь копию (в том же самом ядре), состояние этого самого ядра меняется, а чтобы сделать такой дамп, требуется участие самого ядра, ведь только оно знает, где у него что находится. Технически, в связке с Hyper-V такое наверно возможно, но скорей всего поддерживать такое настолько сложно, что никто всерьёз это не рассматривает.
    И учитывай размеры таких снимков - гигабайты на каждый шаг, и чем больше занято оперативки - тем они будут больше.
     
    808Problem нравится это.
  8. 808Problem

    808Problem Member

    Публикаций:
    0
    Регистрация:
    1 мар 2023
    Сообщения:
    31
    Поэкспериментировал со снапшотами у себя на виртулке. Процесс "Restoring virtual machine state..." оказался не таким уж и быстрым, думал реально за секунды мне восстановит OC :). Возможно, что-то в виртуалке включено/выключено замедляющее процесс восстановления, не знаю...
    Но всё равно - эффективнее чем ребутать пк, благодарю.
    vmware_n9I1EWIHB9.png

    Ну или VMware свойственна такая загрузка. Вы какую виртуальную машину используете, что у вас за пару сек восстанавливается OC снапшотом?
     
  9. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.461
    Адрес:
    Россия, Нижний Новгород
    Использую вмварю, но они везде восстанавливаются быстро, если виртуалка на ссд.
    По скорости запуска у меня самая быстрая Hyper-V: виртуалка с холодного старта у меня на ней грузилась за 4 секунды до рабочего стола. Не представляю, как они это делают. По скорости восстановления снапшотов не помню, но на всех виртуалках они у меня восстанавливались быстро - не помню, чтобы когда-то был бы недоволен скоростью восстановления.
     
    808Problem нравится это.
  10. 808Problem

    808Problem Member

    Публикаций:
    0
    Регистрация:
    1 мар 2023
    Сообщения:
    31
    Точняк, у меня же виртуалки на ЖД стоят, вот же мазохист я :-( Спасибо вам за напоминание, сейчас переставлю их на нормальный SSDM2
    --- Сообщение объединено, 14 авг 2023 ---
    Только что протестировал Hyper-V виртуалку и офигел от скорости запуска операционки - очень быстро! Спасибо за очередное открытие для меня, походу буду прощаться с VMware :-(
    --- Сообщение объединено, 14 авг 2023 ---
    HoShiMin, скажи пожалуйста, как убрать постоянный прилёт такого сообщения в виртуалке Hyper-V:
    DbgX.Shell_dBV5njDjq8.png
    То есть, как я понял, когда я начал отладку в ядре, подключение с виртуалкой обрывается, Hyper-V пытается восстановить подключение, но из-за того, что состояние операционки в руках WinDbg у него ничего не получается. Просто это окошко мне выплевывается в лицо каждые несколько секунд отладки - очень раздражает. В настройках виртуалки, ничего не увидел, что помогло бы мне :-(
    Ну не удаётся и не удаётся, пускай тогда пытается подключаться бесконечно, но только, чтобы мне не выплевывал этот месаг... ведь в любом случае, когда нажму 'go' в windbg у него получится подключится, зачем это спамить мне, что за дурость!
    --- Сообщение объединено, 14 авг 2023 ---
    Ну одно из решений этой проблемы, не закрывать сия окошко :)
     
    Последнее редактирование: 14 авг 2023
  11. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.461
    Адрес:
    Россия, Нижний Новгород
    Так ведь виртуалка не знает, что ты её отлаживаешь. В какой-то момент RDP’шный клиент теряет машину и не знает почему - вот и показывает окошко.
    И таки да, просто не закрывай этот мессаджбокс.
    Ты работаешь с ней в Enhanced Mode (это такая голубая кнопочка в тулбаре окошка с виртуалкой)? Если да - попробуй переключить обратно в простой режим. В этом режиме графика будет дёрганой (хотя она и в расширенном дёрганая), но скорей всего терять машину перестанет.
    --- Сообщение объединено, 14 авг 2023 ---
    Всем хорош Hyper-V, но для меня в нём несколько недостатков: не очень удобное взаимодействие с виртуалкой, бедная дёрганая графика (ускоритель RemoteFX задепрекейтили и удалили, а замены не дали), а также есть нюанс с производительностью: так как Hyper-V - это bare-metal гипервизор, твой хост - это на самом деле не хост, а виртуалка.
    Hyper-V при запуске компа виртуализует всю систему, и, хоть визуально ты разницы с настоящим хостом не видишь, в бенчмарках разница есть: например, сильно просаживается скорость и отзывчивость оперативки - процентов на 40 (на моей системе с 50 гб/с до ~28), поскольку контроллер памяти должен транслировать адреса уже не через 4 таблицы трансляций (PML4/PDP/PD/PT), а через восемь. Трансляции, конечно, кэшируются в TLB, но всё же. Плюс, на многие системные операции требуется передача управления гипервизору, а это переключение контекста, адресного пространства и пошло-поехало. Поэтому, хоть Hyper-V технологичнее и производительнее для виртуалок, я использую вмварю. Но если тебе не попугаев в бенчмарках считать, а работать, то Hyper-V - хороший выбор.
     
  12. 808Problem

    808Problem Member

    Публикаций:
    0
    Регистрация:
    1 мар 2023
    Сообщения:
    31
    Да, отключение Enhanced Mode решило проблему с разрывом подключения во время отладки - спасибо!

    Если честно, пока совсем не внимаю, о каком дерганье идёт речь. Лично у меня - вот уже который час орудую дебагер+kdnet по винде, наслаждаясь потрясающей скоростью трассировки и неимоверно быстрым откликом на бряки в ядре, используя эту виртулка - никаких дерганей графики не обнаружил от слова совсем. Где-то в инете у них в доке промелькнуло, что аппаратная поддержка GPU какая-никакая, но всё же есть.
     
    Последнее редактирование: 14 авг 2023
  13. Marylin

    Marylin Active Member

    Публикаций:
    0
    Регистрация:
    17 фев 2023
    Сообщения:
    203
    Насколько мне известно, гипервизор Hyper-V реагирует только на те события, которые прописаны в зоне(5) "Execution Control Field" структуры управления VMCS. Интересно было-бы посмотреть, какие именно ивенты (кроме привилегированных инструкций) система пихает туда при старте? Наверное инструкцией VMREAD можно считать драйвером эту инфу? К сожалению сам проверить не могу, т.к. ни проц ни система Win7 не поддерживает аппаратную виртуализацию.
     
  14. HoShiMin

    HoShiMin Well-Known Member

    Публикаций:
    5
    Регистрация:
    17 дек 2016
    Сообщения:
    1.461
    Адрес:
    Россия, Нижний Новгород
    Да, ей можно, но зависит от того, хочет ли гипервизор делиться этой информацией. Не проверял, но подозреваю, что не хочет.
    --- Сообщение объединено, 14 авг 2023 ---
    Ну там графика такая… неплавная. Поддержка GPU там в двух вариантах: GPU Passthrough - это когда видеокарта отключается от хоста и монопольно подключается к виртуалке (в этом случае ты получаешь в виртуалке полноценный GPU, который работает с полноценными драйверами от нвидии и амд), но этот режим требует поддержки со стороны железа (в основном, это серверные материнки) и двух видеокарт (одна останется для хоста, вторую отдашь виртуалке). А второй вариант - разделяемый GPU между хостом и гостем, но этот режим экспериментальный и пилят его уже десять лет, и включается он через некоторые костыли в PowerShell.

    Но всё это неважно, поскольку Hyper-V рисует картинку или по RDP (в расширенном режиме), или каким-то непонятным полусофтверным рендером (в простом режиме). То есть, GPU будет кочегарить на полную, рисуя хоть тысячу фпс, но из-за ограничений RDP ты будешь видеть только тридцать.
    Хочешь плавных анимаций и нормальные 60+ фпс в играх - придётся ставить сторонние RDP с нормальными кодеками, типа AnyDesk.
     
    808Problem нравится это.