驱动程序打包

对于提供inf文件的驱动,在cmd中可以输入一下格式的命令:

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection <section><mode><path>

例如:

Rundll32.exe setupapi.dll,InstallHinfSection usb2066.Dev.NT 132 D:\Driver\usb2066.inf

通过Rundll32 调用setupapi 的 installHinfSection 函数 

SLABWdm.Install.NT INF文件中的配置节 一般是安装开始的入口点   该配置节中包括 文件拷贝  注册表信息

132  ——该参数不详

D:\Driver\usb2066.inf ——INF文件的完整路径

 

或者自己编写程序实现

msdn 中 installHinfSection 函数说明如下:

InstallHinfSection function

[This function is available for use in the operating systems indicated in the Requirements section. It may be altered or unavailable in subsequent versions. SetupAPI should no longer be used for installing applications. Instead, use the Windows Installer for developing application installers. SetupAPI continues to be used for installing device drivers.]

InstallHinfSection is an entry-point function exported by Setupapi.dll that you can use to execute a section of an .inf file. InstallHinfSection can be invoked by calling the Rundll32.exe utility as described in the Remarks section.

The prototype for the InstallHinfSection function follows the form of all entry-point functions used with Rundll32.exe.

If a file is copied or modified, the caller of this function is required have privileges to write into the target directory. If there are any services being installed, the caller of this function is required have access to the Service Control Manager.

Syntax

C++
VOID CALLBACK InstallHinfSection(
  _In_  HWND hwnd,
  _In_  HINSTANCE ModuleHandle,
  _In_  PCTSTR CmdLineBuffer,
  _In_  INT nCmdShow
);

Parameters

hwnd [in]

The parent window handle. Typically hwnd is Null.

ModuleHandle [in]

Reserved and should be Null.

CmdLineBuffer [in]

Pointer to buffer containing the command line. You should use a null-terminated string.

nCmdShow [in]

Reserved and should be zero.

Return value

This function does not return a value.

Remarks

Note that three exports exist: InstallHinfSection (for RunDll32), InstallHinfSectionA, and InstallHinfSectionW.

To run an Install section of a specified .inf file, you can invoke InstallHinfSection with the Rundll32.exe by using the following syntax.

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection <section><mode><path>

This passes "<section> <mode> <path>" to CmdLineBuffer.

Alternatively, your program may call InstallHinfSection, InstallHinfSectionA, or InstallHinfSectionW directly, setting the CmdLineBuffer parameter to the following.

"<section> <mode> <path>"

Where path is the full path to the .inf file, mode is the reboot mode parameter, and section is any Install section in the .inf file. The comma separator between SETUPAPI.DLL and InstallHinfSection on the command line is required. Note that there cannot be any white space on the command line between the comma and SETUPAPI.DLL or InstallHinfSection.

It is recommended that you specify the full path to the .inf file as path.

You may specify any Install section in the .inf file as section. No spaces are allowed.

You should use a combination of the following values for mode. You must include 128 to set the default path of the installation to the location of the INF, otherwise a system-provided INF is assumed. Add values to specify rebooting. Note that only the values 128 or 132 are recommended, other values may cause the computer to reboot unnecessarily or not reboot when it required.

ValueDescription
0System provided INF.
128Set the default path of the installation to the location of the INF. This is the typical setting.
+0Never reboot the computer.
+1Reboot the computer in all cases.
+2Always ask the users if they want to reboot.
+3Reboot the computer if necessary without asking user for permission.
+4If a reboot of the computer is necessary, ask the user for permission before rebooting.

 

For example, the following command line runs the DefaultInstall section of the Shell.inf file. If Setup determines a reboot is required, the user is will be prompted with a "Reboot the computer, Yes/No" dialog box.

RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 132 C:\WINDOWS\INF\SHELL.INF

Requirements

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Header

Setupapi.h

Library

Setupapi.lib

DLL

Setupapi.dll

Unicode and ANSI names

InstallHinfSectionW (Unicode) and InstallHinfSectionA (ANSI)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值