funny
驱动小牛
驱动小牛
  • 注册日期2003-04-17
  • 最后登录2021-07-30
  • 粉丝0
  • 关注0
  • 积分1012分
  • 威望178点
  • 贡献值0点
  • 好评度123点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1579回复:5

vxd内和实现定时器回调函数和hook服务函数的资源竞争?

楼主#
更多 发布于:2008-07-16 11:02
vxd内和实现定时器回调函数和hook服务函数的资源互斥?
我是用Semphore (1)怎么在定时申请等待此资源时,导致正在使用此此资源的hook服务函数中止。为什么?,如何能实现此功能??请牛人指点! 多谢!
驱动现在,成就未来
stevensn
驱动牛犊
驱动牛犊
  • 注册日期2003-01-14
  • 最后登录2010-12-11
  • 粉丝1
  • 关注0
  • 积分30分
  • 威望58点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2008-07-16 14:22
现在还有人搞在vxd? win98/me?连微软都不玩了,你还玩?佩服佩服
日出松山坳,晨钟惊飞鸟
ysy
ysy
驱动中牛
驱动中牛
  • 注册日期2002-02-18
  • 最后登录2008-08-25
  • 粉丝0
  • 关注0
  • 积分201分
  • 威望29点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2008-07-18 13:10
史前世纪
funny
驱动小牛
驱动小牛
  • 注册日期2003-04-17
  • 最后登录2021-07-30
  • 粉丝0
  • 关注0
  • 积分1012分
  • 威望178点
  • 贡献值0点
  • 好评度123点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2008-07-21 18:13
让牛兄见笑了,没办法啊,领导逼着做的,混口饭吃。请牛人指点一二。
是不是不能重入??
驱动现在,成就未来
znsoft
管理员
管理员
  • 注册日期2001-03-23
  • 最后登录2023-10-25
  • 粉丝300
  • 关注6
  • 积分910分
  • 威望14796点
  • 贡献值7点
  • 好评度2410点
  • 原创分5分
  • 专家分100分
  • 社区居民
  • 最爱沙发
  • 社区明星
地下室#
发布于:2008-07-23 10:29
我一看到这个标题,第一个反映就是看一下帖子时间,是不是有人把老帖翻上来了...
http://www.zndev.com 免费源码交换网 ----------------------------- 软件创造价值,驱动提供力量! 淡泊以明志,宁静以致远。 ---------------------------------- 勤用搜索,多查资料,先搜再问。
funny
驱动小牛
驱动小牛
  • 注册日期2003-04-17
  • 最后登录2021-07-30
  • 粉丝0
  • 关注0
  • 积分1012分
  • 威望178点
  • 贡献值0点
  • 好评度123点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2008-07-23 15:59
实现定时器回调函数
#ifdef WINNT40 //win95
VOID XTimeOut::handler(VMHANDLE hVM, THREADHANDLE hThread,
        PCLIENT_STRUCT pRegs, DWORD dwLagTime)
#else //win31
VOID XTimeOut::handler(VMHANDLE hVM, PVOID reserved,
             PCLIENT_STRUCT pRegs, DWORD dwLagTime)
#endif
{
    dprintf("XTimout enter--------------------");
    mutexTarget.wait( BLOCK_SVC_INTS );

     此处串口通讯?????????
    this->Set();
    
    mutexTarget.signal();
    dprintf("XTimout leave---------------------");
}

全局
VSemaphore mutexTarget(1);

//系统初始化
OnDeviceInit(VMHANDLE hSysVM, PCHAR pszCmdTail)
{
         m_pTimeOut = new XTimeOut(60*1000);

        此处 打开串口资源
}

void       Myhook(        )
{
           dprintf("TransferData  enter()........");
           mutexTarget.wait( BLOCK_SVC_INTS );
          
            此处串口通讯?????????
      
            mutexTarget.signal();
            dprintf("TransferData  leave()........");

}

请问:为何当MyHook占用资源k时,而定时器申请资源时,系统会卡死机,帮帮忙给个解释是什么原因导致的?
驱动现在,成就未来
游客

返回顶部