- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 507
- Реакции
- 13
Здарова, мужики. Подкатил вопрос по низкоуровневой отрисовке. Пытаюсь выводить графику через GDI прямо из ядра, аттачнувшись к dwm.exe, но столкнулся с классической бедой — картинка просто «залипает» на экране и не хочет обновляться автоматически.
Юзаю стандартный набор сисколлов:
Пробовал даже хукать NtGdiDdDDISubmitCommand и DxgkPresent, но результат нулевой — отрисовки либо нет вообще, либо она висит мертвым грузом.
Система — Windows 11 24H2. Похоже, в этой сборке мелкомягкие опять что-то перекрутили в логике композитора. Раньше NtGdiFlush хватало за глаза, а теперь DWM класть хотел на эти вызовы.
Кто-нибудь уже воевал с обновлением кадра на последних билдах винды? Есть идеи, как заставить DWM перерисовывать регион или принудительно пушить буфер?
Кто уже сталкивался с таким на 24H2?
Юзаю стандартный набор сисколлов:
Код:
hdc = NtUserGetDC(0);
brush = NtGdiCreateSolidBrush(RGB(255, 255, 255), NULL);
NtGdiSelectBrush(hdc, brush);
NtGdiPatBlt(hdc, x, y, w, h, PATCOPY);
NtGdiFlush();
NtGdiDeleteObjectApp(brush);
NtUserReleaseDC(hdc);
Пробовал даже хукать NtGdiDdDDISubmitCommand и DxgkPresent, но результат нулевой — отрисовки либо нет вообще, либо она висит мертвым грузом.
Система — Windows 11 24H2. Похоже, в этой сборке мелкомягкие опять что-то перекрутили в логике композитора. Раньше NtGdiFlush хватало за глаза, а теперь DWM класть хотел на эти вызовы.
Кто-нибудь уже воевал с обновлением кадра на последних билдах винды? Есть идеи, как заставить DWM перерисовывать регион или принудительно пушить буфер?
Кто уже сталкивался с таким на 24H2?