次の方法で共有


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

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

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

  • レジストリキーを列挙

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

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

KEY_INFORMATION_CLASS 値 キークエリ構造

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