当前位置: 首页 > article >正文

SHELL32!Shell_MergeMenus函数分析

SHELL32!Shell_MergeMenus函数分析

UINT Shell_MergeMenus(
  [in] HMENU hmDst,
  [in] HMENU hmSrc,
       UINT  uInsert,
       UINT  uIDAdjust,
       UINT  uIDAdjustMax,
       ULONG uFlags
);

参数

[in] hmDst    类型: HMENU    要向其添加 hmSrc 的目标菜单。

[in] hmSrc    类型: HMENU    添加到 hmDst 的源菜单。

uInsert        类型: UINT    hmDst 中的点,在该点之后插入 hmSrc 中的条目。

uIDAdjust        类型: UINT    此数字将添加到每个菜单的 ID 中,以提供调整后的 ID。 设置为 0 不进行调整。 uIDAdjust 的值通常是 hmDst 中的项数。 可以使用 GetMenuItemCount 获取此数字。

uIDAdjustMax    类型: UINT    要添加到菜单的最大调整 ID。 不会添加任何大于此值的调整 ID。 若要允许所有 ID,请将此参数设置为 0xFFFF。

uFlags        类型: ULONG    以下一个或多个标志。

MM_ADDSEPARATOR

在两个菜单中的项之间添加分隔符(如果尚不存在)。 如果要将 hmSrc 中的条目插入 hmDst 中间,则会在 hmSrc 材料上方和下方添加分隔符。
MM_DONTREMOVESEPS

请勿删除两个菜单中的任何现有分隔符。 请注意,这可能会导致一行中出现两个分隔符。
MM_SUBMENUSHAVEIDS

如果子菜单具有应调整的 ID,请设置此标志。
返回值

类型: UINT

返回菜单末尾的下一个打开 ID, (调整后的最大 ID + 1) 。

1: kd> dv
          hmDst = 0x001a0095
          hmSrc = 0x00160097
        uInsert = 0
      uIDAdjust = 0x7901
   uIDAdjustMax = 0x79ff
         uFlags = 0x20000


1: kd> dt win32k!menu 0xbc692924
   +0x000 head             : _PROCDESKHEAD
   +0x014 fFlags           : 1
   +0x018 iItem            : 0n0
   +0x01c cAlloced         : 8
   +0x020 cItems           : 8
   +0x024 cxMenu           : 0
   +0x028 cyMenu           : 0
   +0x02c cxTextAlign      : 0
   +0x030 spwndNotify      : (null)
   +0x034 rgItems          : 0xbc6938d4 tagITEM
   +0x038 pParentMenus     : (null)
   +0x03c dwContextHelpId  : 0
   +0x040 cyMax            : 0
   +0x044 dwMenuData       : 0
   +0x048 hbrBack          : (null)
   +0x04c iTop             : 0n0
   +0x050 iMaxTop          : 0n0
   +0x054 dwArrowsOn       : 0y00
1: kd> dx -id 0,0,89589d88 -r1 ((win32k!tagITEM *)0xbc6938d4)
((win32k!tagITEM *)0xbc6938d4)                 : 0xbc6938d4 [Type: tagITEM *]
    [+0x000] fType            : 0x0 [Type: unsigned int]
    [+0x004] fState           : 0x0 [Type: unsigned int]
    [+0x008] wID              : 0x0 [Type: unsigned int]
    [+0x00c] spSubMenu        : 0xbc693ce4 [Type: tagMENU *]
    [+0x010] hbmpChecked      : 0x0 [Type: void *]
    [+0x014] hbmpUnchecked    : 0x0 [Type: void *]
    [+0x018] lpstr            : 0xbc694aa4 : 0x26 [Type: unsigned short *]
    [+0x01c] cch              : 0x5 [Type: unsigned long]
    [+0x020] dwItemData       : 0x0 [Type: unsigned long]
    [+0x024] xItem            : 0x0 [Type: unsigned long]
    [+0x028] yItem            : 0x0 [Type: unsigned long]
    [+0x02c] cxItem           : 0x0 [Type: unsigned long]
    [+0x030] cyItem           : 0x0 [Type: unsigned long]
    [+0x034] dxTab            : 0x0 [Type: unsigned long]
    [+0x038] ulX              : 0x7fffffff [Type: unsigned long]
    [+0x03c] ulWidth          : 0x0 [Type: unsigned long]
    [+0x040] hbmp             : 0x0 [Type: HBITMAP__ *]
    [+0x044] cxBmp            : -1 [Type: int]
    [+0x048] cyBmp            : 0 [Type: int]
1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*7
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc6929dc  -> 0x7b
   +0x01c cch              : 0x26
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc6929dc
bc6929dc  7b 00 34 00 34 00 30 00-37 00 35 00 44 00 36 00  {.4.4.0.7.5.D.6.
bc6929ec  31 00 2d 00 32 00 30 00-35 00 30 00 2d 00 34 00  1.-.2.0.5.0.-.4.
bc6929fc  44 00 46 00 34 00 2d 00-42 00 43 00 35 00 44 00  D.F.4.-.B.C.5.D.
bc692a0c  2d 00 43 00 42 00 41 00-38 00 38 00 41 00 38 00  -.C.B.A.8.8.A.8.
bc692a1c  34 00 45 00 37 00 35 00-42 00 7d 00 00 00 55 48  4.E.7.5.B.}...UH

1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*6
   +0x000 fType            : 0
   +0x004 fState           : 1
   +0x008 wID              : 0x7902
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc692d94  -> 0x50
   +0x01c cch              : 0xf
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc692d94
bc692d94  50 00 61 00 73 00 74 00-65 00 20 00 26 00 53 00  P.a.s.t.e. .&.S.
bc692da4  68 00 6f 00 72 00 74 00-63 00 75 00 74 00 00 00  h.o.r.t.c.u.t...

1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*5
   +0x000 fType            : 0
   +0x004 fState           : 1
   +0x008 wID              : 0x7903
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc67512c  -> 0x26
   +0x01c cch              : 6
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc67512c
bc67512c  26 00 50 00 61 00 73 00-74 00 65 00 00 00 55 48  &.P.a.s.t.e...UH

1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*4
   +0x000 fType            : 0x800
   +0x004 fState           : 3
   +0x008 wID              : 3
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : (null)
   +0x01c cch              : 0
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*3
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7905
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc692a8c  -> 0x52
   +0x01c cch              : 8
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc692a8c
bc692a8c  52 00 26 00 65 00 66 00-72 00 65 00 73 00 68 00  R.&.e.f.r.e.s.h.

1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*2
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0
   +0x00c spSubMenu        : 0xbc692afc tagMENU
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc693bfc  -> 0x41
   +0x01c cch              : 0x11
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0


1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*1
   +0x000 fType            : 0x800
   +0x004 fState           : 3
   +0x008 wID              : 0xe
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : (null)
   +0x01c cch              : 0
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0


1: kd> dt win32k!tagITEM 0xbc6938d4+0x4c*0
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0
   +0x00c spSubMenu        : 0xbc693ce4 tagMENU
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc694aa4  -> 0x26
   +0x01c cch              : 5
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0


1: kd> dx -id 0,0,89589d88 -r1 ((win32k!tagMENU *)0xbc692afc)
((win32k!tagMENU *)0xbc692afc)                 : 0xbc692afc [Type: tagMENU *]
    [+0x000] head             [Type: _PROCDESKHEAD]
    [+0x014] fFlags           : 0x1 [Type: unsigned long]
    [+0x018] iItem            : 0 [Type: int]
    [+0x01c] cAlloced         : 0x10 [Type: unsigned int]
    [+0x020] cItems           : 0x9 [Type: unsigned int]
    [+0x024] cxMenu           : 0x0 [Type: unsigned long]
    [+0x028] cyMenu           : 0x0 [Type: unsigned long]
    [+0x02c] cxTextAlign      : 0x0 [Type: unsigned long]
    [+0x030] spwndNotify      : 0x0 [Type: tagWND *]
    [+0x034] rgItems          : 0xbc694104 [Type: tagITEM *]
    [+0x038] pParentMenus     : 0xbc693c7c [Type: tagMENULIST *]
    [+0x03c] dwContextHelpId  : 0x0 [Type: unsigned long]
    [+0x040] cyMax            : 0x0 [Type: unsigned long]
    [+0x044] dwMenuData       : 0x0 [Type: unsigned long]
    [+0x048] hbrBack          : 0x0 [Type: HBRUSH__ *]
    [+0x04c] iTop             : 0 [Type: int]
    [+0x050] iMaxTop          : 0 [Type: int]
    [+0x054 ( 1: 0)] dwArrowsOn       : 0x0 [Type: unsigned long]


1: kd> dx -id 0,0,89589d88 -r1 ((win32k!tagITEM *)0xbc694104)
((win32k!tagITEM *)0xbc694104)                 : 0xbc694104 [Type: tagITEM *]
    [+0x000] fType            : 0x0 [Type: unsigned int]
    [+0x004] fState           : 0x0 [Type: unsigned int]
    [+0x008] wID              : 0x790e [Type: unsigned int]
    [+0x00c] spSubMenu        : 0x0 [Type: tagMENU *]
    [+0x010] hbmpChecked      : 0x0 [Type: void *]
    [+0x014] hbmpUnchecked    : 0x0 [Type: void *]
    [+0x018] lpstr            : 0xbc693b94 : 0x26 [Type: unsigned short *]
    [+0x01c] cch              : 0x5 [Type: unsigned long]
    [+0x020] dwItemData       : 0x0 [Type: unsigned long]
    [+0x024] xItem            : 0x0 [Type: unsigned long]
    [+0x028] yItem            : 0x0 [Type: unsigned long]
    [+0x02c] cxItem           : 0x0 [Type: unsigned long]
    [+0x030] cyItem           : 0x0 [Type: unsigned long]
    [+0x034] dxTab            : 0x0 [Type: unsigned long]
    [+0x038] ulX              : 0x7fffffff [Type: unsigned long]
    [+0x03c] ulWidth          : 0x0 [Type: unsigned long]
    [+0x040] hbmp             : 0x0 [Type: HBITMAP__ *]
    [+0x044] cxBmp            : -1 [Type: int]
    [+0x048] cyBmp            : 0 [Type: int]


1: kd> db 0xbc693b94
bc693b94  26 00 4e 00 61 00 6d 00-65 00 00 00 55 48 5f 54  &.N.a.m.e...UH_T

1: kd> win32k!tagITEM 0xbc694104+0x4c*8
       ^ Syntax error in 'win32k!tagITEM 0xbc694104+0x4c*8'
1: kd> dt win32k!tagITEM 0xbc694104+0x4c*8
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7906
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc692bb4  -> 0x41
   +0x01c cch              : 0xe
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc692bb4
bc692bb4  41 00 26 00 6c 00 69 00-67 00 6e 00 20 00 74 00  A.&.l.i.g.n. .t.
bc692bc4  6f 00 20 00 47 00 72 00-69 00 64 00 00 00 55 48  o. .G.r.i.d...UH

1: kd> dt win32k!tagITEM 0xbc694104+0x4c*7
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7907
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc693e54  -> 0x26
   +0x01c cch              : 0xd
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc693e54
bc693e54  26 00 41 00 75 00 74 00-6f 00 20 00 41 00 72 00  &.A.u.t.o. .A.r.
bc693e64  72 00 61 00 6e 00 67 00-65 00 00 00 55 48 5f 54  r.a.n.g.e...UH_T


1: kd> dt win32k!tagITEM 0xbc694104+0x4c*6
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7908
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc693ecc  -> 0x53
   +0x01c cch              : 0xf
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc693ecc
bc693ecc  53 00 68 00 6f 00 77 00-20 00 69 00 6e 00 20 00  S.h.o.w. .i.n. .
bc693edc  26 00 47 00 72 00 6f 00-75 00 70 00 73 00 00 00  &.G.r.o.u.p.s...
bc693eec  55 48 5f 54 41 49 4c 00-ab ab ab ab ab ab ab ab  UH_TAIL.........


1: kd> dt win32k!tagITEM 0xbc694104+0x4c*5
   +0x000 fType            : 0x800
   +0x004 fState           : 3
   +0x008 wID              : 8
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : (null)
   +0x01c cch              : 0
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0


1: kd> dt win32k!tagITEM 0xbc694104+0x4c*4
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x790a
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc693f4c  -> 0x41
   +0x01c cch              : 0xb
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0


1: kd> db 0xbc693f4c
bc693f4c  41 00 74 00 74 00 72 00-69 00 62 00 26 00 75 00  A.t.t.r.i.b.&.u.
bc693f5c  74 00 65 00 73 00 00 00-55 48 5f 54 41 49 4c 00  t.e.s...UH_TAIL.

1: kd> dt win32k!tagITEM 0xbc694104+0x4c*3
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x790b
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc693fc4  -> 0x26
   +0x01c cch              : 9
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc693fc4
bc693fc4  26 00 4d 00 6f 00 64 00-69 00 66 00 69 00 65 00  &.M.o.d.i.f.i.e.
bc693fd4  64 00 00 00 55 48 5f 54-41 49 4c 00 ab ab ab ab  d...UH_TAIL.....

1: kd> dt win32k!tagITEM 0xbc694104+0x4c*2
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x790c
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc694034  -> 0x26
   +0x01c cch              : 5
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc694034
bc694034  26 00 54 00 79 00 70 00-65 00 00 00 55 48 5f 54  &.T.y.p.e...UH_T
bc694044  41 49 4c 00 ab ab ab ab-ab ab ab ab 00 00 00 00  AIL.............

1: kd> dt win32k!tagITEM 0xbc694104+0x4c*1
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x790d
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc69409c  -> 0x26
   +0x01c cch              : 5
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc69409c
bc69409c  26 00 53 00 69 00 7a 00-65 00 00 00 55 48 5f 54  &.S.i.z.e...UH_T
bc6940ac  41 49 4c 00 ab ab ab ab-ab ab ab ab 00 00 00 00  AIL.............


1: kd> dt win32k!tagITEM 0xbc694104+0x4c*0
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x790e
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc693b94  -> 0x26
   +0x01c cch              : 5
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc693b94
bc693b94  26 00 4e 00 61 00 6d 00-65 00 00 00 55 48 5f 54  &.N.a.m.e...UH_T
bc693ba4  41 49 4c 00 ab ab ab ab-ab ab ab ab 00 00 00 00  AIL.............

1: kd> dx -id 0,0,89589d88 -r1 ((win32k!tagMENU *)0xbc693ce4)
((win32k!tagMENU *)0xbc693ce4)                 : 0xbc693ce4 [Type: tagMENU *]
    [+0x000] head             [Type: _PROCDESKHEAD]
    [+0x014] fFlags           : 0x1 [Type: unsigned long]
    [+0x018] iItem            : 0 [Type: int]
    [+0x01c] cAlloced         : 0x8 [Type: unsigned int]
    [+0x020] cItems           : 0x5 [Type: unsigned int]
    [+0x024] cxMenu           : 0x0 [Type: unsigned long]
    [+0x028] cyMenu           : 0x0 [Type: unsigned long]
    [+0x02c] cxTextAlign      : 0x0 [Type: unsigned long]
    [+0x030] spwndNotify      : 0x0 [Type: tagWND *]
    [+0x034] rgItems          : 0xbc694624 [Type: tagITEM *]
    [+0x038] pParentMenus     : 0xbc694b0c [Type: tagMENULIST *]
    [+0x03c] dwContextHelpId  : 0x0 [Type: unsigned long]
    [+0x040] cyMax            : 0x0 [Type: unsigned long]
    [+0x044] dwMenuData       : 0x0 [Type: unsigned long]
    [+0x048] hbrBack          : 0x0 [Type: HBRUSH__ *]
    [+0x04c] iTop             : 0 [Type: int]
    [+0x050] iMaxTop          : 0 [Type: int]
    [+0x054 ( 1: 0)] dwArrowsOn       : 0x0 [Type: unsigned long]


1: kd> dx -id 0,0,89589d88 -r1 ((win32k!tagITEM *)0xbc694624)
((win32k!tagITEM *)0xbc694624)                 : 0xbc694624 [Type: tagITEM *]
    [+0x000] fType            : 0x0 [Type: unsigned int]
    [+0x004] fState           : 0x0 [Type: unsigned int]
    [+0x008] wID              : 0x7914 [Type: unsigned int]
    [+0x00c] spSubMenu        : 0x0 [Type: tagMENU *]
    [+0x010] hbmpChecked      : 0x0 [Type: void *]
    [+0x014] hbmpUnchecked    : 0x0 [Type: void *]
    [+0x018] lpstr            : 0xbc694a2c : 0x54 [Type: unsigned short *]
    [+0x01c] cch              : 0xb [Type: unsigned long]
    [+0x020] dwItemData       : 0x0 [Type: unsigned long]
    [+0x024] xItem            : 0x0 [Type: unsigned long]
    [+0x028] yItem            : 0x0 [Type: unsigned long]
    [+0x02c] cxItem           : 0x0 [Type: unsigned long]
    [+0x030] cyItem           : 0x0 [Type: unsigned long]
    [+0x034] dxTab            : 0x0 [Type: unsigned long]
    [+0x038] ulX              : 0x7fffffff [Type: unsigned long]
    [+0x03c] ulWidth          : 0x0 [Type: unsigned long]
    [+0x040] hbmp             : 0x0 [Type: HBITMAP__ *]
    [+0x044] cxBmp            : -1 [Type: int]
    [+0x048] cyBmp            : 0 [Type: int]


1: kd> dt win32k!tagITEM 0xbc694624+0x4c*4
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7910
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc693d9c  -> 0x26
   +0x01c cch              : 8
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc693d9c
bc693d9c  26 00 44 00 65 00 74 00-61 00 69 00 6c 00 73 00  &.D.e.t.a.i.l.s.
bc693dac  00 00 55 48 5f 54 41 49-4c 00 ab ab ab ab ab ab  ..UH_TAIL.......

1: kd> dt win32k!tagITEM 0xbc694624+0x4c*3
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7911
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc6948e4  -> 0x26
   +0x01c cch              : 5
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc6948e4
bc6948e4  26 00 4c 00 69 00 73 00-74 00 00 00 55 48 5f 54  &.L.i.s.t...UH_T
bc6948f4  41 49 4c 00 ab ab ab ab-ab ab ab ab 00 00 00 00  AIL.............

1: kd> dt win32k!tagITEM 0xbc694624+0x4c*2
   +0x000 fType            : 0x200
   +0x004 fState           : 8
   +0x008 wID              : 0x7912
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc69494c  -> 0x49
   +0x01c cch              : 6
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc69494c
bc69494c  49 00 63 00 6f 00 26 00-6e 00 73 00 00 00 55 48  I.c.o.&.n.s...UH
bc69495c  5f 54 41 49 4c 00 ab ab-ab ab ab ab ab ab ca ca  _TAIL...........

1: kd> dt win32k!tagITEM 0xbc694624+0x4c*1
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7913
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc6949bc  -> 0x54
   +0x01c cch              : 6
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc6949bc
bc6949bc  54 00 69 00 6c 00 65 00-26 00 73 00 00 00 55 48  T.i.l.e.&.s...UH
bc6949cc  5f 54 41 49 4c 00 ab ab-ab ab ab ab ab ab ca ca  _TAIL...........

1: kd> dt win32k!tagITEM 0xbc694624+0x4c*0
   +0x000 fType            : 0
   +0x004 fState           : 0
   +0x008 wID              : 0x7914
   +0x00c spSubMenu        : (null)
   +0x010 hbmpChecked      : (null)
   +0x014 hbmpUnchecked    : (null)
   +0x018 lpstr            : 0xbc694a2c  -> 0x54
   +0x01c cch              : 0xb
   +0x020 dwItemData       : 0
   +0x024 xItem            : 0
   +0x028 yItem            : 0
   +0x02c cxItem           : 0
   +0x030 cyItem           : 0
   +0x034 dxTab            : 0
   +0x038 ulX              : 0x7fffffff
   +0x03c ulWidth          : 0
   +0x040 hbmp             : (null)
   +0x044 cxBmp            : 0n-1
   +0x048 cyBmp            : 0n0
1: kd> db 0xbc694a2c
bc694a2c  54 00 26 00 68 00 75 00-6d 00 62 00 6e 00 61 00  T.&.h.u.m.b.n.a.
bc694a3c  69 00 6c 00 73 00 00 00-55 48 5f 54 41 49 4c 00  i.l.s...UH_TAIL.


http://www.kler.cn/a/558077.html

相关文章:

  • 蓝桥杯拔河问题(前缀和与差分,multiset,区间冲突)
  • 基于Transformer的语音障碍分析方法
  • MAC快速本地部署Deepseek (win也可以)
  • 工业机器视觉的“眼睛”:如何利用镜头获取精准图像
  • [含文档+PPT+源码等]精品大数据项目-Django基于机器学习实现的市区游客满意度可视化分析系统
  • 【论文阅读】SAM-CP:将SAM与组合提示结合起来的多功能分割
  • Uniapp 设计思路全分享
  • DeepSeek R1/V3满血版——在线体验与API调用
  • Error [ERR_REQUIRE_ESM]: require() of ES Module
  • MySQL的Union和OR查询
  • Vite 和 Webpack 的区别和选择
  • 靶场之路-Kioptix Level-1 mod_ssl 缓冲区溢出漏洞
  • CDefFolderMenu_MergeMenu函数分析之添加了分割线和属性菜单项两项
  • 《网络安全入门实战手册》
  • 星途汽车掉队?2024销量增速回落,“星纪元”序列后劲不足
  • yum安装时使用指定的nvidia-docker.repo
  • 算法与数据结构(环形链表)
  • Redis数据库面试——数据结构类型知识
  • 市场趋势分析与交易策略优化
  • 网络安全高级软件编程技术