Freigeben über


Registrierungsschlüsselobjekte

Der PortCls-Systemtreiber implementiert die IRegistryKey-Schnittstelle für den Vorteil von Miniporttreibern. Ein IRegistryKey -Objekt stellt einen Registrierungsschlüssel dar. Miniport-Treiber verwenden Registrierungsschlüsselobjekte, um Folgendes auszuführen:

  • Erstellen und Löschen von Registrierungsschlüsseln

  • Aufzählen von Registrierungsschlüsseln

  • Abfragen und Festlegen von Registrierungsschlüsseln

Beim Abfragen eines Registrierungsschlüsselobjekts nach Informationen zu einem Registrierungseintrag unter dem angegebenen Schlüssel kann die Abfrage die Informationen in einem von drei Formaten ausgeben, von denen jede eine andere Schlüsselabfragestruktur verwendet. In der folgenden Tabelle sind die KEY_INFORMATION_CLASS Enumerationswerte aufgeführt, die angeben, welche der drei Schlüsselabfragestrukturen von der Abfrage ausgegeben werden.

KEY_INFORMATION_CLASS Wert Key-Query Struktur

KeyBasicInformation-

KEY_BASIC_INFORMATION

KeyFullInformation-

KEY_FULL_INFORMATION

KeyNodeInformation-

KEY_NODE_INFORMATION

Um einen vorhandenen Registrierungsschlüssel zu öffnen oder einen neuen Registrierungsschlüssel zu erstellen, kann ein Adaptertreiber die PcNewRegistryKey-Funktion aufrufen, und ein Miniporttreiber kann die IPort::NewRegistryKey-Methode des Porttreibers aufrufen. Die beiden Aufrufe sind ähnlich, mit der Ausnahme, dass die PcNewRegistryKey-Funktion zwei zusätzliche Parameter erfordert: DeviceObject und SubDevice. Weitere Informationen finden Sie unter PcNewRegistryKey.

Wenn ein Miniporttreiber ein neues IRegistryKey-Objekt erstellt, öffnet das Objekt entweder einen vorhandenen Unterschlüssel oder erstellt einen neuen Registrierungsunterschlüssel, falls keine vorhanden ist. In beiden Fällen speichert das Registrierungsschlüsselobjekt das Handle für den Schlüssel. Wenn das Objekt später freigegeben wird und die Referenzanzahl auf Null reduziert wird, schließt das Objekt automatisch den Handle an den Schlüssel.

Die IRegistryKey-Schnittstelle unterstützt die folgenden Methoden:

IRegistryKey::DeleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey