Re: Странная ошибка с кодом ATTEMPTED_SWITCH_FROM_DPC
От: Аноним  
Дата: 07.12.07 15:30
Оценка:
А>

А>    ntStatus = IoCallDriver(pHookExt->pDevTarget, pNewIrp);
А>    if(ntStatus == STATUS_PENDING)
А>        KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL); // вот здесь происходит ошибка

А>


А>Что это может быть?

это плохо прочитанная документация и плохое понимание работы операционки, документацию процитирую, а над остальным предлагаю подумать самому.

Callers of KeWaitForSingleObject must be running at IRQL <= DISPATCH_LEVEL. Usually, the caller must be running at IRQL = PASSIVE_LEVEL and in a nonarbitrary thread context. A call while running at IRQL = DISPATCH_LEVEL is valid if and only if the caller specifies a Timeout of zero. That is, a driver must not wait for a nonzero interval at IRQL = DISPATCH_LEVEL.


на заметку — NULL это не 'Timeout of zero'
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.