|
|
/*++
Copyright (c) 1998-1999 Microsoft Corporation
Module Name:
ipmontr.h
Abstract: This file contains definitions which are needed by IPMONTR.DLL and all NetSh helper DLLs which register under it.
--*/
#ifndef _IPMONTR_H_
#define _IPMONTR_H_
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" { #endif
// {65EC23C0-D1B9-11d2-89E4-006008B0E5B9}
#define ROUTING_GUID \
{ 0x65ec23c0, 0xd1b9, 0x11d2, { 0x89, 0xe4, 0x0, 0x60, 0x8, 0xb0, 0xe5, 0xb9 } }
// {0705ECA0-7AAC-11d2-89DC-006008B0E5B9}
#define IPMONTR_GUID \
{ 0x705eca0, 0x7aac, 0x11d2, { 0x89, 0xdc, 0x0, 0x60, 0x8, 0xb0, 0xe5, 0xb9 } }
#define IPMON_VERSION_50 0x0005000
#define ADDR_LENGTH 24
#define ADDR_LEN 4
#define PRINT_IPADDR(x) \
((x)&0x000000ff),(((x)&0x0000ff00)>>8),(((x)&0x00ff0000)>>16),(((x)&0xff000000)>>24)
#define IP_TO_WSTR(str,addr) swprintf((str),L"%d.%d.%d.%d", \
(addr)[0], \ (addr)[1], \ (addr)[2], \ (addr)[3])
#ifdef UNICODE
#define MakeUnicodeIpAddr(ptszUnicode,pszAddr) \
MultiByteToWideChar(CP_ACP, \ 0, \ (pszAddr), \ -1, \ (ptszUnicode), \ ADDR_LENGTH) #else
#define MakeUnicodeIpAddr(ptszUnicode,pszAddr) \
strcpy((ptszUnicode),(pszAddr)) #endif //UNICODE
//
// API prototypes and structures used by them
//
typedef DWORD (WINAPI IP_CONTEXT_ENTRY_FN)( IN PWCHAR pwszMachine, IN PTCHAR *pptcArguments, IN DWORD dwArgCount, IN DWORD dwFlags, IN MIB_SERVER_HANDLE hMIBServer, OUT PWCHAR pwcNewContext );
typedef IP_CONTEXT_ENTRY_FN *PIP_CONTEXT_ENTRY_FN;
typedef DWORD (WINAPI ROUTING_CONTEXT_ENTRY_FN)( IN PWCHAR pwszRouter, IN PTCHAR *pptcArguments, IN DWORD dwArgCount, IN DWORD dwFlags, OUT PWCHAR pwcNewContext );
typedef ROUTING_CONTEXT_ENTRY_FN *PROUTING_CONTEXT_ENTRY_FN;
typedef DWORD (WINAPI ROUTING_CONTEXT_COMMIT_FN)( IN DWORD dwAction );
typedef ROUTING_CONTEXT_COMMIT_FN *PROUTING_CONTEXT_COMMIT_FN;
DWORD WINAPI IpmontrDeleteInfoBlockFromInterfaceInfo( IN PWCHAR pwszIfName, IN DWORD dwType );
DWORD WINAPI IpmontrDeleteInfoBlockFromGlobalInfo( IN DWORD dwType );
DWORD WINAPI IpmontrDeleteProtocol( IN DWORD dwProtoId );
DWORD WINAPI IpmontrGetInfoBlockFromGlobalInfo( IN DWORD dwType, OUT BYTE **ppbInfoBlk, OUT PDWORD pdwSize, OUT PDWORD pdwCount );
DWORD WINAPI IpmontrGetInfoBlockFromInterfaceInfo( IN PWCHAR pwszIfName, IN DWORD dwType, OUT BYTE **ppbInfoBlk, OUT PDWORD pdwSize, OUT PDWORD pdwCount, OUT PDWORD pdwIfType );
DWORD WINAPI IpmontrSetInfoBlockInGlobalInfo( IN DWORD dwType, IN PBYTE pbInfoBlk, IN DWORD dwSize, IN DWORD dwCount );
DWORD WINAPI IpmontrSetInfoBlockInInterfaceInfo( IN PWCHAR pwszIfName, IN DWORD dwType, IN PBYTE pbInfoBlk, IN DWORD dwSize, IN DWORD dwCount );
DWORD WINAPI IpmontrInterfaceEnum( OUT BYTE **ppb, OUT PDWORD pdwCount, OUT PDWORD pdwTotal );
typedef BOOL (WINAPI *PIM_ROUTER_STATUS)( VOID );
DWORD WINAPI IpmontrGetInterfaceType( IN PWCHAR pwszIfName, OUT PDWORD pdwIfType );
typedef DWORD (WINAPI *PIM_MATCH_ROUT_PROTO)( IN PWCHAR pwszToken );
DWORD WINAPI IpmontrGetFriendlyNameFromIfIndex( IN MIB_SERVER_HANDLE hMibServer, IN DWORD dwIfIndex, OUT PWCHAR pwszBuffer, IN DWORD dwBufferSize );
DWORD WINAPI IpmontrGetIfIndexFromFriendlyName( IN MIB_SERVER_HANDLE hMibServer, IN PWCHAR pwszBuffer, OUT PDWORD pdwIfIndex );
DWORD WINAPI IpmontrGetFriendlyNameFromIfName( IN PWCHAR pwszName, OUT PWCHAR pwszBuffer, IN PDWORD pdwBufSize );
DWORD WINAPI IpmontrGetIfNameFromFriendlyName( IN PWCHAR pwszName, OUT PWCHAR pwszBuffer, IN PDWORD pdwBufSize );
DWORD WINAPI IpmontrCreateInterface( IN PWCHAR pwszMachineName, IN PWCHAR pwszInterfaceName, IN DWORD dwLocalAddress, IN DWORD dwRemoteAddress, IN BYTE byTtl );
DWORD WINAPI IpmontrDeleteInterface( IN PWCHAR pwszMachineName, IN PWCHAR pwszInterfaceName );
NS_DISPLAY_PARENT_HELP DisplayRoutingHelp; NS_DISPLAY_PARENT_HELP DisplayIpHelp;
#if _MSC_VER >= 1200
#pragma warning(push)
#endif
#pragma warning(disable:4201)
typedef struct _IP_CONTEXT_ATTRIBUTES { #ifdef __cplusplus
NS_BASE_CONTEXT_ATTRIBUTES bca; #else
NS_BASE_CONTEXT_ATTRIBUTES; #endif
PIP_CONTEXT_ENTRY_FN pfnEntryFn; PVOID pfnCommitFn; // UNUSED
PNS_CONTEXT_DUMP_FN pfnDumpFn; PVOID pfnConnectFn; // UNUSED
PVOID pfnSubEntryFn; // UNUSED
PVOID pfnHelpFn; // UNUSED
}IP_CONTEXT_ATTRIBUTES, *PIP_CONTEXT_ATTRIBUTES;
typedef struct _ROUTING_CONTEXT_ATTRIBUTES { #ifdef __cplusplus
NS_BASE_CONTEXT_ATTRIBUTES bca; #else
NS_BASE_CONTEXT_ATTRIBUTES; #endif
PROUTING_CONTEXT_ENTRY_FN pfnEntryFn; PROUTING_CONTEXT_COMMIT_FN pfnCommitFn; PNS_CONTEXT_DUMP_FN pfnDumpFn; PVOID pfnConnectFn; // UNUSED
PVOID pfnSubEntryFn; // UNUSED
PNS_CONTEXT_HELP_FN pfnHelpFn;
}ROUTING_CONTEXT_ATTRIBUTES, *PROUTING_CONTEXT_ATTRIBUTES;
#if _MSC_VER >= 1200
#pragma warning(pop)
#else
#pragma warning(default:4201)
#endif
typedef DWORD (WINAPI *PIP_REGISTER_CONTEXT)( IN PIP_CONTEXT_ATTRIBUTES pAttributes );
#ifdef __cplusplus
} #endif
#endif // _IPMONTR_H_
|