【发布时间】:2014-11-29 03:44:23
【问题描述】:
我们有一个 NDIS6 LWF 驱动程序,如果从适配器的属性表安装,它可以正常安装,但既不能通过 DPInst 也不能通过 DIFxAPI.dll 中的 DriverPackageInstall 函数安装
除了供应商信息和描述外,它与 NDIS6 LWF Passthru 示例的不同之处在于:
仅绑定到 WLAN 介质: HKR, Ndi\Interfaces, FilterMediaTypes,,"wlan"
指定 DriverPackageType=Network(DIFxAPI 的要求)
passthru 示例在这里说“压缩”,我们说“自定义” HKR、Ndi、FilterClass、自定义
当前完整版本的 INF 存储在 https://docs.google.com/file/d/0By4TPkL7aR-RelRSZC1PZmdQYnc/edit?pli=1,因为它太大,无法在此处引用。
所以,问题是:这个 INF 还需要什么才能通过 DIFxAPI 安装? (目前通过适配器的属性表可以正常安装)
【问题讨论】:
-
你能用“pnputil -a”注入驱动吗?如果 GUI 工作正常,那么 INF 本身可能没问题。我猜这是您调用 DIFxAPI 函数的方式的问题。你可以发布函数调用吗?我对 DIFxAPI 或 DPInst 了解不多,所以我不能太有用,但也许其他人可以。
-
difxapi 调用如下: rc := DriverPackageInstall( PWideChar(cSrcInf), 0, nil, NeedReboot );如果 rc ERROR_SUCCESS 然后开始 RaiseErr(rc);结尾; Application.MessageBox('DriverPackageInstall 返回成功!', '信息');我们得到:错误代码 0x0000000D - RaiseErr(rc) 调用的结果意味着 DriverPackageInstall 返回 0x0000000D
-
抱歉,但 StackOverflow 似乎不支持 cmets 中的代码格式... :(
-
FormatMessageW(0x0D) 返回“数据无效。”
-
试过pnputil -a,好像win7和win81都可以。