次の方法で共有


レジストリ キー オブジェクト

PortCls システム ドライバーは、ミニポート ドライバーの利点のために IRegistryKey インターフェイスを実装します。 IRegistryKey オブジェクトはレジストリ キーを表します。 ミニポート ドライバーは、レジストリ キー オブジェクトを使用して、次の操作を行います。

  • レジストリ キーの作成と削除

  • レジストリ キーを列挙する

  • レジストリ キーのクエリと設定

レジストリ キー オブジェクトに対して、指定したキーの下のレジストリ エントリに関する情報を照会する場合、クエリは 3 つの形式のいずれかで情報を出力できます。各形式では、それぞれ異なるキー クエリ構造が使用されます。 次の表に、クエリによって出力される 3 つのキー クエリ構造のうちどれを示す KEY_INFORMATION_CLASS 列挙値を示します。

KEY_INFORMATION_CLASS値 Key-Query 構造体

KeyBasicInformation

KEY_BASIC_INFORMATION

KeyFullInformation

KEY_FULL_INFORMATION

KeyNodeInformation

KEY_NODE_INFORMATION

既存のレジストリ キーを開くか、新しいレジストリ キーを作成するには、アダプター ドライバー は PcNewRegistryKey 関数を呼び出すことができます。ミニポート ドライバーは、ポート ドライバーの IPort::NewRegistryKey メソッドを呼び出すことができます。 2 つの呼び出しは似ていますが、 PcNewRegistryKey 関数には DeviceObjectSubDevice という 2 つの追加パラメーターが必要です。 詳細については、「 PcNewRegistryKey」を参照してください。

ミニポート ドライバーが新しい IRegistryKey オブジェクトを作成すると、オブジェクトは既存のサブキーを開くか、存在しない場合は新しいレジストリ サブキーを作成します。 いずれの場合も、レジストリ キー オブジェクトはキーへのハンドルを格納します。 そのオブジェクトが後で解放され、その参照カウントが 0 にデクリメントされると、オブジェクトはキーへのハンドルを自動的に閉じます。

IRegistryKey インターフェイスでは、次のメソッドがサポートされています。

IRegistryKey::DeleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey