開啟裝置的軟體金鑰
您不得直接開啟裝置 的軟體密鑰。 如同任何登錄機碼,這些機碼的位置或格式可能會在不同的 Windows 版本之間變更。
注意
只有在找到對應的裝置之後,您才應該開啟裝置的軟體密鑰。 如需此程式的詳細資訊,請參閱 列舉已安裝的裝置。
若要開啟或建立裝置的軟體密鑰,請遵循下列指導方針:
注意
您必須設定 參數,其中提供要求的安全性存取權給所需的最低訪問許可權。 您不得將此參數設定為 KEY_ALL_ACCESS。 如需如何指定登錄存取權的詳細資訊,請參閱 安全地存取登錄機碼。
若要開啟現有的軟體密鑰,請使用CM_Open_DevNode_Key搭配包含CM_REGISTRY_SOFTWARE的 RegDisposition_OpenExisting 和 ulFlags處置,或使用DIREG_DRV 的 SetupDiOpenDevRegKey 和 KeyType 參數。
若要建立軟體密鑰,請使用CM_Open_DevNode_Key搭配包含CM_REGISTRY_SOFTWARE的 RegDisposition_OpenAlways 和 ulFlags處置,或使用 DIREG_DRV 的 SetupDiCreateDevRegKey 和 KeyType 參數。
內核模式呼叫端應該使用 IoOpenDeviceRegistryKey, 並將 DevInstKeyType 參數設定為 PLUGPLAY_REGKEY_DRIVER。
修改裝置軟體機碼中的登錄值
您不得修改下列登入專案的值, (裝置屬性) 裝置 的軟體機碼:
DriverDate
DriverDateData
DriverDesc
DriverVersion
InfPath
InfSection
InfSectionExt
MatchingDeviceId
ProviderName
EnumPropPages32
這些裝置屬性代表裝置的安裝狀態。 直接修改這些屬性可能會使裝置的安裝狀態失效。 例如,變更 與 INF 檔案 相關的資訊會使與裝置和驅動程式簽署資訊等屬性相關聯的驅動程式檔案資訊失效。 變更驅動程式版本或驅動程式日期可能會中斷 Windows Update 功能。
注意
從 Windows Vista 開始,操作系統會對這些屬性施加「僅限安裝時間」存取限制。 值可以復寫以取得相容性,而且在裝置安裝期間直接修改值不會影響內部狀態。