mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
174 lines
3.9 KiB
174 lines
3.9 KiB
/*++
|
|
|
|
Copyright (c) 1999 Microsoft Corporation
|
|
|
|
|
|
Module Name:
|
|
|
|
init.h
|
|
|
|
Abstract:
|
|
|
|
This module contains all of the code to
|
|
initialize the variables for the WirelessPOl Service.
|
|
|
|
Author:
|
|
|
|
abhisheV 30-September-1999
|
|
taroonM 11/17/01
|
|
|
|
Environment
|
|
|
|
User Level: Win32
|
|
|
|
Revision History:
|
|
|
|
|
|
--*/
|
|
|
|
|
|
#include "precomp.h"
|
|
|
|
|
|
|
|
DWORD
|
|
InitSPDThruRegistry(
|
|
)
|
|
{
|
|
DWORD dwError = 0;
|
|
HKEY hKey = NULL;
|
|
DWORD dwtype = REG_DWORD;
|
|
DWORD dwsize = sizeof(DWORD);
|
|
|
|
|
|
dwError = RegOpenKey(
|
|
HKEY_LOCAL_MACHINE,
|
|
gpszLocPolicyAgent,
|
|
&hKey
|
|
);
|
|
if (dwError) {
|
|
gdwDSConnectivityCheck = DEFAULT_DS_CONNECTIVITY_CHECK;
|
|
dwError = ERROR_SUCCESS;
|
|
BAIL_ON_WIN32_SUCCESS(dwError);
|
|
}
|
|
|
|
//
|
|
// Get DS connectivity check polling interval in minutes.
|
|
//
|
|
|
|
dwError = RegQueryValueEx(
|
|
hKey,
|
|
L"DSConnectivityCheck",
|
|
0,
|
|
&dwtype,
|
|
(unsigned char *) &gdwDSConnectivityCheck,
|
|
&dwsize
|
|
);
|
|
if (dwError || !gdwDSConnectivityCheck) {
|
|
gdwDSConnectivityCheck = DEFAULT_DS_CONNECTIVITY_CHECK;
|
|
dwError = ERROR_SUCCESS;
|
|
}
|
|
|
|
success:
|
|
|
|
if (hKey) {
|
|
RegCloseKey(hKey);
|
|
}
|
|
|
|
return (dwError);
|
|
}
|
|
|
|
|
|
DWORD
|
|
InitSPDGlobals(
|
|
)
|
|
{
|
|
DWORD dwError = 0;
|
|
SECURITY_ATTRIBUTES SecurityAttributes;
|
|
LPWSTR pszLogFileName = L"WLogFile.txt";
|
|
|
|
//dwError = InitializeSPDSecurity(&gpSPDSD);
|
|
//BAIL_ON_WIN32_ERROR(dwError);
|
|
|
|
//InitializeCriticalSection(&gcSPDAuditSection);
|
|
//gbSPDAuditSection = TRUE;
|
|
|
|
gdwPolicyLoopStarted = 0;
|
|
gdwWirelessPolicyEngineInited = 0;
|
|
|
|
|
|
memset(&SecurityAttributes, 0, sizeof(SECURITY_ATTRIBUTES));
|
|
|
|
SecurityAttributes.nLength = sizeof(SecurityAttributes);
|
|
SecurityAttributes.lpSecurityDescriptor = NULL;
|
|
SecurityAttributes.bInheritHandle = TRUE;
|
|
|
|
ghNewDSPolicyEvent = CreateEvent(
|
|
&SecurityAttributes,
|
|
TRUE,
|
|
FALSE,
|
|
WIRELESS_NEW_DS_POLICY_EVENT
|
|
);
|
|
|
|
if (!ghNewDSPolicyEvent) {
|
|
dwError = GetLastError();
|
|
_WirelessDbg(TRC_ERR, "%d In ghNewDSPolicyEvent check ",dwError);
|
|
|
|
BAIL_ON_WIN32_ERROR(dwError);
|
|
}
|
|
|
|
//Taroon define POLICY RELOAD and CHANGE NOTIFY in some global location -- ipsec does it in ipsec.h
|
|
|
|
ghForcedPolicyReloadEvent = CreateEvent(
|
|
&SecurityAttributes,
|
|
TRUE,
|
|
FALSE,
|
|
NULL
|
|
);
|
|
if (!ghForcedPolicyReloadEvent) {
|
|
dwError = GetLastError();
|
|
BAIL_ON_WIN32_ERROR(dwError);
|
|
}
|
|
|
|
ghPolicyChangeNotifyEvent = CreateEvent(
|
|
NULL,
|
|
TRUE,
|
|
FALSE,
|
|
NULL
|
|
);
|
|
if (!ghPolicyChangeNotifyEvent) {
|
|
dwError = GetLastError();
|
|
BAIL_ON_WIN32_ERROR(dwError);
|
|
}
|
|
|
|
ghPolicyEngineStopEvent = CreateEvent(
|
|
&SecurityAttributes,
|
|
TRUE,
|
|
FALSE,
|
|
NULL
|
|
);
|
|
if (!ghPolicyEngineStopEvent) {
|
|
dwError = GetLastError();
|
|
BAIL_ON_WIN32_ERROR(dwError);
|
|
}
|
|
|
|
ghReApplyPolicy8021x = CreateEvent(
|
|
&SecurityAttributes,
|
|
TRUE,
|
|
FALSE,
|
|
NULL
|
|
);
|
|
if (!ghReApplyPolicy8021x) {
|
|
dwError = GetLastError();
|
|
BAIL_ON_WIN32_ERROR(dwError);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
error:
|
|
|
|
return (dwError);
|
|
}
|
|
|