yangjun
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2001-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1610回复:9

如何与应用程序同步通讯?

楼主#
更多 发布于:2001-12-10 15:52
我作一个文件拦截的程序,我想在拦截到某个文件时,Win32应用程序等待用户输入密码,如果密码正确则允许访问该文件,如果不对则不允许访问。这其中就要碰到一个这样的问题,
case IFS_OPEN:
  发信息给Win32应用程序(filename, &result);
  if (result)
     return ...;
  else
     return ...;

但是我找不到这样一个可以同步通讯的function,请各位大虾帮帮我!

最新喜欢:

flyfoxflyfox
yangjun
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2001-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2001-12-11 10:51
帮帮我吧~!各位大虾~!
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2001-12-11 12:11

你这个机制可以实现, 但是如果要求在三层调对话框的话,就很危险了。
这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
yangjun
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2001-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2001-12-11 12:23
能告诉我如何实现吗??谢谢!!!
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2001-12-11 16:18
你自己维护一个全局链表。 requestlist
hookproc
{
........
case IFS_OPEN:
create    guiSempathore
add your request data (szFilename, szProcessName  guiSempathore) in requestlist
Wait    guiSempathore
get  result from requestlist
destory guiSempathore
if (result)
return ...;
else
return ...;
break;
......
}
onwin32deveicecontrol
{
   case GET_GUI_REQUEST:
   if requestlist not empty
    {
         get a node from requestlist
         put the data of node to outbuffer              
    }
   break;
   case ANSWER_GUI_REQUEST;
         got the dealed node in inbuffer
         put data note back to requestlist
         Signal sampathore of this node.
   break;
}



Ring 3 App
//* please use a loop, and don\'t use windows::Ontimer
while(1)
{
       if( deveiceIoControl(GET_GUI_REQUEST ,&data))
       {
            result=askuser(data)
            data.result=result          
            deveiceIoControl(ANSWER_GUI_REQUEST ,&data)      
       }

}

我的伪码中没有 requestlist 的同步处理, 你要加上。

当你实现了这个东东的时候,你就会逐渐发现我说的不安全的原因了。




这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
yangjun
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2001-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2001-12-11 16:45
是,这我知道,但是怎么
Wait guiSempathore? 我就是这个搞不懂。
yangjun
驱动牛犊
驱动牛犊
  • 注册日期2001-11-25
  • 最后登录2001-12-12
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2001-12-11 19:57
谢谢~!我知道了!
iamaf~1
驱动小牛
驱动小牛
  • 注册日期2001-09-23
  • 最后登录2003-06-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2001-12-12 11:57


 :D :D :D :D


good luck

这个论坛不支持长用户名,害得我iamafraid 只好叫iamaf~1了...
zdhe
驱动太牛
驱动太牛
  • 注册日期2001-12-26
  • 最后登录2018-06-02
  • 粉丝0
  • 关注0
  • 积分72362分
  • 威望362260点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
8楼#
发布于:2001-12-30 23:36
如果你是在win9x,me下实现的话。
iamaf~1老兄的那个方法不行,我使用6种方法试图在9x上解决这个问题花了2个月,全部失败。

具体不行的原因,参照一下
http://www.pcausa.com/resources/r3hang.txt

十分经典的分析。
因为文章比较老,我曾寄托于98,Me上有些改善。我特意问了Walter Oney,他给的回答是9x,Me下也不可能。

我曾请教过一位参与过NT的PowerPC移植的老兄,他对我说,98,Me上的IOS是DOS构造,不支持无限重入。

如果你在win2000,nt4 sp4上实现的话,没有问题。我和我的兄弟作成过。没有任何不安定因素。

ring0上的实现放弃为好。
LitteSW
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2010-08-16
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-01-02 23:37
To yangjun:

你的头像怎么跟我的一样?可有盗版的嫌疑呦!!

哈哈!!

穿梭于都市高楼之间,总是孜孜不倦地追寻着自由,蓦然回首,去发现已陷入深深的枷锁之中
游客

返回顶部