什么可能导致ResetEvent API失败?

时间:2011-03-10 20:31:23

标签: c++ winapi

我正在编写VC ++应用程序。仅仅为了争论,可能导致ResetEvent API失败的原因是什么? Microsoft文档对此不明确。感谢。

2 个答案:

答案 0 :(得分:3)

最常见的无效句柄会导致失败。反过来,无效句柄可能来自:

  1. 句柄被另一个进程或线程过早关闭
  2. 将gobbledy-gook传递给ResetEvent()
  3. 将句柄传递给不是偶数
  4. 的句子

    通过调用DuplicateHandle()来创建句柄的副本,通常可以避免使用数字1。

    GetLastError()通常会告诉您问题到底是什么,或者至少指出了方向。

答案 1 :(得分:2)

如果无法访问Windows的来源,我们只能猜测。这是我对可能出错的猜测:

  • 句柄不是事件对象的有效句柄。
  • 句柄没有必要的访问权限。该文档指出句柄必须具有EVENT_MODIFY_STATE访问权限。
  • 操作系统内存不足或出现其他一些严重故障。

阅读WINE源显示没有其他明确的失败模式。