INF 右键安装驱动以及卸载

INF 右键安装驱动以及卸载

之前写过一篇文章是关于INF文件详解的,大家可以参看INF文件详解,这次写的是关于INF右键安装,这样比较方便。卸载的话也是一句话,可以大大减少安装时间;

先将INF文件内容贴上来:

; OsnDf.inf ; ; Installation file (.inf) for Infocore Corporation OsnDiskCopy driver. ; ; (c) Copyright 2007-2008 Infocore Corporation ; [Version] Signature="$Windows NT$" Provider=%StorTrust% ClassGUID={4D36E967-E325-11CE-BFC1-08002BE10318} Class=DiskDrive DriverVer=01/16/2001, 4.0.0 [DestinationDirs] DefaultDestDir = 12 [DefaultInstall] CopyFiles =OsnDSS.Files OptionDesc =%StorTrust.DeviceDesc% AddReg = OsnDSS.AddReg [DefaultInstall.Services] AddService = OsnDSS,, OsnDSS_Service_Inst, OsnDSS_EventLog_Install [DefaultUninstall] DelFiles =OsnDSS.Files DelReg =OsnDSS.DelRegistry [DefaultUninstall.Services] DelService =OsnDSS,0x00000200,System, [OsnDSS.AddReg] ; append this service to existing REG_MULTI_SZ list, if any HKLM,%OsnDSSRegistery%,"UpperFilters",0x00010008,"OsnDSS" [OsnDSS.DelRegistry] HKLM,%OsnDSSRegistery%,"UpperFilters",0x00018002,"OsnDSS" ; ; File sections ; [OsnDSS.Files] OsnDSS.sys [OsnDSS_Service_Inst] DisplayName = %OsnDSS.SvcDesc% ServiceType = 1 ; SERVICE_KERNEL_DRIVER StartType = 0 ; SERVICE_BOOT_START ErrorControl = 1 ; SERVICE_ERROR_NORMAL ServiceBinary = %12%\OsnDSS.sys [OsnDSS_EventLog_Install] AddReg = OsnDSSEventLogInstall [OsnDSSEventLogInstall] HKR,,EventMessageFile,0x00020000,"%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\OsnDSS.sys" HKR,,TypesSupported,0x00010001,7 ; Source file information ; [SourceDisksNames] 1 = %DiskId1%,,,"" [SourceDisksFiles] OsnDSS.sys = 1,, [Strings] ; ; Non-Localizable Strings ; REG_SZ = 0x00000000 REG_MULTI_SZ = 0x00010000 REG_EXPAND_SZ = 0x00020000 REG_BINARY = 0x00000001 REG_DWORD = 0x00010001 SERVICEROOT = "System\CurrentControlSet\Services" ; ; Localizable Strings ; ClassName = "DiskDrive" StorTrust = "Enterprise Information Management Inc." DiskId1 = "EIM Installation Disk #1" StorTrust.DeviceDesc = "EIM Disk Shadow Copy Driver" OsnDSS.SvcDesc = "EIM Disk Shadow Copy Driver" OsnDSSRegistery = "system\currentcontrolset\control\class\{4D36E967-E325-11CE-BFC1-08002BE10318}"

右键安装,最主要是需要有两个域 [DefaultInstall]和 [DefaultInstall.Services],只有有这两个域,右键安装的时候才能找到入口;先来讲讲 [DefaultInstall]这个域,

CopyFiles =OsnDSS.Files ;这个是将Osndss.sys Copy windows\system32\driver 下

OptionDesc =%StorTrust.DeviceDesc% ;这个是描述下一个驱动是什么,随便填
AddReg = OsnDSS.AddReg ;由于我写的是Disk过滤驱动,所以需要加到注册表UpperFilters键值下面

OsnDSSRegistery = "system\currentcontrolset\control\class\{4D36E967-E325-11CE-BFC1-08002BE10318}" ;其中后面一串数字是表示Disk设备在windows系统里可以识别的ClassGuid,我们的Osndss是 append 在UpperFilters已有的PartMgr后面;这样系统启动的时候会去哪里找到Osndss也需要启动,然后回去找Services里对应的OsnDSS注册表,找到其相关信息;


再来讲讲[DefaultInstall.Services]:

AddService = OsnDSS,, OsnDSS_Service_Inst, OsnDSS_EventLog_Install ;这个在Services添加注册表名为OsnDSS,子域OsnDSS_Service_Inst(这个域内的内容在INF文件详细里有讲,这里就不累赘了),OsnDSS_EventLog_Install 这个是注册一下事件日志;


这样总结一下加载完成了什么:1.Copy sys文件;2在Upperfilters 加入Osndss;3写入注册表services名为Osndss;4写入注册表EventLog-》System里Osndss的注册表;这样我们就可以将驱动sys文件和Inf文件放在同一个目录(最好不好放桌面,随便找个卷都行,桌面好像中文系统的话不识别)然后右键Inf安装就可以了,安装完之后会有提示重启生效的;

还有一种安装方法就是:

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 path-to-inf\infname.inf

在Commnd 里输入上面的指令最后的path-to-inf\infname.inf替换为你Inf的路径;



接下来讲下卸载,我们安装什么,理论上我们就应该要卸载什么的。当然微软本身可能就有不少软件,安装之后,在卸载的时候有不少东西不清理掉的,所以系统用久了就会觉得不怎么好使了。

卸载域:

[DefaultUninstall]
DelFiles =OsnDSS.Files ;将Drivers 下面的Osndss.sy删掉;
DelReg =OsnDSS.DelRegistry ;删除Append在Upperfilters里的OsnDSS


[DefaultUninstall.Services]
DelService =OsnDSS,0x00000200,, ;卸载Service下面的OsnDSS 整个子键,后面的两个参数[Eventlog type][eventlogname], EventLog type的话有三种,SystemSecurityApplication,如果是System的话可以默认不写的,如果Eventlog name Servcie下的名字是一样的话也可以不写的,这里我试过多次,Service下面的子键Osndds确实能卸载掉的,但是Eventlog里的不管是默认还是写明了SystemOsndss都无法卸载掉,至今没找到为什么;

卸载的时候就不能用右键了,因为压根就没这个选项,只能用Command

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 path-to-uninstall-dir\infname.inf

这样就卸掉了,虽然还遗留Eventlog卸不掉的遗憾
<think>好的,用户的问题是关于如何在图像处理中模拟或添加光源噪声的效果或方法。首先,我需要理解用户的需求。他们可能希望在自己的图像中加入类似真实拍摄中出现的光源噪声,用于测试图像处理算法,或者实现某种艺术效果。接下来,我需要回忆图像处理中常见的噪声类型以及模拟方法。 首先,光源噪声可能包括不同的类型,比如高斯噪声、泊松噪声、椒盐噪声等。不过,光源噪声可能更偏向于由于光照不均匀或传感器问题导致的噪声,比如高ISO引起的热噪声或散粒噪声。需要确定用户具体指的是哪种噪声,但根据常见情况,通常光源相关的噪声可能涉及高斯和泊松模型。 然后,考虑模拟这些噪声的方法。通常,添加噪声的方法是在原图上叠加一个噪声层。例如,高斯噪声可以通过生成符合高斯分布的随机数矩阵,然后叠加到图像像素值上。泊松噪声则与光子的量子性质有关,可能需要更复杂的处理,比如使用NumPy的随机函数生成泊松分布的数据,或者对图像进行缩放后再应用噪声。 另外,用户提到的ISP(图像信号处理)相关知识,在引用[^1]中提到的ISP处理包括噪声去除,那么模拟噪声可能涉及逆过程。需要确保在添加噪声时考虑到图像传感器的特性,比如噪声模型的参数可能与传感器有关,例如ISO值、温度等。 接下来,可能需要分步骤说明如何添加不同类型的光源噪声,并提供代码示例。例如,使用Python和OpenCV库来实现高斯噪声和泊松噪声的添加。同时,需要注意图像的数据类型(如uint8)和归一化处理,避免溢出。 还需要考虑用户的技术背景。他们可能具备一定的图像处理知识,但需要具体的步骤和代码示例。因此,回答应结构清晰,先介绍原理,再给出实现方法,最后可能提到优化方法或实际应用中的注意事项。 最后,生成相关问题,帮助用户进一步探索,比如噪声去除方法、不同噪声模型的应用场景,或者ISP的其他功能如何影响噪声处理。确保引用正确,将ISP的引用放在相关的部分,例如在讨论噪声去除或传感器影响时引用[^1]。</think>在图像处理中模拟光源噪声需要结合光学特性与传感器噪声模型,以下是主要方法及实现步骤: ### 一、光源噪声的类型与模型 1. **高斯噪声**:模拟传感器电子噪声 $$ P(x) = \frac{1}{\sigma\sqrt{2\pi}}e^{-\frac{(x-\mu)^2}{2\sigma^2}} $$ 通过添加均值为$\mu$、标准差为$\sigma$的正态分布随机值实现 2. **泊松噪声**:模拟光子到达的量子特性 $$ P(k) = \frac{\lambda^k e^{-\lambda}}{k!} $$ 与光照强度正相关,需根据像素亮度调整噪声强度 3. **热噪声**:使用指数分布模拟传感器温度效应 $$ f(x;\lambda) = \lambda e^{-\lambda x} $$ ### 二、Python实现方法 #### 1. 高斯噪声添加 ```python import cv2 import numpy as np def add_gaussian_noise(img, mean=0, sigma=25): noise = np.random.normal(mean, sigma, img.shape).astype('int16') noisy = cv2.add(img.astype('int16'), noise) return np.clip(noisy, 0, 255).astype('uint8') ``` #### 2. 泊松噪声添加 ```python def add_poisson_noise(img): # 将图像转换为光子计数模式 scaled_img = img * (50.0 / 255) # 模拟低光照条件 noise = np.random.poisson(scaled_img).astype('float32') return (noise * (255/50)).clip(0,255).astype('uint8') ``` ### 三、传感器特性模拟 1. **ISO增益模拟**: ```python def simulate_iso(img, iso_factor=1.5): noisy = img.astype('float32') * iso_factor return add_gaussian_noise(noisy.clip(0,255), sigma=iso_factor*15) ``` 2. **坏点注入**: ```python def add_dead_pixels(img, num=50): h,w = img.shape[:2] coords = [(np.random.randint(h), np.random.randint(w)) for _ in range(num)] for (y,x) in coords: img[y,x] = 0 if np.random.rand() > 0.5 else 255 return img ``` ### 四、实际应用注意事项 1. 噪声参数应与图像位深匹配(8位/12位/RAW) 2. 彩色图像需在YUV或LAB空间处理亮度通道 3. 噪声空间相关性可通过卷积滤波实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毛毛虫的爹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值