SetupCopyOEMInf函数 驱动开发

SetupCopyOEMInf这个函数很好,可以原装驱动,也就是在设备插入之前运行这个函数。那么当设备插入电脑的时候,系统就可以自动安装驱动。

    起参数也比较简单。 

    BOOL WINAPI SetupCopyOEMInf( PCTSTR SourceInfFileName, PCTSTR OEMSourceMediaLocation, DWORD OEMSourceMediaType, DWORD CopyStyle, PTSTR DestinationInfFileName, DWORD DestinationInfFileNameSize, PDWORD RequiredSize, PTSTR DestinationInfFileNameComponent ); 

    简介: 

    SourceInfFileName,就是驱动inf的全路径。 

    OEMSourceMediaLocation,这个也是路径,但是其具体含义有后面的参数来制定(windows的参数很多就是这样。连个参数。一个是类型,一个是内容。内容又类型来决定)。 

    OEMSourceMediaType。SPOST_NONE:忽略OEMSourceMediaLocation的内容。SPOST_PATH:代表OEMSourceMediaLocation为真正驱动文件的地址,一般为驱动文件sys的地址。(如果你的sys文件跟inf在一个地方,那么OEMSourceMediaLocation可以为NULL),SPOST_URL,这个代表OEMSourceMediaLocation为一个网址,即驱动在internet上。 

    CopyStyle:这个很重要,但是一般我们用到的就SP_COPY_REPLACEONLY,替换,一般是升级时用。SP_COPY_NOOVERWRITE,系统是否已经预存了inf文件。SP_COPY_NEWER_OR_SAME,inf文件比系统的inf新或者一样时进行更新。 

    DestinationInfFileName,一般inf文件系统为例保证不冲突,会进行改名字,所以,这个是系统最终的inf的名字,也就是系统改完名字后,的inf的名字一般为oemXX.inf。 

    DestinationInfFileNameSize,DestinationInfFileName这个文件的大小。 

    RequiredSize,输出。 

    DestinationInfFileNameComponent,输出。 

    使用方法: 

    SetupCopyOEMInf(inffilename, NULL, SPOST_PATH, SP_COPY_NEWER_OR_SAME,NULL, 0, NULL,NULL); 

    一个inffilename的路径,copy就用SP_COPY_NEWER_OR_SAME。 

    今天犯了一个错误,我在传递参数CopyStyle时,用的SP_COPY_NOOVERWRITE,考虑到如果有驱动那么就不去copy了,本来是好心,但是发现在vista上出现了问题。 

    因为,我在卸载驱动时,是在设备管理里面卸载驱动,同时选择上了。如下图中的删除此设备的驱动程序软件。 

    这样一来导致系统把驱动的相关sys文件删掉了。但是inf没有删掉,还是存在的。 

    所以下一次安装时,SetupCopyOEMInf返回false。也就是不拷贝inf,因为已经有了inf。所以导致驱动无法安装上。 

    现在我把这个参数CopyStyle改为SP_COPY_NEWER_OR_SAME,就可以,因为这个函数是会拷贝inf的,就算系统已经有了inf。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DPInst.exe: installs and uninstalls driver packages. DPInst.exe: 安装及删除驱动程序包。 By default, the tools searches the current directory and tries to install all driver packages found. 默认情况下,此工具会搜索当前目录并尝试安装找到的驱动程序包。 Usage: DPInst.exe [/U INF-file][/S | /Q][/LM][/P][/F][/SH][/SA][/A][/PATH Path][/EL][/L LanguageID][/C][/D][/LogTitle Title][/SW][/? | /h | /help] 用法:DPInst.exe [/U INF-file][/S | /Q][/LM][/P][/F][/SH][/SA][/A][/PATH Path][/EL][/L LanguageID][/C][/D][/LogTitle Title][/SW][/? | /h | /help] /U path to INF file Uninstall a driver package (INF-file). /U 指定 INF 文件 删除一个驱动程序包(INF-文件)。 /S | /Q Silent (Quiet) mode. Suppresses the Device Installation Wizard and any dialogs popped-up by the operating system. /LM Legacy mode. Accepts unsigned driver packages and packages with missing files. These packages won't install on the latest version of Windows. /LM 传统模式。接受未签名的驱动包(缺少.cat文件)以及包中有文件丢失。 /P Prompt if the driver package to be installed is not better than the current one. /P 如果驱动包已经安装以及比当前使用的版本要旧就发出提示。 /F Force install inf the driver package is not better than the current one. /F 强制安装比当前使用的版本要旧的驱动包。 /SH Scans hardware for matching devices and only copies and installs those drivers for which a device is present. Only valid for Plug and Play drivers. /SH 仅仅对已插入的匹配的硬件设备进行扫描。 /SA Suppress the Add/Remove Programs entry normally created for each driver package. /SA 禁止“添加或删除程序”创建卸载项。 /A Install all or none. /PATH Path Search for driver packages under the given path. /PATH 路径 在指定的路径下搜索驱动程序包。 /EL Enables all languages not explicitly listed in the XML file. /L LanguageID Tries to use the given language in all UI. Useful for localization tests. /SE Suppress the EULA. /SE 禁止最终用户许可协议。 /C Dump logging output to attached Console (Windows XP and above). /C 转存日志文件输出到附加控
sa8155是一种芯片或设备的型号,驱动开发是为了使该芯片或设备能够在特定操作系统上正常工作而进行的开发工作。 sa8155驱动开发的目标是为了实现对该型号芯片或设备的完整控制和管理。驱动程序可以是一段软件代码或程序,通过与操作系统进行交互,使得操作系统能够识别、访问和使用该芯片或设备的功能。 在sa8155驱动开发的过程中,开发人员需要通过对芯片或设备的功能和架构进行深入理解和研究。他们需要与硬件工程师合作,了解和分析芯片或设备的规格和技术要求,以便于正确地编写驱动程序。 驱动开发人员通常使用特定的编程语言和工具,如C、C++或汇编语言来编写驱动程序。他们需要编写代码来与操作系统进行通信,通过调用操作系统提供的API函数来实现对芯片或设备的控制和管理。驱动程序可能包括初始化芯片或设备、配置寄存器、处理中断和错误等功能。 驱动开发的过程中,开发人员还需要进行测试和调试,以确保驱动程序的稳定性和正确性。他们需要使用测试工具和设备对驱动程序进行测试,发现并修复可能存在的问题和错误。 总之,sa8155驱动开发是一项专门针对该芯片或设备的开发工作,旨在实现对该芯片或设备的完整控制和管理,使其能够在特定操作系统上正常工作。这需要开发人员具有深入的硬件和软件知识,并使用特定的编程语言和工具来编写和测试驱动程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值