仍在努力安装我的LWF驱动程序。我想我已经接近但我正在跑步 进入这个错误:
" hr 0x800f0203没有为设备信息集选择驱动程序或 。元素"
我正在验证我是否正在复制INF和必要的组件 SetupCopyOEMInfA函数。在发布之前,设备上有锁定 之后,我省略了长度的发布。错误正在被抛出 pncClassSetup->安装功能。可能是因为我的componentId错了 但是在我发现的一个例子中,我看到它与MAX_PATH进行了比较,所以我想 这是一个INF文件。我一直在努力的例子是:
http://www.boudrand.net/index.php?option=com_content&view=article&id=5 http://stackoverflow.com/questions/10308583/programmatically-installing-ndis-filt ER-驱动
如果有人有任何见解我会非常感激!
hr = pnc->QueryNetCfgClass( &GUID_DEVCLASS_NETSERVICE,
IID_INetCfgClassSetup,
(void**)&pncClassSetup);
if (SUCCEEDED(hr)) {
bool isCopied;
PCSTR pathToInf = "C:\\Users\\user\\Desktop\\directory\\i386\\lwf.inf";
PCSTR pathToBin = "C:\\Users\\user\\Desktop\\directory\\i386\\";
PSTR DestinationInfFileName = "lwf.inf";
isCopied = SetupCopyOEMInfA(pathToInf,
// path to inf file
pathToBin,
// dir containing driver binary
SPOST_PATH,
0,
NULL,
256,
NULL,
NULL);
hr = CoCreateInstance( CLSID_CNetCfg,
NULL, CLSCTX_INPROC_SERVER,
IID_INetCfg,
(void**)&pnc );
LPCWSTR componentId;
componentId = L"C:\\Users\\user\\Desktop\\directory\\i386\\lwf.inf";
hr = pncClassSetup->Install( componentId,
&OboToken,
NSF_POSTSYSINSTALL,
0,
NULL,
NULL,
&pncc);
if (S_OK == hr){
pncc->Release();
pncClassSetup ->Release();
if (SUCCEEDED(hr))
hr = pnc->Apply();
}
}
答案 0 :(得分:1)
原来,componentId应该是INF文件中的id。就我而言 “ms_ndislwf”。
答案 1 :(得分:0)
为澄清上述答复,INetCfgClassSetup :: Install()方法的第一个参数必须与INF文件的DDInstall部分中指示的硬件ID相匹配。例如:
[Manufacturer]
"Taco Distributors Inc" = TacoDriver, NTamd64
[TacoDriver.NTamd64]
"Universal Taco Driver" = Taco_Install, 123TacosADay
[Taco_Install]
AddReg...
CopyFiles...
etc...
用一些数据填充数据,
csv.Dictwriter
在上面的示例中,您需要将“ 123TacosADay”传递给InetCfgClassSetup :: Install()方法的第一个参数。