a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 51|回复: 0

[C语言] 向Ring3层发消息

[复制链接]
发表于 2012-7-31 21:48:08 | 显示全部楼层 |阅读模式
  问题:
! j, {# [" P* P7 d) q+ o; @  使用vtoolsd写vxd时,在vxd中如何使用postmessage向ring3层的应用程序发送消息?
& P* t- D2 @; k% `: h  解答:
$ G9 g) Y( G, U  no1:
; h/ |& D2 y+ j6 A6 X1 J% B  g  哈哈,这问题太简单了:  b% `9 J8 `2 B. F" Z
  shell_postmessage(g_hwnd, (spm_um_donotwaitforcrit16 and g_umousemsg),# j* q& Y6 G2 C
  (word)state,(dword)(wdeltay16 and wdeltax),null,0);
5 A1 r; A2 k, ^) m6 \4 @2 v  g_hwnd为ring 3环的窗口句柄,g_umousemsg为消息值(如果消息是自定义的话,要在ring 3的程序中给登记上)。state是wparam,为16位,,(dword)(wdeltay16 and wdeltax)为32位的lparam,至于null,0就看看帮助啦,一般用不上。 这一句是向ring 3程序发送鼠标数据。" N/ J% K- W+ j
  问题:
  w( d4 m* x$ h2 ]* \/ T" N% ~  应用程序的hwnd如何传给vxd? 而且,用mfc时得到的是hwnd类型的m_hwnd,它是一个结构而非16bit的窗口句柄。
5 Y! \9 Q/ K9 h, e9 }  解答:
" F3 N; C  V& k5 H  hwnd可以用deviceiocontrol函数来传递到vxd中,+ V% k+ @, X* s) o
  ring 3程序:
+ |. B9 M9 r; m" k7 J- X2 t  hwnd hwnd = ::afxmainwnd()-getsafehwnd();
! z7 Z3 m0 r8 ?- v  deviceiocontrol(m_hvxd,vxd_set_hwnd,&hwnd,sizeof(handle),null,0,null,null,0);
9 ~' [5 ?6 o. h+ h! `8 C2 L! @* i# `  vxd中:
* O' ~4 r5 a! h! o$ W, {  dword xdevice::onw32deviceiocontrol(pioctlparams pdiocparams)8 k+ y8 a, Q# V5 |" ]
  {+ |9 [: ]6 V0 K+ r1 s% I+ U
  switch(pdioparams-dioc_ioctlcode)7 A# f6 O- q  Y) k- o  q2 g
  {
2 B& `% V" i3 X# Y  [  case vxd_set_hwnd:; [; @: g/ C# H3 U1 Q8 z3 m2 w1 d
  memcpy(&g_hwnd,pdiocparams-dioc_inbuf,sizeof(handle));% c. n( v+ C, X" q+ R
  break; ...: x% |9 |$ I7 m
  }' Y: H- `- N/ E2 |5 s, v
  }
+ u; Z+ V, }3 D% {" J) N; ~5 X, G; u  jadesun ps:
# W: N5 ^. l& ^1 z+ k  (ring 0 与 ring3)ring 0组件是受到处理器结构保护的,即在ring 0中的软件受到硬件(芯片)保护,以防止互写。ring 0 组件执行所有特权操作,如与硬件直接通可系统中的任何资源。
! m8 _/ E; }! P9 p& K4 w# M  如果在ring 0中的软件出现问题,就会导致整个系统崩溃。(ring 3) 当一个软件组件在ring 3时,就不会受到处理器的保护。但可受到操作系统和虚拟机管理器的保护。ring 3中的进程不具有与ring 0同样的权限,例如,ring 3中的进程不能直接写硬件,这些进程必须与ring 0中的进程通然后由ring 0中的进程对硬件进行操作。, \/ L  U& y$ I. |# B+ ?! h* I5 R( ^
  这种在权限上的限制意味着如果一个软件在ring 3上出现失败,它也不会破坏整个系统。即在ring 3上的软件组件出现问题不会影响到系统正在运行的其它软件。正是这个原因,所有的应用程序都放在ring 3上运行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-4 19:35 , Processed in 0.556105 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表