strongsailor
驱动牛犊
驱动牛犊
  • 注册日期2007-07-16
  • 最后登录2008-02-20
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
阅读:1283回复:2

用DDK开发的驱动在32位vista下的进程间通信问题

楼主#
更多 发布于:2007-07-16 16:44
    最近在工作中遇到一个进程间通信的问题:在vista环境下,一个用DDK开发的虚拟打印的驱动程序,当使用PostThreadMessage()在两个进程间通信的时候,消息发送失败,总是返回1444错误,经查应该是“无效的线程标识”,即不识别的线程ID。用事件通知方式的时候,在OpenEvent()时总是返回失败,提示找不到该事件。但是用MFC写的测试程序中,无论是用PostThreadMessage()还是OpenEvent(),都可以在vista下的两个进程之间正常通信,因此总感觉应该是DDK在vista下的应用有问题。
    这段程序在XP、2000等操作系统上运行正常,只有在vista上不能正常通信。不知道是vista都有了哪些安全限制上的提高而导致的。
    找了很久资料,也没看到vista上DDK的相关开发资料。
 
    真心的希望各位高人能给予指点、赐教,万分感谢!!!
strongsailor
驱动牛犊
驱动牛犊
  • 注册日期2007-07-16
  • 最后登录2008-02-20
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-07-17 11:54
突然想起来,是不是跟DDK的版本有关系啊?汗。。。
我用的是win2kddk,这个版本的DDK编译出来的驱动在vista下运行都会导致什么问题啊?
strongsailor
驱动牛犊
驱动牛犊
  • 注册日期2007-07-16
  • 最后登录2008-02-20
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望6点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-07-24 11:05
还是没人能解答么?
也许是我的问题描述得不清楚吧?
不过现在看来不是编译环境的问题了。用vista WDK编译后问题依旧。
经过测试,该问题只在spoolsv进程下调用时出现,而在其它进程中调用是运行正常的。
单独写的一个测试程序用来PostThreeadMessage和OpenEvent,该程序用命令行方式传参数进行调用,结果其它进程调用都没问题,惟独用spoolsv进程调用时无效。
spoolsv进程很容易被木马利用,所以我想是不是vista在提高安全的时候,对spoolsv进程进行了什么限制啊?
游客

返回顶部