Abrufen von Daten aus der Registrierung
Zum Abrufen von Daten aus der Registrierung listet eine Anwendung in der Regel die Unterschlüssel eines Schlüssels auf, bis sie einen bestimmten Schlüssel findet, und ruft dann Daten aus dem zugeordneten Wert oder den zugehörigen Werten ab. Eine Anwendung kann die RegEnumKeyEx-Funktion aufrufen, um die Unterschlüssel eines bestimmten Schlüssels aufzählen.
Um detaillierte Daten zu einem bestimmten Unterschlüssel abzurufen, kann eine Anwendung die RegQueryInfoKey-Funktion aufrufen. Die RegGetKeySecurity-Funktion ruft eine Kopie des Sicherheitsdeskriptors ab, der einen Schlüssel schützt.
Eine Anwendung kann die RegEnumValue-Funktion verwenden, um die Werte für einen bestimmten Schlüssel aufzählen, und die RegQueryValueEx-Funktion, um einen bestimmten Wert für einen Schlüssel abzurufen. Eine Anwendung ruft in der Regel RegEnumValue auf, um die Wertnamen zu bestimmen, und dann RegQueryValueEx, um die Daten für die Namen abzurufen.
Die RegQueryMultipleValues-Funktion ruft den Typ und die Daten für eine Liste von Wertnamen ab, die einem offenen Registrierungsschlüssel zugeordnet sind. Diese Funktion ist für dynamische Schlüsselanbieter nützlich, da sie die Konsistenz der Daten gewährleistet, indem mehrere Werte in einem atomaren Vorgang abgerufen werden.
Da andere Anwendungen die Daten in einem Registrierungswert zwischen dem Zeitpunkt ändern können, zu dem Ihre Anwendung einen Wert lesen und verwenden kann, müssen Sie möglicherweise sicherstellen, dass Ihre Anwendung über die neuesten Daten verfügt. Sie können die RegNotifyChangeKeyValue-Funktion verwenden, um den aufrufenden Thread zu benachrichtigen, wenn Änderungen an den Attributen oder Inhalten eines Registrierungsschlüssels vorgenommen oder der Schlüssel gelöscht wird. Die Funktion signalisiert einem Ereignisobjekt, den Aufrufer zu benachrichtigen. Wenn der Thread, der RegNotifyChangeKeyValue aufruft, beendet wird, wird das Ereignis signalisiert, und die Überwachung des Registrierungsschlüssels wird beendet.
Sie können steuern oder angeben, welche Änderungen mithilfe eines Benachrichtigungsfilters oder -flags gemeldet werden sollen. In der Regel werden Änderungen gemeldet, indem ein Ereignis signalisiert wird, das Sie für die Funktion angeben. Beachten Sie, dass die RegNotifyChangeKeyValue-Funktion nicht mit Remotehandles funktioniert.
Ausführlichere Informationen zum Überwachen von Registrierungsvorgängen finden Sie unter Registrierung.