[DefaultUninstall.NTamd64]
LegacyUninstall=1
DelReg = EPWF.DelReg
DelFiles = EPWF.DeleteFiles
[DefaultUninstall.NTarm64]
LegacyUninstall=1
DelReg = EPWF.DelReg
DelFiles = EPWF.DeleteFiles
[DefaultUninstall.NTamd64.Services]
DelService = %DriverName%,,
[DefaultUninstall.NTarm64.Services]
DelService = %DriverName%,,
[EPWF.DelReg]
; ADB
HKLM,SYSTEM\CurrentControlSet\Control\Class{3F966BD9-FA04-4EC5-991C-D326973B5128},UpperFilters,0x00018002,%DriverName%
; WPD
HKLM,SYSTEM\CurrentControlSet\Control\Class{eec5ad98-8080-425f-922a-dabf3de3f69a},UpperFilters,0x00018002,%DriverName%
; USBDevice
HKLM,SYSTEM\CurrentControlSet\Control\Class{88bae032-5a81-49f0-bc3d-a4ff138216d6},UpperFilters,0x00018002,%DriverName%
上面是我的inf文件
我通过命令执行inf文件DefaultUnInstall段来卸载驱动
rundll32.exe setupapi.dll,InstallHinfSection DefaultUnInstall 128 路径\EPWF.inf
但是
在一台win10的x64机器上执行一遍命令时查看sc query epwf还能看到,执行两遍这个命令,才能卸载服务。
在另一台win11的arm64机器上执行一遍命令后再执行就显示安装失败,sc query epwf还能看到。
两个机器的setupapi.dev.log均没有第二次运行的记录,第一次运行的结果都是success
请问是inf文件的DefaultUninstall写的有问题吗?
并且这个写法的delReg能正常删除注册表,但是在vs2022上无法编译通过。
报错:1431 Well-known registry value 'UpperFilters' has incorrect type, expecting value type 7.
我尝试了多种修改,如以下
HKLM,SYSTEM\CurrentControlSet\Control\Class{3F966BD9-FA04-4EC5-991C-D326973B5128},REG_MULTI_SZ,UpperFilters,%DriverName%
HKLM,SYSTEM\CurrentControlSet\Control\Class{3F966BD9-FA04-4EC5-991C-D326973B5128},0x00018002,UpperFilters,%DriverName%
HKLM,SYSTEM\CurrentControlSet\Control\Class{3F966BD9-FA04-4EC5-991C-D326973B5128},REG_MULTI_SZ,UpperFilters,0x00018002,%DriverName%
上面这些写法虽然能编译通过但在win10的x64机器上均无法正常删除注册表,在说明文档中我没有找到关于这类注册表删除写法的清晰的案例。
请问delreg这里应该怎么写,既能编译通过也能删除这个注册表?