デバイス ドライバーのプロパティへのアクセス

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 でデバイス ドライバーのプロパティにアクセスするには、次の手順に従います。

  1. CM_Open_DevNode_Key を ulFlags に CM_REGISTRY_SOFTWARE を指定して呼び出すか、または SetupDiOpenDevRegKey を Scope に DICS_FLAG_GLOBAL、KeyType に DIREG_DRV を指定して呼び出すことで、デバイス インスタンスのソフトウェア キーへのハンドルを取得します。

  2. RegQueryValueEx または RegSetValueEx の呼び出しでハンドルを指定して、デバイス インスタンス ドライバーのプロパティに対応するレジストリ エントリ値を取得または設定します。

  3. 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 メンバーには、ドライバーのランクが含まれています。