Freigeben über


Registrierungsschlüsselobjekte

Der PortCls-Systemtreiber implementiert die IRegistryKey-Schnittstelle zugunsten von Miniporttreibern. Ein IRegistryKey-Objekt stellt einen Registrierungsschlüssel dar. Miniporttreiber verwenden Registrierungsschlüsselobjekte, um die folgenden Schritte auszuführen:

  • Erstellen und Löschen von Registrierungsschlüsseln

  • Auflisten 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 jedes eine andere Schlüssel-Abfrage-Struktur verwendet. Die folgende Tabelle zeigt die KEY_INFORMATION_CLASS Enumerationswerte, die angeben, welche der drei Schlüsselabfragestrukturen von der Abfrage ausgegeben wird.

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 dem Unterschied, 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, sofern keins vorhanden ist. In beiden Fällen speichert das Registrierungsschlüsselobjekt das Handle für den Schlüssel. Wenn dieses Objekt später freigegeben wird und die Verweisanzahl auf null verringert wird, schließt das Objekt automatisch sein Handle mit dem Schlüssel.

Die IRegistryKey-Schnittstelle unterstützt die folgenden Methoden:

IRegistryKey::D eleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey