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.
166 lines
4.0 KiB
166 lines
4.0 KiB
//+---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1997.
|
|
//
|
|
// File: N M B A S E . H
|
|
//
|
|
// Contents: Base include file for netman.exe. Defines globals.
|
|
//
|
|
// Notes:
|
|
//
|
|
// Author: shaunco 15 Sep 1997
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
#pragma once
|
|
#include "netcon.h"
|
|
#include "netconp.h"
|
|
#include <atlbase.h>
|
|
#include "ncstl.h"
|
|
#include <map>
|
|
|
|
enum EVENT_MANAGER
|
|
{
|
|
INVALID_EVENTMGR = 0,
|
|
EVENTMGR_CONMAN
|
|
};
|
|
|
|
#define PersistDataLead 0x14
|
|
#define PersistDataTrail 0x05
|
|
|
|
typedef struct tagRegEntry
|
|
{
|
|
LPWSTR strKeyName;
|
|
LPWSTR strValueName;
|
|
DWORD dwType;
|
|
DWORD dwValue;
|
|
LPWSTR strValue;
|
|
BYTE* pbValue;
|
|
DWORD dwBinLen;
|
|
BOOL fMoreOnKey;
|
|
} REGENTRY;
|
|
|
|
typedef map<GUID, INetConnectionManager*> CLASSMANAGERMAP;
|
|
bool operator < (const GUID& rguid1, const GUID& rguid2);
|
|
|
|
enum RASREFTYPE
|
|
{
|
|
REF_INITIALIZE,
|
|
REF_REFERENCE,
|
|
REF_UNREFERENCE,
|
|
};
|
|
|
|
class CServiceModule : public CComModule
|
|
{
|
|
public:
|
|
VOID DllProcessAttach (IN HINSTANCE hinst) throw();
|
|
VOID DllProcessDetach (IN VOID) throw();
|
|
|
|
VOID ServiceMain (IN DWORD argc, IN LPCWSTR argv[]) throw();
|
|
DWORD DwHandler (IN DWORD dwControl,
|
|
IN DWORD dwEventType,
|
|
IN LPCVOID pEventData,
|
|
IN LPCVOID pContext);
|
|
VOID Run () throw();
|
|
VOID SetServiceStatus (IN DWORD dwState) throw();
|
|
VOID UpdateServiceStatus (IN BOOL fUpdateCheckpoint = TRUE) throw();
|
|
DWORD DwServiceStatus () throw() { return m_status.dwCurrentState; }
|
|
|
|
VOID ReferenceRasman (IN RASREFTYPE RefType) throw();
|
|
|
|
private:
|
|
static
|
|
DWORD
|
|
WINAPI TAKEOWNERSHIP
|
|
_DwHandler (
|
|
IN DWORD dwControl,
|
|
IN DWORD dwEventType,
|
|
IN WACKYAPI LPVOID pEventData,
|
|
IN WACKYAPI LPVOID pContext);
|
|
|
|
public:
|
|
HRESULT ServiceShutdown();
|
|
HRESULT ServiceStartup();
|
|
DWORD m_dwThreadID;
|
|
SERVICE_STATUS_HANDLE m_hStatus;
|
|
SERVICE_STATUS m_status;
|
|
BOOL m_fRasmanReferenced;
|
|
};
|
|
|
|
|
|
extern CServiceModule _Module;
|
|
#include <atlcom.h>
|
|
|
|
#include "ncatl.h"
|
|
#include "ncstring.h"
|
|
#include "nmclsid.h"
|
|
|
|
typedef LPCVOID PCSID;
|
|
|
|
enum CONMAN_EVENTTYPE
|
|
{
|
|
INVALID_TYPE = 0,
|
|
CONNECTION_ADDED,
|
|
CONNECTION_BANDWIDTH_CHANGE,
|
|
CONNECTION_DELETED,
|
|
CONNECTION_MODIFIED,
|
|
CONNECTION_RENAMED,
|
|
CONNECTION_STATUS_CHANGE,
|
|
REFRESH_ALL,
|
|
CONNECTION_ADDRESS_CHANGE,
|
|
CONNECTION_BALLOON_POPUP,
|
|
DISABLE_EVENTS
|
|
};
|
|
|
|
BOOL IsValidEventType(IN EVENT_MANAGER EventMgr, IN int EventType) throw();
|
|
|
|
// This LONG is incremented every time we get a notification that
|
|
// a RAS phonebook entry has been modified. It is reset to zero
|
|
// when the service is started. Wrap-around does not matter. It's
|
|
// purpose is to let a RAS connection object know if it's cache should
|
|
// be re-populated with current information.
|
|
//
|
|
extern LONG g_lRasEntryModifiedVersionEra;
|
|
|
|
VOID
|
|
LanEventNotify (
|
|
IN CONMAN_EVENTTYPE EventType,
|
|
IN INetConnection* pConn,
|
|
IN PCWSTR szwNewName,
|
|
IN const GUID * pguidConn) throw();
|
|
|
|
VOID
|
|
IncomingEventNotify (
|
|
IN CONMAN_EVENTTYPE EventType,
|
|
IN INetConnection* pConn,
|
|
IN PCWSTR szwNewName,
|
|
IN const GUID * pguidConn) throw();
|
|
|
|
STDAPI
|
|
RegisterSvrHelper();
|
|
|
|
STDAPI
|
|
CreateEAPOLKeys();
|
|
|
|
STDAPI
|
|
SetKeySecurity(
|
|
IN DWORD dwKeyIndex,
|
|
IN PCSID psidUserOrGroup,
|
|
IN ACCESS_MASK dwAccessMask);
|
|
|
|
VOID
|
|
NTAPI
|
|
DispatchEvents(
|
|
IN OUT LPVOID pUnused,
|
|
IN BOOLEAN TimerOrWaitFired) throw();
|
|
|
|
HRESULT
|
|
HrEnsureEventHandlerInitialized();
|
|
|
|
HRESULT
|
|
UninitializeEventHandler();
|
|
|
|
HRESULT
|
|
WINAPI
|
|
HrEnsureRegisteredWithNla();
|