UMDF ベースのドライバーでのレジストリの使用

UMDF ベースのドライバーでレジストリ値の読み取りや書き込みを行うには、プロパティ ストア オブジェクトのインターフェイスを使用します。

UMDF ベースのドライバーでは、4 種類のレジストリ キーにアクセスして、それらのキーのサブキーや値の作成、読み取り、および書き込みを行うことができます。UMDF ベースのドライバーで使用できるレジストリ キーの種類を以下に示します。

  • ハードウェア キー

    カーネル モード ドライバー スタックが、デバイスがシステムに接続されていることをプラグ アンド プレイ (PnP) マネージャーに通知すると、PnP マネージャーはそのデバイスのハードウェア キーを作成します。このキーは "デバイス キー" と呼ばれることもあります。**PnP マネージャーは、各デバイスの一意の識別情報をデバイスのハードウェア キーの下に格納します。デバイス キーの下には \Device Parameters サブキーがあります。

    UMDF ベースのドライバーでは、\Device Parameters サブキーの値への読み取り専用アクセスを取得できます。\Device Parameters サブキーの下にサブキーを作成することもできます (**\Device Parameters\**DriverServiceName など)。作成したサブキーでは、値の読み取りおよび書き込みを行ったり、デバイス固有の情報を格納したりできます。作成するサブキーの名前には、他のドライバーが作成するサブキーの名前と重複しないように、サービス名などの一意の名前を使用する必要があります。

    ドライバーでハードウェア キーにアクセスするには、IWDFDevice::RetrieveDevicePropertyStoreIWDFDeviceInitialize::RetrieveDevicePropertyStoreIWDFPropertyStoreFactory::RetrieveDevicePropertyStore のいずれかのメソッドを呼び出して、プロパティ ストアのインターフェイスを取得する必要があります。最初の 2 つの方が使い方が簡単ですが、IWDFPropertyStoreFactory::RetrieveDevicePropertyStore (UMDF Version 1.9 以降で使用可能) では、\Device Parameters\DriverServiceName\subkey などの追加のサブキーの値にもアクセスできます。

    ドライバーで \Device Parameters\WDF\Device Parameters\WUDF にアクセスすることはできません。

  • ソフトウェア キー

    ドライバーのソフトウェア キーは "ドライバー キー" と呼ばれることもあります。これは、レジストリに各ドライバーのソフトウェア キーが含まれるためです。**レジストリにはすべてのデバイス クラスの一覧が格納され、各ドライバーのソフトウェア キーはそのデバイス クラス エントリに存在します。システムは、各ドライバーに関する情報をソフトウェア キーの下に格納します。

    ドライバーでそのソフトウェア キーの値への読み取りまたは書き込みのアクセスを取得するには、IWDFPropertyStoreFactory::RetrieveDevicePropertyStore を呼び出します。ドライバーでは、特定のデバイスに関連付けられていないドライバー固有の情報の読み取りおよび書き込みを行うことができます。

  • デバイス インターフェイス キー

    レジストリには、ドライバーが作成したすべてのデバイス インターフェイス クラスのキーが含まれています。それらのキーの下には、ドライバーが登録したデバイス インターフェイス クラスの各インスタンスのエントリがあります。

    ドライバーでデバイス インターフェイス クラスのインスタンスを登録した場合に、そのインスタンスのレジストリ エントリの値を読み取ったり書き込んだりするには、IWDFPropertyStoreFactory::RetrieveDevicePropertyStore を呼び出します。ドライバーでは、デバイス インターフェイスに関するインスタンス固有の情報の読み取りおよび書き込みを行うことができます。

  • DEVICEMAP キー

    レジストリには、シリアル ポートやパラレル ポートなどの古いテクノロジのドライバーが使用する HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP キーが含まれています。DEVICEMAP キーを使用するテクノロジをドライバーでサポートしている場合に、このキーのサブキーや値にアクセスするには、IWDFPropertyStoreFactory::RetrieveDevicePropertyStore を呼び出します。

いずれかの RetrieveDevicePropertyStore メソッドを呼び出してレジストリ サブキーを開いたら、IWDFNamedPropertyStore インターフェイスまたは IWDFNamedPropertyStore2 インターフェイスを使用して、サブキーの値の作成、読み取り、および書き込みを行うことができます。IWDFNamedPropertyStore2 インターフェイスでは値を削除することもできます。

ドライバーのレジストリ キーの詳細については、「レジストリ ツリーとレジストリ キーの概要」(英語の可能性あり) を参照してください。