新建菜单项的创建之CmpGetValueListFromCache函数分析
第一部分:
PCELL_DATA
CmpGetValueListFromCache(
IN PHHIVE Hive,
IN PCACHED_CHILD_LIST ChildList,
OUT BOOLEAN *IndexCached,
OUT PHCELL_INDEX ValueListToRelease
)
0: kd> dv
KeyControlBlock = 0xe115f5b0
Index = 2
KeyValueInformationClass = KeyValueFullInformation (0n1)
KeyValueInformation = 0x00fad9bc
ChildList = 0xe119a7c4
0: kd> dv
KeyControlBlock = 0xe115f5b0
Index = 2
KeyValueInformationClass = KeyValueFullInformation (0n1)
0: kd> dx -r1 ((ntkrnlmp!_CM_KEY_CONTROL_BLOCK *)0xe115f5b0)
((ntkrnlmp!_CM_KEY_CONTROL_BLOCK *)0xe115f5b0) : 0xe115f5b0 [Type: _CM_KEY_CONTROL_BLOCK *]
[+0x024] ValueCache [Type: _CACHED_CHILD_LIST]
0: kd> dx -r1 (*((ntkrnlmp!_CACHED_CHILD_LIST *)0xe115f5d4))
(*((ntkrnlmp!_CACHED_CHILD_LIST *)0xe115f5d4)) [Type: _CACHED_CHILD_LIST]
[+0x000] Count : 0x8 [Type: unsigned long]
[+0x004] ValueList : 0xe119a7c1 [Type: unsigned long]
[+0x004] RealKcb : 0xe119a7c1 [Type: _CM_KEY_CONTROL_BLOCK *]
参考头文件:CMP_GET_CACHED_CELLDATA cmdata.h (base\ntos\inc)
#define CMP_GET_CACHED_CELLDATA(Cell) (&(((PCM_CACHED_VALUE_INDEX)(((ULONG_PTR) (Cell)) & ~CMP_CELL_CACHED_MASK))->Data.CellData))
0: kd> dt CM_CACHED_VALUE_INDEX 0xe119a7c0
nt!CM_CACHED_VALUE_INDEX
+0x000 CellIndex : 0x78420
+0x004 Data : __unnamed
0: kd> dx -id 0,0,89589d88 -r1 (*((ntkrnlmp!__unnamed *)0xe119a7c4))
(*((ntkrnlmp!__unnamed *)0xe119a7c4)) [Type: __unnamed]
[+0x000] CellData [Type: _CELL_DATA]
[+0x000] List [Type: unsigned long [1]]
0: kd> dx -id 0,0,89589d88 -r1 (*((ntkrnlmp!_CELL_DATA *)0xe119a7c4))
(*((ntkrnlmp!_CELL_DATA *)0xe119a7c4)) [Type: _CELL_DATA]
[+0x000] u [Type: _u]
0: kd> dx -id 0,0,89589d88 -r1 (*((ntkrnlmp!_u *)0xe119a7c4))
(*((ntkrnlmp!_u *)0xe119a7c4)) [Type: _u]
[+0x000] KeyNode [Type: _CM_KEY_NODE]
[+0x000] KeyValue [Type: _CM_KEY_VALUE]
[+0x000] KeySecurity [Type: _CM_KEY_SECURITY]
[+0x000] KeyIndex [Type: _CM_KEY_INDEX]
[+0x000] ValueData [Type: _CM_BIG_DATA]
[+0x000] KeyList [Type: unsigned long [1]]
[+0x000] KeyString [Type: unsigned short [1]]
第二部分:
0: kd> dt CELL_DATA 0xe119a7c4
nt!CELL_DATA
+0x000 u : _u
0: kd> dx -id 0,0,89589d88 -r1 (*((ntkrnlmp!_u *)0xe119a7c4))
(*((ntkrnlmp!_u *)0xe119a7c4)) [Type: _u]
[+0x000] KeyNode [Type: _CM_KEY_NODE]
[+0x000] KeyValue [Type: _CM_KEY_VALUE]
[+0x000] KeySecurity [Type: _CM_KEY_SECURITY]
[+0x000] KeyIndex [Type: _CM_KEY_INDEX]
[+0x000] ValueData [Type: _CM_BIG_DATA]
[+0x000] KeyList [Type: unsigned long [1]]
[+0x000] KeyString [Type: unsigned short [1]]
0: kd> dd 0xe119a7c4 8个键值
e119a7c4 e19d0809 e19efc39 e11657a1 e116ace9
e119a7d4 e16c5b21 e19a8e81 e17a4711 e10ae231
0: kd> db e10ae259
e10ae259 00 24 00 76 6b 10 00 a0-03 00 00 20 a0 05 00 03 .$.vk...... ....
e10ae269 00 00 00 01 00 b2 b2 57-6f 72 64 70 61 64 20 44 .......Wordpad D
e10ae279 6f 63 75 6d 65 6e 74 06-04 02 00 4f 62 53 71 a9 ocument....ObSq.
e10ae289 e5 87 e1 79 68 98 e1 02-04 0f 0c 43 4d 56 49 70 ...yh......CMVIp
e10ae299 9b 06 00 91 22 88 e1 79-82 73 e1 51 ee 7b e1 a1 ...."..y.s.Q.{..
e10ae2a9 5e 9a e1 a9 c0 06 e1 b9-e5 87 e1 f9 7a 41 e1 81 ^...........zA..
e10ae2b9 67 83 e1 a1 13 79 e1 b9-bb 96 e1 79 c1 06 e1 a9 g....y.....y....
e10ae2c9 c8 77 e1 11 c5 2b e1 69-13 79 e1 b1 2e 88 e1 a1 .w...+.i.y......
0: kd> db e19efc39
e19efc39 00 24 00 76 6b 0c 00 a0-03 00 00 98 a7 05 00 03 .$.vk...........
e19efc49 00 00 00 01 00 b2 b2 42-69 74 6d 61 70 20 49 6d .......Bitmap Im
e19efc59 61 67 65 b2 b2 b2 b2 00-00 00 00 00 00 00 00 00 age.............
e19efc69 00 00 00 00 00 42 00 69-00 74 00 6d 00 61 00 70 .....B.i.t.m.a.p
e19efc79 00 20 00 49 00 6d 00 61-00 67 00 65 00 00 00 00 . .I.m.a.g.e....
e19efc89 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
e19efc99 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
e19efca9 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0: kd> db e19d0809
e19d0809 00 24 00 76 6b 09 00 a0-03 00 00 88 9b 05 00 03 .$.vk...........
e19d0819 00 00 00 01 00 b2 b2 42-72 69 65 66 63 61 73 65 .......Briefcase
e19d0829 b2 b2 b2 b2 b2 b2 b2 00-00 00 00 00 00 00 00 00 ................
e19d0839 00 00 00 00 00 42 00 72-00 69 00 65 00 66 00 63 .....B.r.i.e.f.c
e19d0849 00 61 00 73 00 65 00 00-00 00 00 00 00 00 00 00 .a.s.e..........
e19d0859 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
e19d0869 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
e19d0879 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0: kd> db e116ace9
e116ace9 00 2c 00 76 6b 12 00 a0-03 00 00 c8 a3 05 00 03 .,.vk...........
e116acf9 00 00 00 01 00 b2 b2 52-69 63 68 20 54 65 78 74 .......Rich Text
e116ad09 20 44 6f 63 75 6d 65 6e-74 b2 b2 b2 b2 b2 b2 07 Document.......
e116ad19 06 12 0c 47 6c 61 40 78-00 00 00 a8 f2 82 e1 10 ...Gla@x........
e116ad29 bc 96 e1 70 7c 09 e1 8e-02 10 71 00 00 00 00 00 ...p|.....q.....
e116ad39 00 00 80 00 00 00 00 07-00 00 00 00 00 00 00 00 ................
e116ad49 00 00 00 14 00 00 80 25-03 00 00 58 0e 90 00 00 .......%...X....
e116ad59 00 00 00 ff ff ff 00 00-00 00 00 00 00 00 00 01 ................
0: kd> db e16c5b21
e16c5b21 00 24 00 76 6b 0d 00 a0-03 00 00 20 b0 05 00 03 .$.vk...... ....
e16c5b31 00 00 00 01 00 b2 b2 54-65 78 74 20 44 6f 63 75 .......Text Docu
e16c5b41 6d 65 6e 74 b2 b2 b2 06-08 02 00 43 4d 4e e2 a1 ment.......CMN..
e16c5b51 64 18 e1 71 4d 16 e1 02-08 06 0c 43 4d 56 61 00 d..qM......CMVa.
e16c5b61 00 24 00 76 6b 0c 00 1e-00 00 00 58 33 00 00 01 .$.vk......X3...
e16c5b71 00 00 00 01 00 b2 b2 43-6f 6e 74 65 6e 74 20 54 .......Content T
e16c5b81 79 70 65 b2 b2 b2 b2 06-08 07 1c 43 4d 70 62 01 ype........CMpb.
e16c5b91 00 00 00 34 8f 49 e1 54-4e 9c e1 74 43 86 e1 7c ...4.I.TN..tC..|
0: kd> db e19a8e81
e19a8e81 00 34 00 76 6b 1a 00 a0-03 00 00 50 a9 06 00 03 .4.vk......P....
e19a8e91 00 00 00 01 00 b2 b2 43-6f 6d 70 72 65 73 73 65 .......Compresse
e19a8ea1 64 20 28 7a 69 70 70 65-64 29 20 46 6f 6c 64 65 d (zipped) Folde
e19a8eb1 72 b2 b2 b2 b2 b2 b2 08-04 08 04 43 4d 4e e2 20 r..........CMN.
e19a8ec1 62 7b e1 3f 9a ce 0f 84-41 61 e1 26 00 7b 36 35 b{.?....Aa.&.{65
e19a8ed1 34 33 39 43 32 30 2d 36-30 34 46 2d 34 39 43 41 439C20-604F-49CA
e19a8ee1 2d 41 41 38 32 2d 44 43-30 31 41 31 30 41 46 31 -AA82-DC01A10AF1
e19a8ef1 37 31 7d 15 00 00 00 08-04 01 00 4f 62 4e 6d 01 71}........ObNm.
0: kd> db e17a4711
e17a4711 00 24 00 76 6b 0a 00 18-00 00 00 f8 ac 05 00 03 .$.vk...........
e17a4721 00 00 00 01 00 b2 b2 7e-72 65 73 65 72 76 65 64 .......~reserved
e17a4731 7e b2 b2 b2 b2 b2 b2 18-00 00 00 01 00 01 00 e9 ~...............
e17a4741 07 01 00 03 00 0f 00 0d-00 28 00 0a 00 0d 03 09 .........(......
e17a4751 06 01 00 4e 74 66 63 01-06 05 0c 43 4d 56 61 00 ...Ntfc....CMVa.
e17a4761 00 1c 00 76 6b 07 00 18-00 00 00 80 68 01 00 01 ...vk.......h...
e17a4771 00 00 00 01 00 b2 b2 49-6e 66 50 61 74 68 b2 05 .......InfPath..
e17a4781 06 06 0c 43 4d 56 61 00-00 24 00 76 6b 0e 00 08 ...CMVa..$.vk...
0: kd> db e10ae231
e10ae231 00 1c 00 76 6b 08 00 04-00 00 80 09 04 00 00 04 ...vk...........
e10ae241 00 00 00 01 00 b2 b2 4c-61 6e 67 75 61 67 65 05 .......Language.
e10ae251 04 06 0c 43 4d 56 61 00-00 24 00 76 6b 10 00 a0 ...CMVa..$.vk...
e10ae261 03 00 00 20 a0 05 00 03-00 00 00 01 00 b2 b2 57 ... ...........W
e10ae271 6f 72 64 70 61 64 20 44-6f 63 75 6d 65 6e 74 06 ordpad Document.
e10ae281 04 02 00 4f 62 53 71 a9-e5 87 e1 79 68 98 e1 02 ...ObSq....yh...
e10ae291 04 0f 0c 43 4d 56 49 70-9b 06 00 91 22 88 e1 79 ...CMVIp...."..y
e10ae2a1 82 73 e1 51 ee 7b e1 a1-5e 9a e1 a9 c0 06 e1 b9 .s.Q.{..^.......
相关文章:

新建菜单项的创建之CmpGetValueListFromCache函数分析
第一部分: PCELL_DATA CmpGetValueListFromCache( IN PHHIVE Hive, IN PCACHED_CHILD_LIST ChildList, OUT BOOLEAN *IndexCached, OUT PHCELL_INDEX ValueListToRelease ) 0: kd> dv KeyControlBlock 0xe1…...

【Word2Vec】Skip-gram 的直观理解(深入浅出)
01 什么是skip-gram 一句话来说就是,给定中心词,然后预测其周围的词: 02 模型结构 对于skip-gram来说,输入是一个[1 x V]维的ont-hot向量,其中V为词表大小,值为1的那一项就表示我们的中心词。经过一个[V x…...

在MacOS上打造本地部署的大模型知识库(一)
一、在MacOS上安装Ollama docker run -d -p 3000:8080 --add-hosthost.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main 最后停掉Docker的ollama,就能在webui中加载llama模…...

(21)从strerror到strtok:解码C语言字符函数的“生存指南2”
❤个人主页:折枝寄北的博客 ❤专栏位置:简单入手C语言专栏 目录 前言1. 错误信息报告1.1 strerror 2. 字符操作2.1 字符分类函数2.2 字符转换函数 3. 内存操作函数3.1 memcpy3.2 memmove3.2memset3.3 memcmp 感谢您的阅读 前言 当你写下strcpy(dest, s…...

DeepSeek推出DeepEP:首个开源EP通信库,让MoE模型训练与推理起飞!
今天,DeepSeek 在继 FlashMLA 之后,推出了第二个 OpenSourceWeek 开源项目——DeepEP。 作为首个专为MoE(Mixture-of-Experts)训练与推理设计的开源 EP 通信库,DeepEP 在EP(Expert Parallelism)…...

1.2 Kaggle大白话:Eedi竞赛Transformer框架解决方案02-GPT_4o生成训练集缺失数据
目录 0. 本栏目竞赛汇总表1. 本文主旨2. AI工程架构3. 数据预处理模块3.1 配置数据路径和处理参数3.2 配置API参数3.3 配置输出路径 4. AI并行处理模块4.1 定义LLM客户端类4.2 定义数据处理函数4.3 定义JSON保存函数4.4 定义数据分片函数4.5 定义分片处理函数4.5 定义文件名排序…...

数据结构-顺序表专题
大家好!这里是摆子,今天给大家带来的是C语言数据结构开端-顺序表专题,主要介绍了数据结构和动态顺序表的实现,快来看看吧!记得一键三连哦! 1.数据结构的概念 1.1什么是数据结构? 数据结构是计…...
docker和containerd从TLS harbor拉取镜像
私有镜像仓库配置了自签名证书,https访问,好处是不需要处理免费证书和付费证书带来的证书文件变更,证书文件变更后需要重启服务,自签名证书需要将一套客户端证书存放在/etc/docker/cert.d目录下,或者/etc/containerd/c…...

kafka-关于ISR-概述
一. 什么是ISR ? Kafka 中通常每个分区都有多个副本,其中一个副本被选举为 Leader,其他副本为 Follower。ISR 是指与 Leader 副本保持同步的 Follower 副本集合。ISR 机制的核心是确保数据在多个副本之间的一致性和可靠性,同时在 …...

el-input实现金额输入
需求:想要实现一个输入金额的el-input,限制只能输入数字和一个小数点。失焦数字转千分位,聚焦转为数字,超过最大值,红字提示 效果图 失焦 聚焦 报错效果 // 组件limitDialog <template><el-dialog:visible.s…...
C++11智能指针
一、指针管理的困境 资源释放了,但指针没有置空(野指针、指针悬挂、踩内存) 没有释放资源,产生内存泄漏问题;重复释放资源,引发coredump 二、智能指针...

安装Git(小白也会装)
一、官网下载:Git 1.依次点击(红框) 不要安装在C盘了,要炸了!!! 后面都 使用默认就好了,不用改,直接Next! 直到这里,选第一个 这两种选项的区别如…...

驭势科技9周年:怀揣理想,踏浪前行
2025年的2月,驭势科技迎来9岁生日。位于国内外不同工作地的Uiseeker齐聚线上线下,共同庆祝驭势走过的璀璨九年。 驭势科技联合创始人、董事长兼CEO吴甘沙现场分享了驭势9年的奔赴之路,每一段故事都包含着坚持与拼搏。 左右滑动查看更多 Part.…...

一款在手机上制作电子表格
今天给大家分享一款在手机上制作电子表格的,免费好用的Exce1表格软件,让工作变得更加简单。 1 软件介绍 Exce1是一款手机制作表格的办公软件,您可以使用手机exce1在线制作表格、工资表、编辑xlsx和xls表格文件等,还可以学习使用…...
Python解决“比赛配对”问题
Python解决“比赛配对”问题 问题描述测试样例解决思路代码 问题描述 小R正在组织一个比赛,比赛中有 n 支队伍参赛。比赛遵循以下独特的赛制: 如果当前队伍数为 偶数,那么每支队伍都会与另一支队伍配对。总共进行 n / 2 场比赛,…...

【AI论文】RAD: 通过大规模基于3D图形仿真器的强化学习训练端到端驾驶策略
摘要:现有的端到端自动驾驶(AD)算法通常遵循模仿学习(IL)范式,但面临着因果混淆和开环差距等挑战。在本研究中,我们建立了一种基于3D图形仿真器(3DGS)的闭环强化学习&…...

Web开发:ORM框架之使用Freesql的导航属性
一、什么时候用导航属性 看数据库表的对应关系,一对多的时候用比较好,不用多写一个联表实体,而且查询高效 二、为实体配置导航属性 1.给关系是一的父表实体加上: [FreeSql.DataAnnotations.Navigate(nameof(子表.子表关联字段))]…...
【docker】namespace底层机制
Linux 的 Namespace 机制是实现容器化(如 Docker、LXC 等)的核心技术之一,它通过隔离系统资源(如进程、网络、文件系统等)为进程提供独立的运行环境。其底层机制涉及内核数据结构、系统调用和进程管理。以下是其核心实…...

【每天认识一个漏洞】url重定向
🌝博客主页:菜鸟小羊 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 常见应用场景 主要是业务逻辑中需要进行跳转的地方。比如登录处、注册处、访问用户信息、订单信息、加入购物车、分享、收…...
端口映射/内网穿透方式及问题解决:warning: remote port forwarding failed for listen port
文章目录 需求:A机器是内网机器,B机器是公网服务器,想要从公网,访问A机器的端口方式:端口映射,内网穿透,使用ssh打洞端口:遇到问题:命令执行成功,但是端口转发…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
OkHttp 中实现断点续传 demo
在 OkHttp 中实现断点续传主要通过以下步骤完成,核心是利用 HTTP 协议的 Range 请求头指定下载范围: 实现原理 Range 请求头:向服务器请求文件的特定字节范围(如 Range: bytes1024-) 本地文件记录:保存已…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
安卓基础(aar)
重新设置java21的环境,临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的: MyApp/ ├── app/ …...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...