Получение данных из реестра

Чтобы получить данные из реестра, приложение обычно перечисляет вложенные ключи ключа, пока не будет найден определенный, а затем извлекает данные из значения или значений, связанных с ним. Приложение может вызывать функцию RegEnumKeyEx для перечисления вложенных ключей заданного ключа.

Чтобы получить подробные данные о конкретном подключе, приложение может вызвать функцию RegQueryInfoKey. Функция RegGetKeySecurity извлекает копию дескриптора безопасности, защищающего ключ.

Приложение может использовать функцию RegEnumValue для перечисления значений заданного ключа и функцию RegQueryValueEx для получения определенного значения ключа. Приложение обычно вызывает RegEnumValue, чтобы определить имена значений, а затем RegQueryValueEx, чтобы получить данные для имен.

Функция RegQueryMultipleValues извлекает тип и данные для списка имен значений, связанных с открытым разделом реестра. Эта функция полезна для динамических поставщиков ключей, так как обеспечивает согласованность данных путем извлечения нескольких значений в атомарной операции.

Так как другие приложения могут изменять данные в значении реестра между временем, когда приложение может считывать значение и использовать его, возможно, потребуется убедиться, что приложение имеет последние данные. Функцию RegNotifyChangeKeyValue можно использовать для уведомления вызывающего потока при изменении атрибутов или содержимого раздела реестра или удаления ключа. Функция сигнализирует объект события для уведомления вызывающего. Если поток, который вызывает RegNotifyChangeKeyValue, завершается, событие сигнализируется, и мониторинг раздела реестра останавливается.

Вы можете контролировать или указывать, какие изменения следует сообщать с помощью фильтра уведомления или флага. Как правило, изменения передаются сигналом о событии, указанном в функции. Обратите внимание, что функция RegNotifyChangeKeyValue не работает с удаленными дескрипторами.

Дополнительные сведения о мониторинге операций реестра см. в разделереестра.