新建菜单项的创建之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.{..^.......