Код: (C++)
NTSTATUS DispatchControl(PDEVICE_OBJECT fdo, PIRP Irp)
{
PAGED_CODE();
...
KeAcquireSpinLock(&pdx->eventlock, &oldirql);
...
}
Но в описании ф-ции KeAcquireSpinLock:{
PAGED_CODE();
...
KeAcquireSpinLock(&pdx->eventlock, &oldirql);
...
}
The code within a critical region guarded by an spin lock must neither be pageable nor make any references to pageable data.
Вроде бы можно предположить, что часть расположенного после захвата спин-блокировки кода может отсутствовать в памяти. И т. к. IRQL после захвата будет слишком высок для страничного сбоя, то будет просто сбой?
Вероятность этого конечно очень мала, но всё же...
(Скорее всего я что-то упускаю из вида, и хотелось бы понять что именно...)