Есть набор указателей на registry key objects. То есть они накапливаются со временем. Как потом проверить их на то, что объекты еще существует? Заранее благодарен
Достаточно добавить ссылку через ObReferenceObject() и удалить её, когда объект уже не нужен. В промежутке между этими двумя действиями объект будет гарантировано доступен.
Вопрос немножко не в том заключается. Я храню указатели на объекты, притом мне нужно в какой-то момент проверить, жив ли еще объект по указателю.
Ровно на этот вопрос я тебе и ответил. А вот если тебе нужно знать, не удалял ли кто ключ реестра в это время, то уже это совсем другой вопрос, и здесь тебе поможет только фильтрация активности реестра через CmRegisterCallback().
Как у каждого объекта у registry key object наверное должен быть свой каталог OBJECT_DIRECTORY в котором он расположен ? Там можно и поискать. Тогда попарно с указателями на объекты нужно хранить и указатели на каталог. А если и каталог могут удалить тогда в дополнение хранить указатель на родительский каталог... и так далее хранить указатели вплоть до каталога который не может быть удалён. Сколько времени займёт обход каталогов и их содержимого (приемлемо или нет) это уже другой вопрос. Чтобы быстрее был поиск можно ещё и хеш от имени вычислять.
Нет такого и не может быть у реестровых объектов, так же, как нет их и у файлов. Почему - подумайте сами.