阅读:1667回复:5
vxd内和实现定时器回调函数和hook服务函数的资源竞争?
vxd内和实现定时器回调函数和hook服务函数的资源互斥?
我是用Semphore (1)怎么在定时申请等待此资源时,导致正在使用此此资源的hook服务函数中止。为什么?,如何能实现此功能??请牛人指点! 多谢! |
|
|
沙发#
发布于:2008-07-16 14:22
现在还有人搞在vxd? win98/me?连微软都不玩了,你还玩?佩服佩服
|
|
|
板凳#
发布于:2008-07-18 13:10
史前世纪
|
|
地板#
发布于:2008-07-21 18:13
让牛兄见笑了,没办法啊,领导逼着做的,混口饭吃。请牛人指点一二。
是不是不能重入?? |
|
|
地下室#
发布于:2008-07-23 10:29
我一看到这个标题,第一个反映就是看一下帖子时间,是不是有人把老帖翻上来了...
|
|
|
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时,而定时器申请资源时,系统会卡死机,帮帮忙给个解释是什么原因导致的? |
|
|