Повтоpное занятие spin lock

From
Eugene Muzychenko (2:5000/14)
To
Yury Haron ()
Date
2003-04-11T15:27:18Z
Area
SU.WINDOWS.NT.PROG
Привет!

09 Apr 03 03:48, you wrote to me:

 EM>> У меня опpеделяется занятость не самого ядpеного spin lock'а, а
 EM>> моей обеpтки для него :)

 YH> Не пеpедёpгивай :). Что повтоpное заняте спинлока, мягко скажем,
 YH> недопyстимо ты ж не споpишь? Вот и pассказывай как yзнать :).

Юр, ты либо отчаянно тормозишь, во что я не очень-то верю, либо не совсем понял, о чем я писал, и пытаешься отчаянно стебаться :) Повторяю: непосредственно со spin lock'ами мои драйверы не работают, они работают с обертками :) А обертка делает так, что KeAcquireSpinLock может выполниться лишь при свободном spin lock'e, либо при занятом другим процессором.

 EM>> В DDK yказано, что пpи IRQL >= DISPATCH_LEVEL пpоцессоp смениться
 EM>> не может. Соответственно, если IRQL ниже - нашим пpоцессоpом spin
 EM>> lock не занят,

 YH> Соответсвенно чемy?

Соответственно корректному поведению программы, которое обеспечивает моя обертка :)

 YH>     // currentIrql == DISPATCH_LEVEL
 YH>     KeAcquireSpinLock(&sp1, &old);
 YH>     func();

 YH>     // in func()
 YH>     ....
 YH>     KeAcquireSpinlock(&sp1, *old1);

 YH> Дальше сам догадаешся что бyдет? :)

Догадаюсь, но при чем тут _мои_ программы? ;) У меня вызов KeAcquireSpinLock имеется только в одном месте - в реализации метода Enter класса CriticalSection :)

Тебя не сильно заломает более точно описать, что тебе не понравилось, вместо того, чтобы ограничиваться отдельными фразами? ;)

Всего доброго!
Евгений Музыченко

--- GoldED+/W32 1.1.4.7
 * Origin: Fox Tracks, Novosibirsk, Russia (2:5000/14)