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