69 lines
1.4 KiB
C++
69 lines
1.4 KiB
C++
//
|
|
// NetMisc.cpp
|
|
//
|
|
// Networking APIs that don't fit into any of the other big buckets
|
|
//
|
|
// History:
|
|
//
|
|
// 10/21/1999 KenSh Created (adapted from JetNet source code)
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "NetConn.h"
|
|
#include "theapp.h"
|
|
|
|
|
|
|
|
static const LPCTSTR c_rgUserLevelVxD[] = { _T("FILESEC"), _T("MSSP") };
|
|
|
|
BOOL WINAPI IsAccessControlUserLevel()
|
|
{
|
|
CRegistry reg;
|
|
|
|
for (int i = 0; i < _countof(c_rgUserLevelVxD); i++)
|
|
{
|
|
if (reg.OpenKey(HKEY_LOCAL_MACHINE, _T("System\\CurrentControlSet\\Services\\VxD"), KEY_READ))
|
|
{
|
|
if (reg.OpenSubKey(c_rgUserLevelVxD[i]))
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
if (reg.OpenKey(HKEY_LOCAL_MACHINE, _T("Security\\Provider"), KEY_QUERY_VALUE))
|
|
{
|
|
DWORD dwPlatformType;
|
|
if (reg.QueryDwordValue(_T("Platform_Type"), &dwPlatformType))
|
|
{
|
|
if (dwPlatformType != 0)
|
|
return TRUE;
|
|
}
|
|
}
|
|
|
|
return FALSE;
|
|
}
|
|
|
|
HRESULT WINAPI DisableUserLevelAccessControl()
|
|
{
|
|
HRESULT hr = NETCONN_SUCCESS;
|
|
|
|
CRegistry reg;
|
|
|
|
for (int i = 0; i < _countof(c_rgUserLevelVxD); i++)
|
|
{
|
|
reg.OpenKey(HKEY_LOCAL_MACHINE, _T("System\\CurrentControlSet\\Services\\VxD"));
|
|
if (ERROR_SUCCESS == RegDeleteKeyAndSubKeys(reg.m_hKey, c_rgUserLevelVxD[i]))
|
|
hr = NETCONN_NEED_RESTART;
|
|
}
|
|
|
|
reg.OpenKey(HKEY_LOCAL_MACHINE, _T("Security\\Provider"), KEY_SET_VALUE);
|
|
DWORD dwPlatformType = 0;
|
|
reg.SetBinaryValue(_T("Platform_Type"), &dwPlatformType, sizeof(DWORD));
|
|
|
|
return hr;
|
|
}
|
|
|
|
HRESULT WINAPI IcsUninstall(void)
|
|
{
|
|
return IcsUninstall16();
|
|
}
|