- 新增 _split_1gb_to_pd:PDPTE.PS=1 时新建 PD 并把 1GB 拆成 512 个 2MB 条目(继承 PCD/PWT/USER/NX;新 PDPTE 是**非叶条目**,只带 PRESENT|WRITABLE|USER,绝不带 bit63(NX),否则 & ~0xFFF 派生出的表指针非规范 = 刚修的 #GP 根因);条目不存在/已是 PD 时直接返回 1,建 PD 仍由调用方既有逻辑负责 - MapPage:取到 PDPT 后先拆分,再走既有 2MB/4KB 逻辑(否则 pd.entries 会写进大页内存,读到随机“表项”) - MapLargePage:同样先拆分,再写入 2MB 条目 - UnMapPage:先拆分再撤除命中的条目(此前会把大页内存内容当表项 → 往派生出的随机地址写 0,即“fb/pitch/w/h 被清零”那类隐性写坏)