Öffnen eines Handles für ein Registry-Key-Objekt
Führen Sie den folgenden zweistufigen Prozess aus, um ein Handle für ein Registrierungsschlüsselobjekt zu öffnen:
Erstellen Sie eine OBJECT_ATTRIBUTES-Struktur , und initialisieren Sie sie, indem Sie InitializeObjectAttributes aufrufen. Sie geben den Namen des zu bearbeitenden Schlüssels als ObjectName-Parameter für InitializeObjectAttributes an.
Wenn Sie NULL als RootDirectory-Parameter an InitializeObjectAttributes übergeben, muss ObjectName der vollständige Pfad des Registrierungsschlüssels sein, beginnend mit \Registry. Andernfalls muss RootDirectory ein geöffnetes Handle für einen Schlüssel sein, und ObjectName ist der Pfad, der relativ zu diesem Schlüssel ist.
Öffnen Sie ein Handle für das Schlüsselobjekt, indem Sie ZwCreateKey oder ZwOpenKey aufrufen, und übergeben Sie die OBJECT_ATTRIBUTES Struktur an dieses. Wenn der Schlüssel noch nicht vorhanden ist, erstellt ZwCreateKey den Schlüssel, während ZwOpenKey STATUS_OBJECT_NAME_NOT_FOUND zurückgibt.
Sie übergeben einen DesiredAccess-Parameter an ZwCreateKey oder ZwOpenKey , der die von Ihnen angeforderten Zugriffsrechte enthält. Sie müssen die Zugriffsrechte angeben, die die Vom Treiber ausgeführten Vorgänge zulassen. In der folgenden Tabelle sind die Vorgänge aufgeführt, die Sie ausführen können, und die entsprechenden Zugriffsrechte für die Anforderung.
Vorgang | Erforderliches Zugriffsrecht |
---|---|
Rufen Sie einen Registrierungsschlüsselwert ab. |
KEY_QUERY_VALUE oder KEY_READ |
Legen Sie einen Registrierungsschlüsselwert fest. |
KEY_SET_VALUE oder KEY_WRITE |
Durchlaufen Sie alle Unterschlüssel eines Schlüssels. |
KEY_ENUMERATE_SUB_KEYS oder KEY_READ |
Erstellen Sie einen Unterschlüssel. |
KEY_CREATE_SUB_KEY oder KEY_WRITE |
Löscht einen Schlüssel. |
DELETE |
Weitere Informationen zu den verfügbaren Werten für den DesiredAccess-Parameter finden Sie unter ZwCreateKey.
Sie können auch IoOpenDeviceRegistryKey und IoOpenDeviceInterfaceRegistryKey aufrufen, um Handles für die Geräte- bzw. Geräteschnittstellenspezifischen Registrierungsschlüssel zu öffnen. Weitere Informationen finden Sie unter Plug & Play Registrierungsroutinen.
Hinweis Bei Aufrufen von ZwCreateKey, ZwOpenKey, IoOpenDeviceRegistryKey und IoOpenDeviceInterfaceRegistryKey entsprechen die generischen Zugriffsrechte GENERIC_READ und GENERIC_WRITE den schlüsselspezifischen Zugriffsrechten, KEY_READ bzw. KEY_WRITE, und können als Ersatz für diese schlüsselspezifischen Zugriffsrechte verwendet werden.