Source code of Windows XP (NT5)
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.
|
|
/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
ipsecspd.c
Abstract:
This module contains all of the code to drive the WirelessPOl Service.
Author:
abhisheV 30-September-1999
Environment
User Level: Win32
Revision History:
--*/
#include "precomp.h"
DWORD WINAPI InitWirelessPolicy ( ) { DWORD dwError = 0;
InitMiscGlobals();
dwError = InitSPDThruRegistry(); BAIL_ON_WIN32_ERROR(dwError); dwError = InitSPDGlobals(); BAIL_ON_WIN32_ERROR(dwError);
_WirelessDbg(TRC_TRACK, "Starting the Service Wait Loop ");
InitializePolicyStateBlock( gpWirelessPolicyState );
// Intialize the policy Engine with Cached Wireless Policy
dwError = PlumbCachePolicy( gpWirelessPolicyState );
if (dwError) { gpWirelessPolicyState->dwCurrentState = POLL_STATE_INITIAL;
_WirelessDbg(TRC_STATE, "Policy State :: Initial State ");
gCurrentPollingInterval = gpWirelessPolicyState->DefaultPollingInterval; dwError = 0; // dont return this error
}
return(dwError); error:
WirelessSPDShutdown(dwError);
return(dwError); }
VOID WirelessSPDShutdown( IN DWORD dwErrorCode ) { /*
gbIKENotify = FALSE; */ DeletePolicyInformation(NULL);
ClearPolicyStateBlock( gpWirelessPolicyState );
ClearSPDGlobals(); return; }
VOID ClearSPDGlobals( ) { if (ghNewDSPolicyEvent) { CloseHandle(ghNewDSPolicyEvent); ghNewDSPolicyEvent = NULL; } if (ghForcedPolicyReloadEvent) { CloseHandle(ghForcedPolicyReloadEvent); ghForcedPolicyReloadEvent = NULL; }
if (ghPolicyChangeNotifyEvent) { CloseHandle(ghPolicyChangeNotifyEvent); ghPolicyChangeNotifyEvent = NULL; }
if (ghPolicyEngineStopEvent) { CloseHandle(ghPolicyEngineStopEvent); }
if (ghReApplyPolicy8021x) { CloseHandle(ghReApplyPolicy8021x); } /*
if (gbSPDAuditSection) { DeleteCriticalSection(&gcSPDAuditSection); } if (gpSPDSD) { LocalFree(gpSPDSD); gpSPDSD = NULL; } */ }
VOID InitMiscGlobals( ) { //
// Init globals that aren't cleared on service stop to make sure
// everything's in a known state on start. This allows us to
// stop/restart without having our DLL unloaded/reloaded first.
//
gpWirelessPolicyState = &gWirelessPolicyState; gCurrentPollingInterval = 0; gDefaultPollingInterval = 166*60; // (seconds).
gpszWirelessDSPolicyKey = L"SOFTWARE\\Policies\\Microsoft\\Windows\\Wireless\\GPTWirelessPolicy"; gpszWirelessCachePolicyKey = L"SOFTWARE\\Policies\\Microsoft\\Windows\\Wireless\\Policy\\Cache"; gpszLocPolicyAgent = L"SYSTEM\\CurrentControlSet\\Services\\WZCSVC"; gdwDSConnectivityCheck = 0; ghNewDSPolicyEvent = NULL; ghForcedPolicyReloadEvent = NULL; ghPolicyChangeNotifyEvent = NULL; return; }
|