レジストリ キーのオブジェクト
PortCls システム ドライバーは、ミニポート ドライバーの利点のために IRegistryKey インターフェイスを実装します。 IRegistryKey オブジェクトはレジストリ キーを表します。 ミニポート ドライバーは、レジストリ キー オブジェクトを使用して次のことを行います:
レジストリキーの作成と削除
レジストリキーを列挙
レジストリ キーのクエリと設定
指定されたキーの下にあるレジストリ エントリに関する情報をレジストリ キー オブジェクトにクエリする場合、クエリは 3 つの形式のいずれかで情報を出力でき、それぞれが異なるキー クエリ構造を使用します。 次の表は、クエリによって 3 つのキークエリ構造のどれが出力されるかを示す KEY_INFORMATION_CLASS 列挙値を示しています。
KEY_INFORMATION_CLASS 値 | キークエリ構造 |
---|---|
KeyBasicInformation |
|
KeyFullInformation |
|
KeyNodeInformation |
既存のレジストリ キーを開くか、新しいレジストリ キーを作成するために、アダプター ドライバーは PcNewRegistryKey 関数を呼び出すことができ、ミニポート ドライバーはポート ドライバーの IPort::NewRegistryKey 方式を呼び出すことができます。 2 つの呼び出しは似ていますが、PcNewRegistryKey 関数は DeviceObject と SubDevice という 2 つの追加パラメータが必要である点が異なります。 詳細情報は、PcNewRegistryKeyを参照してください。
ミニポート ドライバーが新しい IRegistryKey オブジェクトを作成すると、オブジェクトは既存のサブキーを開くか、存在しない場合は新しいレジストリ サブキーを作成します。 どちらの場合も、レジストリ キー オブジェクトにはキーのハンドルが格納されます。 その後オブジェクトが解放され、参照カウントが 0 に減分されると、オブジェクトはキーへのハンドルを自動的に閉じます。
IRegistryKey インターフェイスは次の方式をサポートしています:
IRegistryKey::EnumerateValueKey