Что может вызвать сбой API ResetEvent? - PullRequest
1 голос
/ 10 марта 2011

Я пишу приложение VC ++. Просто ради аргумента, что может привести к сбою API ResetEvent? Документация Microsoft не ясна по этому вопросу. Благодаря.

Ответы [ 2 ]

3 голосов
/ 10 марта 2011

Чаще всего неверный дескриптор приводит к сбою.Неверный дескриптор, в свою очередь, может быть результатом:

  1. дескриптор, закрытый другим процессом или потоком преждевременно
  2. , передающий gobbledy-gook в ResetEvent ()
  3. Передача дескриптора вещи, которая не является четным

Номер 1, часто можно избежать путем создания дубликата дескриптора путем вызова DuplicateHandle () .

GetLastError () обычно скажет вам точно, в чем проблема, или, по крайней мере, укажет вам направление.

2 голосов
/ 10 марта 2011

Без доступа к источнику Windows мы можем только догадываться.Вот мое предположение о том, что может пойти не так:

  • Дескриптор не является допустимым дескриптором объекта события.
  • Дескриптор не имеет необходимых прав доступа.В документации говорится, что дескриптор должен иметь право доступа EVENT_MODIFY_STATE.
  • ОС не хватает памяти или имеет какой-то другой критический сбой.

Чтение источника WINE не обнаруживает других явных сбоеврежимы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...