ObRegisterCallbacks доступный начиная с Vista SP1, позволяет «зарегистрировать список подпрограмм обратного вызова для операций дескриптора потока и процесса».
Например, вы регистрируете PsSetCreateProcessNotifyRoutine обратный вызов. Вы можете отключить его с помощью программного обеспечения, такого как PC Hunter
, потому что Windows x86 не имеет защиты от исправлений на уровне ядра. И драйвер не знал, что он больше не вызывается для этого обратного вызова.
Вопросы:
- Как драйвер может проверить, что его обратный вызов, зарегистрированный с помощью ObRegisterCallbacks, все еще действителен?
- Является ли ошибка
STATUS_FLT_INSTANCE_ALTITUDE_COLLISION
во время второго вызова ObRegisterCallbacks правильным способом проверить статус обратного вызова? - Есть ли способ получить список всех зарегистрированных обратных вызовов с помощью ObRegisterCallbacks?