reactos

caimouse8 天前
c语言·开发语言·reactos
ReactOS 窗口系统分析(22):鼠标 — mouse.c本文是"窗口系统三大主线之鼠标控制"系列的第 22 册,核心回答:窗口怎么样实现鼠标控制。 即:鼠标硬件输入如何变成发给特定窗口的 WM_MOUSE* 消息,如何命中窗口、如何判定双击、 如何捕获、如何跟踪悬停/离开、如何合并移动消息。
caimouse8 天前
c语言·开发语言·reactos
ReactOS 窗口系统分析(14):计时器/属性/加速键/热键 — timer.c + prop.c + accelerator.c + hotkey.c本文是"窗口系统三大主线之窗口管理"系列第 14 册(对应总览文档第 5.6 节)。 主题:四类"窗口附属设施"——窗口计时器(timer.c)、窗口属性(prop.c)、加速键表 (accelerator.c)与全局热键(hotkey.c)。它们共同回答一个问题:除了消息本身, 窗口管理子系统还提供哪些"粘性"服务来把时间事件、数据附件、键盘快捷方式与 窗口/线程关联起来。
caimouse8 天前
c语言·reactos
ReactOS 窗口系统分析(24):输入法 — ime.c本文是"窗口系统三大主线之鼠标控制"系列的第 24 册(最后一册),核心回答:窗口系统如何接入输入法(IME)。 即:键盘按键如何在进入窗口过程之前被输入法拦截、预组合(precomposition)、再以 WM_IME_* 消息与 WM_CHAR 的形式交给应用程序;输入上下文(HIMC/IMC)如何创建、 关联、销毁;每个目标窗口的"默认 IME 窗口"如何诞生与消亡;语言栏显示状态如何广播。
caimouse8 天前
c语言·开发语言·reactos
ReactOS 窗口系统分析(13):滚动条 — scrollbar.c + scrollex.c本文是"窗口系统三大主线之窗口管理"系列第 13 册(对应总览文档第 5.5 节)。 主题:滚动条子系统 —— 内核侧 win32ss/user/ntuser/scrollbar.c(1466 行)负责滚动条信息管理与绘制, win32ss/user/ntuser/scrollex.c(662 行)负责窗口内容区域滚动,用户态 win32ss/user/user32/controls/scrollbar.c(1755 行)实现滚动条控件(SB_CTL)的窗口过程与 thumb 拖动跟踪循环。
caimouse14 天前
c++·reactos
ReactOS 图形系统分析(41):画刷子系统 — brush.cpp[brush.cpp](file:///d:/reactos/win32ss/gdi/ntgdi/brush.cpp) 实现 win32k 内核态(ntgdi)的画刷(BRUSH)子系统。它负责逻辑画刷对象的创建(纯色 / 影线 / 图案 / DIB 图案)、颜色修改、对象查询与销毁,并把逻辑画刷交给引擎(engbrush.c)实现为已实现画刷(realized brush),最终供填充、描边等绘制操作使用。
caimouse14 天前
c语言·reactos
ReactOS 图形系统分析(42):形状填充 — fillshap.cfillshap.c(win32ss/gdi/ntgdi/fillshap.c,约 1250 行)是 ntgdi(内核态 GDI,即 win32k.sys 中的 GDI 部分)的形状绘制与填充子系统。它实现了用户态 GDI32 层形状类 API 的内核入口:椭圆(NtGdiEllipse)、矩形(NtGdiRectangle)、圆角矩形(NtGdiRoundRect)、渐变填充(NtGdiGradientFill)、洪水填充(NtGdiExtFloodFill)、多边形/复合绘制(NtGdiPolyPol
caimouse14 天前
c语言·reactos
ReactOS 图形系统分析(36):位块传输 — bitblt.c[bitblt.c](file:///d:/reactos/win32ss/gdi/ntgdi/bitblt.c) 位于 win32ss/gdi/ntgdi/,是内核 GDI(ntgdi/)的位块传输(BitBlt)子系统。文件共 1655 行,实现 13 个 NtGdi* 系统调用入口,是引擎 BitBlt 管线(《分析_4》3.1)的 ntgdi 侧发起者——负责 DC 锁定与解锁、源/目标表面定位、逻辑坐标到设备坐标换算、裁剪区域的准备、颜色转换对象(EXLATEOBJ)的构建,以及 ROP/画刷参
caimouse14 天前
c语言·reactos
ReactOS 图形系统分析(37):路径子系统 — path.c本文基于 ReactOS 源码 win32ss/gdi/ntgdi/path.c(2026 年 8 月,全文 3168 行)与 win32ss/gdi/ntgdi/path.h 逐函数分析。路径子系统是 GDI 中"先记录、后执行"思想的 典型实现:BeginPath/EndPath 之间的一切绘图调用不再直接画到表面,而是被折算成 "点 + 标志"数组累积到 PATH 对象中,EndPath 之后再统一交给填充/描边/宽化/区域化 等输出管线消费。
caimouse14 天前
性能优化·reactos
ReactOS 图形系统分析(31):内核 GDI — ntgdintgdi/(win32ss/gdi/ntgdi/,53 个文件)是 内核态 GDI(Graphics Device Interface)——win32k.sys 中直接承接用户态 gdi32.dll/win32u.dll 系统调用的层。它处于架构最核心的位置:
caimouse14 天前
c语言·开发语言·reactos
ReactOS 图形系统分析(33):字体子系统 — font.c[font.c](file:///d:/reactos/win32ss/gdi/ntgdi/font.c)(约 1500 行)是 win32k.sys 中 ntgdi 的字体管理子系统,集中了 GDI 字体相关的 17 个 NtGdi* 系统服务入口,以及一批 Gre*/Int*/HfontCreate 内部函数。它负责四类职责:
k4m7v2pz15 天前
rust·交叉编译·逆向工程·reactos·pe格式·windows兼容
Rust 程序在 ReactOS 上“加载即崩“:从崩溃地址 0x6107104d 到 CRT 依赖的深度排查最近在怀旧 Windows XP 风格的 ReactOS 0.4.15(32 位,QEMU 虚拟机)上,想把自己用 Rust 写的 rvs(一个命令行 shell,rust-verb-shell 项目)跑起来。
k4m7v2pz15 天前
qemu·虚拟机·kvm·交叉编译·mingw-w64·reactos
在Arch Linux笔记本上搭建ReactOS 0.4.15虚拟机:从Mac远程开发调试Windows XP风格应用的完整指南作为一名开发者,我手头没有独立的Windows主机,但有一个特定的需求:验证「在Mac上编译的Windows .exe程序能否在Windows XP风格的ReactOS系统中正常运行」。为此,我计划利用一台闲置的ThinkPad E490笔记本(Arch Linux系统,i5-8265U,31GB内存)作为虚拟机宿主机,在其上运行ReactOS 0.4.15,然后从我的Mac远程连接并操作这个虚拟机,完成「编译→传输→运行」的完整闭环。
caimouse1 个月前
网络协议·tcp/ip·reactos
TCP/IP 协议驱动 (tcpip.sys) 分析tcpip.sys 是 ReactOS 的网络协议驱动程序,实现了完整的 TCP/IP 协议栈。它位于 NT 执行体中的 Io 管理器 和 NDIS 库 之间,为上层用户态应用程序(通过 Winsock)和下层 NDIS 微型端口驱动提供通信服务。
caimouse1 个月前
笔记·学习·reactos
MM 学习笔记 09:进程会话与工作集文件:ntoskrnl/mm/ARM3/procsup.c + ntoskrnl/mm/ARM3/session.c + ntoskrnl/mm/ARM3/wslist.cpp + ntoskrnl/mm/balance.c
caimouse1 个月前
笔记·学习·reactos
MM 学习笔记 10:页面文件与系统加载器文件:ntoskrnl/mm/pagefile.c + ntoskrnl/mm/rmap.c + ntoskrnl/mm/ARM3/sysldr.c + ntoskrnl/mm/ARM3/mdlsup.c + ntoskrnl/mm/ARM3/iosup.c
caimouse1 个月前
架构·reactos
WINE IE 与 wine_gecko 架构分析ReactOS 中的 Internet Explorer 采用 四层架构,每一层都是独立的 DLL/EXE 模块:
caimouse1 个月前
chrome·reactos
Chrome V49 (49.0.2623.112) 在 ReactOS 上运行所需的系统依赖分析日期: 2026-07-19 目标文件: D:\reactos\output-MinGW-i386\Chrome_V49\Chrome.exe 分析方法: objdump PE 导入表解析
caimouse1 个月前
reactos
Windows 内存管理概念详解本文详细解释 Windows 内核(及 ReactOS)中 8 个核心内存管理概念。每个概念包含:定义、数据结构、操作流程、对应的 ReactOS 源文件以及与其他模块的交互关系。
caimouse1 个月前
笔记·学习·reactos
MM 学习笔记 01:miarm.h 核心头文件分析miarm.h(ntoskrnl/mm/ARM3/miarm.h)是整个 MM 子系统的核心头文件。它零外部依赖(无 #include),定义了所有 ARM3 源文件共享的常量、宏、类型和全局变量声明。
caimouse1 个月前
chrome·reactos
Chrome V49 SxS 加载问题分析与修复本文详细记录了 Chrome V49(49.0.2623.112)在 ReactOS 上因 Side-by-Side (SxS) 程序集机制不完善导致加载失败的问题,从根因分析到代码修复的完整过程。