mengxp
驱动牛犊
驱动牛犊
  • 注册日期2006-07-11
  • 最后登录2017-07-12
  • 粉丝1
  • 关注1
  • 积分34分
  • 威望243点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分10分
  • 社区居民
阅读:3481回复:1

求助。passthru驱动安装错乱的问题

楼主#
更多 发布于:2011-02-16 19:53
我调用bindview里的代码实现自动安装passthru但是发现了一个小bug
因为我前后后改了很多次inf文件,又反复在虚拟机上调试,所以系统的c:\windows\inf里生成了大量inf备份
名字为oemXX.inf,然后问题出现了

我调用HrInstallNetComponent,指定inf文件路径
结果安装之后的passthru名称不对,不是我指定安装的那个。
自动变成了c:\windows\inf里的oemXX.inf里设定的

比如说:c:\windows\inf\oem12.inf定义如下行
Passthru_Desc = "Filter Driver1111"
Passthru_HELP = "中间层驱动程序"

而我安装的c:\vxfilter\vxflt.inf是如下定义的
Passthru_Desc = "Filter Driver"
Passthru_HELP = "中间层驱动程序"

那么调用HrInstallNetComponent安装c:\vxfilter\vxflt.inf之后
可以通过本地连接属性 观察到服务名称为Filter Driver1111

虽然不影响使用但是……
这是为什么呢……

源代码如下
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <windowsx.h>
#include <wchar.h>
#include <commctrl.h>        // For common controls, e.g. Tree
#include <commdlg.h>
#include <setupapi.h>
#include <devguid.h>

#include "NetCfgAPI.h"
#include <strsafe.h>

int APIENTRY WinMain (__in HINSTANCE hInst,__in_opt HINSTANCE hPrevInstance,__in LPSTR lpCmdLine,__in int nCmdShow )
{
    INetCfg        *pnc;
    LPWSTR        lpszApp;
    HRESULT        hr;
    WCHAR        TempStr[128];

    hr = HrGetINetCfg(TRUE,L"VxFilterIns",&pnc,&lpszApp);
    if(hr == S_OK)
    {
        hr = HrInstallNetComponent(pnc,L"vx_filter",&GUID_DEVCLASS_NETSERVICE,L"C:\\VxFilter\\vxflt.inf");
        if(hr == S_OK || hr == NETCFG_S_REBOOT)
        {
            hr = pnc->Apply();
            MessageBoxW(0,L"安装成功!",L"安装信息",MB_ICONINFORMATION);
        }
        else
            if(hr != HRESULT_FROM_WIN32(ERROR_CANCELLED))
                MessageBoxW(0,L"无法安装指定网络组件",L"安装错误",MB_ICONERROR);

        HrReleaseINetCfg(pnc,TRUE);
    }
    else
    {
        if(hr == NETCFG_E_NO_WRITE_LOCK && lpszApp)
        {
            MessageBoxW(0,lpszApp,L"请关闭如下窗口",MB_ICONERROR);
            CoTaskMemFree(lpszApp);
        }
        else
        {
            MessageBoxW(0,L"无法获取INetCfg接口",L"安装错误",MB_ICONERROR);
        }
    }

    InitCommonControls();
    return 0;
}
labixiaoqi
驱动牛犊
驱动牛犊
  • 注册日期2014-07-26
  • 最后登录2014-07-26
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2014-07-26 23:31
我也是遇到这种问题,楼主解决了吗?
游客

返回顶部