100 lines
2.1 KiB
C
100 lines
2.1 KiB
C
|
|
typedef struct _TRANSPORT_INFO
|
|
{
|
|
PRTR_INFO_BLOCK_HEADER pibhInfo;
|
|
BOOL bValid;
|
|
}TRANSPORT_INFO,*PTRANSPORT_INFO;
|
|
|
|
typedef struct _INTERFACE_STORE
|
|
{
|
|
LIST_ENTRY le;
|
|
PWCHAR pwszIfName;
|
|
PRTR_INFO_BLOCK_HEADER pibhInfo;
|
|
DWORD dwIfType;
|
|
BOOL bValid;
|
|
}INTERFACE_STORE,*PINTERFACE_STORE;
|
|
|
|
extern LIST_ENTRY g_leIfListHead;
|
|
extern TRANSPORT_INFO g_tiTransport;
|
|
|
|
|
|
#define FREE_BUFFER(pibh) \
|
|
{ \
|
|
HeapFree(GetProcessHeap(), \
|
|
0, \
|
|
pibh); \
|
|
pibh = NULL; \
|
|
}
|
|
|
|
DWORD
|
|
ValidateInterfaceInfo(
|
|
IN LPCWSTR pwszIfName,
|
|
OUT RTR_INFO_BLOCK_HEADER **ppInfo, OPTIONAL
|
|
OUT PDWORD pdwIfType, OPTIONAL
|
|
OUT INTERFACE_STORE **ppIfStore OPTIONAL
|
|
);
|
|
|
|
DWORD
|
|
ValidateGlobalInfo(
|
|
OUT RTR_INFO_BLOCK_HEADER **ppInfo
|
|
);
|
|
|
|
DWORD
|
|
GetGlobalInfo(
|
|
OUT RTR_INFO_BLOCK_HEADER **ppibhInfo
|
|
);
|
|
|
|
DWORD
|
|
SetGlobalInfo(
|
|
IN PRTR_INFO_BLOCK_HEADER pibhInfo
|
|
);
|
|
|
|
DWORD
|
|
GetInterfaceInfo(
|
|
IN LPCWSTR pwszIfName,
|
|
OUT PRTR_INFO_BLOCK_HEADER *ppibhInfo,
|
|
IN PMPR_INTERFACE_0 pMprIf0,
|
|
OUT PDWORD pdwIfType
|
|
);
|
|
|
|
DWORD
|
|
SetInterfaceInfo(
|
|
IN PRTR_INFO_BLOCK_HEADER pibhInfo,
|
|
IN LPCWSTR pwszIfName
|
|
);
|
|
|
|
DWORD
|
|
AddInterfaceInfo(
|
|
IN LPCWSTR pwszIfName
|
|
);
|
|
|
|
DWORD
|
|
DeleteInterfaceInfo(
|
|
IN LPCWSTR pwszIfName
|
|
);
|
|
|
|
DWORD
|
|
WINAPI
|
|
IpCommit(
|
|
IN DWORD dwAction
|
|
);
|
|
|
|
DWORD
|
|
CreateInterface(
|
|
IN LPCWSTR pwszFriendlyName,
|
|
IN LPCWSTR pwszGuidName,
|
|
IN DWORD dwIfType,
|
|
IN BOOL bCreateRouterIf
|
|
);
|
|
|
|
#define IFCLASS_LOOPBACK 1
|
|
#define IFCLASS_P2P 2
|
|
#define IFCLASS_BROADCAST 3
|
|
#define IFCLASS_NBMA 4
|
|
|
|
DWORD
|
|
GetInterfaceClass(
|
|
IN LPCWSTR pwszIfName,
|
|
OUT PDWORD pdwIfClass
|
|
);
|