baoqf
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2716回复:14

inf驱动安装问题

楼主#
更多 发布于:2003-02-21 11:00
我现在有一个inf文件。我想通过程序安装这个驱动程序,我试了几个办法都搞不定;下面是我试过的现象或尝试:
1.点鼠标右健安装没反应,好像不成功硬件列表中没有
2.控制面板中添加新硬件形式可以添加到硬件列表中
3.我想通过SetupCopyOEMInfo的方式安装也没反应。
4.我要实现的功能是:--选择这个驱动文件--〉调用这个驱动文件---〉弹出微软的数字签名信息(是否继续安装)--〉用户选择--〉安装成功。
5.我在调用这个驱动文件---〉弹出微软的数字签名信息这一步卡住了。
请大虾们指教。
附件名称/大小 下载次数 最后更新
2003-02-21_V6X.inf (4KB)  10

最新喜欢:

xl1533xl1533
tjm
tjm
驱动小牛
驱动小牛
  • 注册日期2002-05-18
  • 最后登录2004-10-01
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-21 20:17
你的INF文件是干什么的呀?
没驱动的事呀。
baoqf
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-21 22:30
我的inf文件是别人的驱动,我想通过Platform SDK: Setup API或相关函数来实现调用别人的inf文件实现驱动安装
baoqf
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-22 10:09

m_hInf = SetupOpenInfFile(m_strInf, NULL, INF_STYLE_WIN4, NULL);

if (m_hInf == INVALID_HANDLE_VALUE)
return GetLastError();

if (!SetupDiGetINFClass(m_strInf, &m_guid, classname, sizeof(classname), NULL))//获得GUID,类名
return GetLastError();
GetWindowsDirectory(InfPath, MAX_PATH);
strcat(InfPath,\"\\\\system32\\\\drivers\");
DWORD cbData = sizeof(InfPath);
if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_DRIVER_PATH_KEY,
0, KEY_WRITE, &hKey) == ERROR_SUCCESS )//打开注册表
{
if (RegDeleteValue(hKey,\"SourcePath\") == ERROR_SUCCESS)//删除健值
{
PBYTE tempDir;
DWORD sizedir;
sizedir = strlen(InfPath)+2;

tempDir = new BYTE[sizedir];
memset(tempDir, 0, sizedir);
memcpy(tempDir, InfPath, sizedir);
//添加健值
if (RegSetValueEx(hKey,TEXT(\"SourcePath\"),0,REG_SZ,tempDir,cbData) == ERROR_SUCCESS)
{
int i;
i = 0;
}
}
}
m_hinfo = SetupDiCreateDeviceInfoList(&m_guid, NULL);

m_devinfo.cbSize = sizeof(m_devinfo);
//creates a new device information element and adds it as a new member to the specified device information set
if (!SetupDiCreateDeviceInfo(m_hinfo, classname, &m_guid,
NULL, NULL, DICD_GENERATE_ID, &m_devinfo))
return  GetLastError();

DWORD size = strlen(m_strID) + 2;
tempID = new BYTE[size];
memset(tempID,0,size);
memcpy(tempID,m_strID,size);
//sets the specified Plug and Play device property.
if (!SetupDiSetDeviceRegistryProperty(m_hinfo, &m_devinfo, SPDRP_HARDWAREID,
tempID, size))
return  GetLastError();

//calls the appropriate class installer, and any registered co-installers, with the specified installation request (DIF code)
if (!SetupDiCallClassInstaller(/*DIF_REGISTERDEVICE*/DIF_INSTALLDEVICE, m_hinfo, &m_devinfo))
return GetLastError();//return

BOOL reboot = FALSE;
GetWindowsDirectory(InfPath, MAX_PATH);
strcat(InfPath,\"\\\\inf\\\\\");
strcat(InfPath,m_strInf);
//Given an INF and a hardware ID, UpdateDriverForPlugAndPlayDevices installs updated drivers for devices that match the hardware ID
if (!UpdateDriverForPlugAndPlayDevices(
NULL,
m_strID,
InfPath,
INSTALLFLAG_FORCE,
&reboot))
{
errorno = GetLastError();
return errorno;
}


SetupCloseInfFile(m_hInf);

delete[] tempID;

//MessageBox(NULL,\"Install OK\",\"Install\",MB_OK);


return 0;

在SetupDiCallClassInstaller时返回错误了,0xe0000219,是不是参数传的不对?第一个参数我试了很多都是一样的返回值。
baoqf
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-24 21:20
有人愿意解释一下这个inf文件各字段的含义吗?
安装驱动时windows是如何调用文件中的各个字段的?
; Windows Modem Setup File
; Copyright (c) 1999 Microsoft Corporation
; Manufacturer: Siemens, 23.04.2001 Author: Karlo B.
;
; rev. 01.05.2001 by Tobias W. (W2K)
; rev. 17.05.2001 K.B. +++ hangup hinzugef
gzdaniel
驱动牛犊
驱动牛犊
  • 注册日期2003-02-24
  • 最后登录2003-03-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-25 09:20
是西门子手机的MODEM驱动
baoqf
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-02-26 09:47
是西门子手机的modem驱动。你知道如何安装吗?
wilsonz
驱动牛犊
驱动牛犊
  • 注册日期2002-11-12
  • 最后登录2003-03-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-07 14:15
我也编一个程序,调用inf文件自动安装usb->serial芯片的驱程,可是无从下手,耐心等待你的结果。
baoqf
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-08 13:56
我监控别人的程序发现可以使用如下13个函数实现,但我不知道如何组织,现在在每个每个函数的测试,好累哦
SetupDiEnumDeviceInfo
SetupDiCreateDevRegKeyA
SetupDiRegisterDeviceInfo
SetupDiGetSelectedDriverA
SetupDiCallClassInstaller
SetupDiSetDeviceRegistryPropertyA
SetupDiGetDeviceRegistryPropertyA
SetupDiCreateDeviceInfoList
SetupDiGetINFClassA
SetupDiCreateDeviceInfoA
SetupDiOpenDevRegKey
SetupDiGetClassDevsA
SetupDiDestroyDeviceInfoList  :(
GettingStart
驱动牛犊
驱动牛犊
  • 注册日期2002-12-27
  • 最后登录2003-08-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-25 09:38
楼上的如果你已经仅使用这十几个函数就做成了安装程序(即没有使用newdev.h),能不能给我发一份原码,我现在要做98下的安装程序,98下只有setupapi.h没有newdev.h,小弟在这里先谢了!!!
至尊宝
hanfuxu
驱动牛犊
驱动牛犊
  • 注册日期2001-07-14
  • 最后登录2009-01-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-06-21 12:30
呵呵!我也在等待!如果作好了,能不能公开一下啊!谢谢了!
jr1017
驱动牛犊
驱动牛犊
  • 注册日期2002-04-26
  • 最后登录2007-07-06
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-06-22 19:32
////////////////////////////////
98下的安装程序,98下只有setupapi.h没有newdev.h
////////////////////////////////



98下的安装程序只需要手动更改注册表就可以了
沧海一栗
baoqf
驱动牛犊
驱动牛犊
  • 注册日期2003-01-15
  • 最后登录2004-08-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-06-22 21:02
jr1017,能说清楚点吗?
xl1533
驱动牛犊
驱动牛犊
  • 注册日期2005-03-09
  • 最后登录2006-02-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2005-03-16 16:36

if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, REG_DRIVER_PATH_KEY, 0, KEY_WRITE, &hKey) == ERROR_SUCCESS )//打开注册表

这里的REG_DRIVER_PATH_KEY指的是哪一个路径啊?怎么来的?
a0041059a
驱动小牛
驱动小牛
  • 注册日期2005-05-09
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分46分
  • 威望6点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2005-05-09 20:14
I know
游客

返回顶部