Windows Vista 以降のバージョンの Windows では、 統合デバイス プロパティ モデル には、デバイス ドライバーを特徴付けするデバイス ドライバーのプロパティが含まれています。 統合デバイス プロパティ モデルでは、 プロパティ キー を使用してこれらのプロパティを表します。
Windows Server 2003、Windows XP、Windows 2000 では、これらのデバイス ドライバーのプロパティのほとんどがサポートされています。 ただし、これらの以前のバージョンのWindowsでは、統合デバイス プロパティ モデルのプロパティ キーはサポートされていません。 代わりに、これらのバージョンのWindowsは、次のメカニズムを使用して、対応するプロパティ情報を表現し、参照します。
これらの以前のバージョンのWindowsとの互換性を維持するために、Windows Vista以降のバージョンでは、デバイス インターフェイスに関する情報にアクセスするこれら 2 つの方法もサポートされています。 ただし、プロパティ キーを使用して、Windows Vista 以降のバージョンでこれらのプロパティにアクセスする必要があります。 プロパティ キーを使用して、Windows Vista 以降のバージョンのデバイス インスタンスのプロパティにアクセスする方法については、「デバイス インスタンスのプロパティへのアクセス (Windows Vista 以降)」を参照してください。
対応するレジストリ エントリ値を持つデバイス ドライバーのプロパティへのアクセス
Windows Server 2003、Windows XP、Windows 2000 でデバイス ドライバーのプロパティにアクセスするには、次の手順に従います。
CM_Open_DevNode_Key を ulFlags に CM_REGISTRY_SOFTWARE を指定して呼び出すか、または SetupDiOpenDevRegKey を Scope に DICS_FLAG_GLOBAL、KeyType に DIREG_DRV を指定して呼び出すことで、デバイス インスタンスのソフトウェア キーへのハンドルを取得します。
RegQueryValueEx または RegSetValueEx の呼び出しでハンドルを指定して、デバイス インスタンス ドライバーのプロパティに対応するレジストリ エントリ値を取得または設定します。
RegCloseKey 関数を呼び出して、キーへのアクセスが不要になった後にソフトウェア レジストリ キーを閉じます。
統合デバイス プロパティ モデルのプロパティと、デバイスのソフトウェア キー内の対応するレジストリ値の表は次のとおりです。
| 統合プロパティモデルのプロパティ | ソフトウェア キーのレジストリ値名 (regstr.h で定義) |
|---|---|
| DEVPKEY_Device_DriverDate | REGSTR_VAL_DRIVERDATEDATA |
| DEVPKEY_Device_DriverVersion | REGSTR_VAL_DRIVERVERSION |
| DEVPKEY_Device_DriverDesc | REGSTR_VAL_DRVDESC |
| DEVPKEY_Device_DriverInfPath | REGSTR_VAL_INFPATH |
| DEVPKEY_Device_DriverInfSection | REGSTR_VAL_INFSECTION |
| DEVPKEY_Device_DriverInfSectionExt | REGSTR_VAL_INFSECTIONEXT |
| DEVPKEY_Device_DriverProvider | REGSTR_VAL_PROVIDER_NAME |
SetupDiGetDriverInstallParams を使用してドライバーのランクを取得する
Windows Server 2003、Windows XP、Windows 2000 では、SetupDiGetDriverInstallParams を呼び出すことによって、デバイスに現在インストールされているドライバーのランクを取得できます。 SetupDiGetDriverInstallParamsは、出力パラメーター DriverInstallParams内のドライバーのSP_DRVINSTALL_PARAMS構造体へのポインターを取得します。 取得したSP_DRVINSTALL_PARAMS構造体の Rank メンバーには、ドライバーのランクが含まれています。