Example #1
0
//+---------------------------------------------------------------------------
//
// Function:  HrUninstallNetComponent
//
// Purpose:   Initialize INetCfg and uninstall a component
//
// Arguments:
//    szComponentId [in]  InfId of component to uninstall (e.g. MS_TCPIP)
//
// Returns:   S_OK or NETCFG_S_REBOOT on success, otherwise an error code
//
// Notes:
//
HRESULT HrUninstallNetComponent(IN PCWSTR szComponentId)
{
    HRESULT hr=S_OK;
    INetCfg* pnc = NULL ;

    LogPrintf(_T("Trying to uninstall '%s'...\n"), szComponentId);

    // get INetCfg interface
    hr = HrGetINetCfg(TRUE, &pnc);

    if (SUCCEEDED(hr))
    {
        // uninstall szComponentId
        hr = HrUninstallNetComponent(pnc, szComponentId);

        if (S_OK == hr)
        {
            // Apply the changes
            hr = pnc->Apply();
        }
        else if (S_FALSE == hr)
        {
            LogPrintf(_T("'%s' is not installed\n"), szComponentId);
        }

        // release INetCfg
        (void) HrReleaseINetCfg(TRUE, pnc);
    }

    // show success/failure message
    ShowHrMessage(hr);

    return hr;
}
Example #2
0
//+---------------------------------------------------------------------------
//
// Function:  HrUninstallNetComponent
//
// Purpose:   Initialize INetCfg and uninstall a component
//
// Arguments:
//    szComponentId [in]  InfId of component to uninstall (e.g. MS_TCPIP)
//
// Returns:   S_OK or NETCFG_S_REBOOT on success, otherwise an error code
//
// Notes:
//
HRESULT HrUninstallNetComponent(IN PCWSTR szComponentId)
{
    HRESULT hr=S_OK;
    INetCfg* pnc;

    // get INetCfg interface
    hr = HrGetINetCfg(TRUE, &pnc);

    if (SUCCEEDED(hr))
    {
        // uninstall szComponentId
        hr = HrUninstallNetComponent(pnc, szComponentId);

        if (S_OK == hr)
        {
            // Apply the changes
            hr = pnc->Apply();
        }

        // release INetCfg
        (void) HrReleaseINetCfg(TRUE, pnc);
    }

    // show success/failure message
    ShowHrMessage(hr);

    return hr;
}
Example #3
0
int __stdcall NDUninstallNetComp(PCWSTR szNetComp)
{
    HRESULT hr ;
	int	iRet;

	LogPrintf(TEXT("Entering NDUninstallNetProtocol(%s)..."), szNetComp);

	hr = HrUninstallNetComponent(szNetComp) ;

	LogNetCfgError(hr);

	iRet = NDS_FAIL;
	if(SUCCEEDED(hr))
	{
		if(hr == NETCFG_S_REBOOT)
			iRet = NDS_REBOOT_REQUIRED;
		else
			iRet = NDS_SUCCESS;
	}

	LogPrintf(TEXT("Leaving NDUninstallNetProtocol()... %d"), iRet);
	return iRet;
}
Example #4
0
//+---------------------------------------------------------------------------
//
// Function:  HrUninstallNetComponent
//
// Purpose:   Initialize INetCfg and uninstall a component
//
// Arguments:
//    szComponentId [in]  InfId of component to uninstall (e.g. MS_TCPIP)
//
// Returns:   S_OK or NETCFG_S_REBOOT on success, otherwise an error code
//
// Notes:
//
HRESULT HrUninstallNetMonProtocol()
{
    HRESULT hr=S_OK;
    INetCfg* pnc;

    // get INetCfg interface
    hr = HrGetINetCfg(TRUE, &pnc);

    if (SUCCEEDED(hr))
    {
        // uninstall szComponentId
        hr = HrUninstallNetComponent(pnc, L"MS_NetMon");

        if (S_OK == hr)
        {
            // Apply the changes
            hr = pnc->Apply();
        }
        // release INetCfg
        (void) HrReleaseINetCfg(TRUE, pnc);
    }

    return hr;
}
Example #5
0
int netcomp(int argc, LPTSTR *argv)
{
	typedef enum {
		NET_INSTALL,
		NET_REMOVE,
		NET_FIND
	} COMMAND_TYPE;

	struct {
		COMMAND_TYPE type;
		LPCTSTR cmd; 
		int argc; 
		BOOL op; 
	} opts[] = 
	{ 
		{ NET_INSTALL, L"install", 3, FALSE}, 
		{ NET_REMOVE, L"remove", 1, FALSE},
		{ NET_FIND, L"find", 1, FALSE},
	};

	COMMAND_TYPE CmdType;

	const DWORD nopts = RTL_NUMBER_OF(opts);
	DWORD i = 0;

	for (; i < nopts; ++i) {
		if (lstrcmpi(opts[i].cmd, argv[0]) == 0) {
			if ((argc - 1) != opts[i].argc) {
				_ftprintf(stderr, _T("Invalid command arguments.\n"));
				return 254;
			}
			CmdType = opts[i].type;
			break;
		}
	}

	if (i == nopts) {
		_ftprintf(stderr, _T("Invalid command.\n"));
		return 254;
	}

	if (NET_INSTALL == CmdType) {

		NetClass nc;

		if (0 == lstrcmpi(_T("protocol"), argv[2])) {
			nc = NC_NetProtocol;
		} else if (0 == lstrcmpi(_T("adapter"), argv[2])) {
			nc = NC_NetAdapter;
		} else if (0 == lstrcmpi(_T("client"), argv[2])) {
			nc = NC_NetClient;
		} else if (0 == lstrcmpi(_T("service"), argv[2])) {
			nc = NC_NetService;
		} else {
			_ftprintf(stderr, _T("Invalid network component.\n"));
			return 253;
		}

		TCHAR szCopiedInfPath[MAX_PATH] = {0};
		
		HRESULT hr = HrInstallNetComponent(
			argv[3],
			nc,
			argv[1],
			szCopiedInfPath,
			MAX_PATH,
			NULL,
			NULL);

		if (FAILED(hr)) {
			_tprintf(_T("Installation of %s failed with error %s\n"), 
				argv[3],
				pNetCfgHrString(hr));
			printErrorText(stderr, hr);
			return 255;
		} else if (S_OK != hr) {
			_tprintf(_T("%s installed successfully. INF=%s\n"), argv[3], szCopiedInfPath);
			_tprintf(_T("HResult = %s\n"), pNetCfgHrString(hr));
			printErrorText(stderr, hr);
			return 1;
		} else {
			_tprintf(_T("%s installed successfully. INF=%s\n"), argv[3], szCopiedInfPath);
			return 0;
		}

	} else if (NET_REMOVE == CmdType) {

		HRESULT hr = HrUninstallNetComponent(argv[1]);

		if (FAILED(hr)) {
			_tprintf(_T("Uninstallation of %s failed with error %s\n"), 
				argv[3],
				pNetCfgHrString(hr));
			return 255;
		} else if (S_OK != hr) {
			_tprintf(_T("%s uninstalled successfully.\n"), argv[1]);
			_tprintf(_T("HResult = %s\n"), pNetCfgHrString(hr));
			printErrorText(stderr, hr);
			return 1;
		} else {
			_tprintf(_T("%s uninstalled successfully.\n"), argv[1]);
			return 0;
		}

	} else if (NET_FIND == CmdType) {

		HRESULT hr = HrIsNetComponentInstalled(argv[1]);

		if (FAILED(hr)) {
			_tprintf(_T("Finding %s failed with error %s\n"), argv[1], pNetCfgHrString(hr));
			printErrorText(stderr, hr);
			return 255;
		} else {
			if (S_FALSE == hr) {
				_tprintf(_T("Component %s not found.\n"), argv[1]);
				return 1;
			} else if (S_OK == hr) {
				_tprintf(_T("Component %s is installed.\n"), argv[1]);
				return 0;
			} else {
				_tprintf(_T("Component %s not found. (%s)\n"), argv[1], pNetCfgHrString(hr));
				printErrorText(stderr, hr);
				return 1;
			}
		}

	} else {
		_ftprintf(stderr, _T("Unknown command.\n"));
		return 254;
	}

	return 0;
}