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.
 
 
 
 
 
 

220 lines
3.1 KiB

/*++
Copyright (c) 1999 Microsoft Corporation
Module Name:
interface.h
Abstract:
This module contains all of the code prototypes to
drive the interface list management of IPSecSPD Service.
Author:
abhisheV 30-September-1999
Environment
User Level: Win32
Revision History:
--*/
#ifdef __cplusplus
extern "C" {
#endif
DWORD
CreateInterfaceList(
OUT PIPSEC_INTERFACE * ppIfListToCreate
);
VOID
DestroyInterfaceList(
IN PIPSEC_INTERFACE pIfListToDelete
);
DWORD
OnInterfaceChangeEvent(
);
VOID
FormObseleteAndNewIfLists(
IN PIPSEC_INTERFACE pIfList,
IN OUT PIPSEC_INTERFACE * ppExistingIfList,
OUT PIPSEC_INTERFACE * ppObseleteIfList,
OUT PIPSEC_INTERFACE * ppNewIfList
);
VOID
AddToInterfaceList(
IN PIPSEC_INTERFACE pIfListToAppend,
OUT PIPSEC_INTERFACE * ppOriginalIfList
);
VOID
MarkInterfaceListSuspect(
IN PIPSEC_INTERFACE pExistingIfList
);
VOID
DeleteObseleteInterfaces(
IN OUT PIPSEC_INTERFACE * ppExistingIfList,
OUT PIPSEC_INTERFACE * ppObseleteIfList
);
BOOL
InterfaceExistsInList(
IN PIPSEC_INTERFACE pTestIf,
IN PIPSEC_INTERFACE pExistingIfList,
OUT PIPSEC_INTERFACE * ppExistingIf
);
DWORD
GetInterfaceListFromStack(
OUT PIPSEC_INTERFACE * ppIfList
);
DWORD
GenerateInterfaces(
IN PMIB_IPADDRTABLE pMibIpAddrTable,
IN PMIB_IFTABLE pMibIfTable,
OUT PIPSEC_INTERFACE * ppIfList
);
PMIB_IFROW
GetMibIfRow(
IN PMIB_IFTABLE pMibIfTable,
IN DWORD dwIndex
);
DWORD
CreateNewInterface(
IN DWORD dwInterfaceType,
IN ULONG IpAddress,
IN DWORD dwIndex,
IN PMIB_IFROW pMibIfRow,
OUT PIPSEC_INTERFACE * ppNewInterface
);
BOOL
MatchInterfaceType(
IN DWORD dwIfListEntryIfType,
IN IF_TYPE dwFilterIfType
);
BOOL
IsLAN(
IN DWORD dwInterfaceType
);
BOOL
IsDialUp(
IN DWORD dwInterfaceType
);
DWORD
InitializeInterfaceChangeEvent(
);
DWORD
ResetInterfaceChangeEvent(
);
VOID
DestroyInterfaceChangeEvent(
);
HANDLE
GetInterfaceChangeEvent(
);
BOOL
IsMyAddress(
IN ULONG IpAddrToCheck,
IN ULONG IpAddrMask,
IN PIPSEC_INTERFACE pExistingIfList
);
VOID
PrintInterfaceList(
IN PIPSEC_INTERFACE pInterfaceList
);
DWORD
GetMatchingInterfaces(
IF_TYPE FilterInterfaceType,
PIPSEC_INTERFACE pExistingIfList,
MATCHING_ADDR ** ppMatchingAddresses,
DWORD * pdwAddrCnt
);
BOOL
InterfaceAddrIsLocal(
ULONG uIpAddr,
ULONG uIpAddrMask,
MATCHING_ADDR * pLocalAddresses,
DWORD dwAddrCnt
);
VOID
FreeIpsecInterface(
PIPSEC_INTERFACE pIpsecInterface
);
DWORD
CopyIpsecInterface(
PIPSEC_INTERFACE pIpsecIf,
PIPSEC_INTERFACE_INFO pIpsecInterface
);
VOID
FreeIpsecInterfaceInfos(
DWORD dwNumInterfaces,
PIPSEC_INTERFACE_INFO pIpsecInterfaces
);
DWORD
GetInterfaceName(
GUID gInterfaceID,
LPWSTR * ppszInterfaceName
);
#ifdef __cplusplus
}
#endif