|
写注册表后,flush没有;重起网卡用 :
这是NDIS层的调用,当初我也遇到同样的问题,研究了好久,这是最有效的一种重新启动网卡(自动完成DHCP,驱动重启,IP设置)的方式.其余方式无效.
//卸载主端口驱程
WCHAR MainAdapterName2[100]=TEXT("DDNETM\0DDNETM1\0\0"); //网卡1 在系统中名,
bRet = DeviceIoControl(
hAdapter,
IOCTL_NDIS_DEREGISTER_ADAPTER,
MainAdapterName,
wcslen((MainAdapterName)+1) * sizeof(WCHAR),
NULL,
0,
&dwReturnedBytes,
NULL
);
if(bRet==TRUE)
{
TRACE(_T("DELoad MiniPort Success"));
}
else
{
int nError=GetLastError();
CString strErr;
strErr.Format(_T("Name=%s IOCTL_NDIS_REGISTER_ADAPTER Failed Code=%d"),MainAdapterName,nError);
TRACE(strErr);
}
WCHAR MainAdapterName2[100]=TEXT("DDNETM\0DDNETM1\0\0");
//装载主端口驱程
bRet = DeviceIoControl(
hAdapter,
IOCTL_NDIS_REGISTER_ADAPTER,
MainAdapterName2,
wcslen((MainAdapterName2)+1) * sizeof(WCHAR),
NULL,
0,
&dwReturnedBytes,
NULL
);
if(bRet==TRUE)
{
TRACE(_T("Load MiniPort Success"));
}
else
{
int nError=GetLastError();
CString strErr;
strErr.Format(_T("Name=%s IOCTL_NDIS_REGISTER_ADAPTER Failed Code=%d"),MainAdapterName,nError);
TRACE(strErr);
}
|
|