Udostępnij przez


Obiekty klucza rejestru

Sterownik systemowy PortCls implementuje interfejs IRegistryKey z korzyścią dla sterowników miniportu. Obiekt IRegistryKey reprezentuje klucz rejestru. Sterowniki Miniport używają obiektów kluczy rejestru do wykonania następujących czynności:

  • Tworzenie i usuwanie kluczy rejestru

  • Wyliczanie kluczy rejestru

  • Wykonywanie zapytań i ustawianie kluczy rejestru

Podczas wykonywania zapytań względem obiektu klucza rejestru w celu uzyskania informacji o wpisie rejestru w określonym kluczu zapytanie może wyświetlić informacje w jednym z trzech formatów, z których każda używa innej struktury zapytań kluczy. W poniższej tabeli przedstawiono wartości wyliczenia KEY_INFORMATION_CLASS wskazujące, które z trzech struktur zapytań kluczy są danymi wyjściowymi zapytania.

wartość KEY_INFORMATION_CLASS struktura Key-Query

KeyBasicInformation

KEY_BASIC_INFORMATION

KeyFullInformation

KEY_FULL_INFORMATION

KeyNodeInformation

KEY_NODE_INFORMATION

Aby otworzyć istniejący klucz rejestru lub utworzyć nowy klucz rejestru, sterownik karty może wywołać funkcję PcNewRegistryKey , a sterownik miniportu może wywołać metodę IPort::NewRegistryKey sterownika portu. Dwa wywołania są podobne, z tą różnicą, że funkcja PcNewRegistryKey wymaga dwóch dodatkowych parametrów: DeviceObject i SubDevice. Aby uzyskać więcej informacji, zobacz PcNewRegistryKey.

Gdy sterownik miniportu tworzy nowy obiekt IRegistryKey , obiekt otwiera istniejący podklucz lub tworzy nowy podklucz rejestru, jeśli żaden z nich nie istnieje. W obu przypadkach dojście do klucza jest przechowywane przez obiekt klucza rejestru. Gdy ten obiekt zostanie później zwolniony, a jego licznik referencji zmniejszy się do zera, obiekt automatycznie zamknie uchwyt do klucza.

Interfejs IRegistryKey obsługuje następujące metody:

IRegistryKey::DeleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey