Здравствуйте, Freid, Вы писали:
ГМ>>1. Проверьте, что KeSetEvent() не вызывается на IRQL > DISPATCH_LEVEL.
ГМ>>2. Случайно третий параметр WAIT при вызове функции KeSetEvent() не равен TRUE?
F>Поставил море DbgPrint-ов. IRQL = PASSIVE_LEVEL F>Третий параметр — FALSE. F>И абсолютно маловероятно, что KeSetEvent() поднимает уровень IRQL внутри себя... F>Кроме того, 9 из 10 вызовов отрабатывают нормально. F>Скажите, не существует ли каких нибудь временных ограничений на выполнение KeSetEvent?
Раз с IRQL у вас все нормально — то могут буть такие варианты.
1. PRKEVENT который вы передаете не валиден.
2. Надо видеть как вы получаете PRKEVENT. Кому сигналете, и в kernel или user mode находится ожидающий поток.
3. Так же — на каком уровне IRQL осуществляется ожидание, если это kernel -mode.
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.