242 lines
4.3 KiB
C
242 lines
4.3 KiB
C
/*++
|
||
|
||
Copyright (c) 1995-1997 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
clnetcfg.h
|
||
|
||
Abstract:
|
||
|
||
Network Configuration Engine definitions
|
||
|
||
Author:
|
||
|
||
Mike Massa (mikemas) 28-Feb-1998
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#ifndef _CLNETCFG_INCLUDED_
|
||
#define _CLNETCFG_INCLUDED_
|
||
|
||
|
||
#ifdef __cplusplus
|
||
extern "C" {
|
||
#endif
|
||
|
||
|
||
//
|
||
// Structures
|
||
//
|
||
|
||
//
|
||
// Network Configuration Entry Structure
|
||
// Identifies a network and a local interface.
|
||
//
|
||
typedef struct _CLNET_CONFIG_ENTRY {
|
||
LIST_ENTRY Linkage;
|
||
NM_NETWORK_INFO NetworkInfo;
|
||
BOOLEAN IsInterfaceInfoValid;
|
||
BOOLEAN UpdateNetworkName;
|
||
NM_INTERFACE_INFO2 InterfaceInfo;
|
||
|
||
// Fields used by setup
|
||
BOOL New;
|
||
BOOL IsPrimed;
|
||
LPWSTR PreviousNetworkName;
|
||
LIST_ENTRY PriorityLinkage;
|
||
|
||
} CLNET_CONFIG_ENTRY, *PCLNET_CONFIG_ENTRY;
|
||
|
||
|
||
//
|
||
// Configuration Lists Structure
|
||
// Contains the set of network configuration lists emitted by the
|
||
// configuration engine.
|
||
//
|
||
typedef struct _CLNET_CONFIG_LISTS {
|
||
LIST_ENTRY InputConfigList;
|
||
LIST_ENTRY DeletedInterfaceList;
|
||
LIST_ENTRY UpdatedInterfaceList;
|
||
LIST_ENTRY CreatedInterfaceList;
|
||
LIST_ENTRY CreatedNetworkList;
|
||
} CLNET_CONFIG_LISTS, *PCLNET_CONFIG_LISTS;
|
||
|
||
|
||
//
|
||
// Definitions for functions supplied by the consumer of the network
|
||
// configuration engine.
|
||
//
|
||
typedef
|
||
VOID
|
||
(*LPFN_CLNETPRINT)(
|
||
IN ULONG LogLevel,
|
||
IN PCHAR FormatString,
|
||
...
|
||
);
|
||
|
||
typedef
|
||
VOID
|
||
(*LPFN_CLNETLOGEVENT)(
|
||
IN DWORD LogLevel,
|
||
IN DWORD MessageId
|
||
);
|
||
|
||
typedef
|
||
VOID
|
||
(*LPFN_CLNETLOGEVENT1)(
|
||
IN DWORD LogLevel,
|
||
IN DWORD MessageId,
|
||
IN LPCWSTR Arg1
|
||
);
|
||
|
||
typedef
|
||
VOID
|
||
(*LPFN_CLNETLOGEVENT2)(
|
||
IN DWORD LogLevel,
|
||
IN DWORD MessageId,
|
||
IN LPCWSTR Arg1,
|
||
IN LPCWSTR Arg2
|
||
);
|
||
|
||
typedef
|
||
VOID
|
||
(*LPFN_CLNETLOGEVENT3)(
|
||
IN DWORD LogLevel,
|
||
IN DWORD MessageId,
|
||
IN LPCWSTR Arg1,
|
||
IN LPCWSTR Arg2,
|
||
IN LPCWSTR Arg3
|
||
);
|
||
|
||
|
||
//
|
||
// Exported Routines
|
||
//
|
||
VOID
|
||
ClNetInitialize(
|
||
IN LPFN_CLNETPRINT Print,
|
||
IN LPFN_CLNETLOGEVENT LogEvent,
|
||
IN LPFN_CLNETLOGEVENT1 LogEvent1,
|
||
IN LPFN_CLNETLOGEVENT2 LogEvent2,
|
||
IN LPFN_CLNETLOGEVENT3 LogEvent3
|
||
);
|
||
|
||
LPWSTR
|
||
ClNetCopyString(
|
||
IN LPWSTR SourceString,
|
||
IN BOOL RaiseExceptionOnError
|
||
);
|
||
|
||
VOID
|
||
ClNetInitializeConfigLists(
|
||
PCLNET_CONFIG_LISTS Lists
|
||
);
|
||
|
||
DWORD
|
||
ClNetConvertEnumsToConfigList(
|
||
IN PNM_NETWORK_ENUM * NetworkEnum,
|
||
IN PNM_INTERFACE_ENUM2 * InterfaceEnum,
|
||
IN LPWSTR LocalNodeId,
|
||
IN OUT PLIST_ENTRY ConfigList,
|
||
IN BOOLEAN DeleteEnums
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeNetworkEnum(
|
||
IN PNM_NETWORK_ENUM NetworkEnum
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeNetworkInfo(
|
||
IN PNM_NETWORK_INFO NetworkInfo
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeInterfaceEnum1(
|
||
IN PNM_INTERFACE_ENUM InterfaceEnum1
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeInterfaceEnum(
|
||
IN PNM_INTERFACE_ENUM2 InterfaceEnum
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeInterfaceInfo(
|
||
IN PNM_INTERFACE_INFO2 InterfaceInfo
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeNodeEnum1(
|
||
IN PNM_NODE_ENUM NodeEnum
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeNodeEnum(
|
||
IN PNM_NODE_ENUM2 NodeEnum
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeNodeInfo(
|
||
IN PNM_NODE_INFO2 NodeInfo
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeConfigEntry(
|
||
PCLNET_CONFIG_ENTRY ConfigEntry
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeConfigList(
|
||
IN PLIST_ENTRY ConfigList
|
||
);
|
||
|
||
VOID
|
||
ClNetFreeConfigLists(
|
||
PCLNET_CONFIG_LISTS Lists
|
||
);
|
||
|
||
LPWSTR
|
||
ClNetMakeInterfaceName(
|
||
LPWSTR Prefix, OPTIONAL
|
||
LPWSTR NodeName,
|
||
LPWSTR AdapterName
|
||
);
|
||
|
||
DWORD
|
||
ClNetConfigureNetworks(
|
||
IN LPWSTR LocalNodeId,
|
||
IN LPWSTR LocalNodeName,
|
||
IN LPWSTR DefaultClusnetEndpoint,
|
||
IN CLUSTER_NETWORK_ROLE DefaultNetworkRole,
|
||
IN BOOL NetNameHasPrecedence,
|
||
IN OUT PCLNET_CONFIG_LISTS ConfigLists,
|
||
IN OUT LPDWORD MatchedNetworkCount,
|
||
IN OUT LPDWORD NewNetworkCount
|
||
);
|
||
/*++
|
||
|
||
Notes:
|
||
|
||
Output interface lists must be processed in the following order to
|
||
guarantee correctness:
|
||
1 - RenamedInterfaceList
|
||
2 - DeletedInterfaceList
|
||
3 - UpdatedInterfaceList
|
||
4 - CreatedInterfaceList
|
||
5 - CreatedNetworkList
|
||
|
||
--*/
|
||
|
||
|
||
#ifdef __cplusplus
|
||
}
|
||
#endif
|
||
|
||
|
||
#endif // ifndef _CLNETCFG_INCLUDED_
|
||
|
||
|