windows-nt/Source/XPSP1/NT/net/rras/netsh/if/ifip.h

281 lines
6.6 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//=============================================================================
// Copyright (c) 1999 Microsoft Corporation
// File: ifip.h
//
// Author: K.S.Lokesh (lokeshs@) 8-1-99
//=============================================================================
#ifndef __IFIP_H
#define __IFIP_H
#define DBG1 0
//kslksl
#define TCP_XMT_CHECKSUM_OFFLOAD 0x00000001
#define IP_XMT_CHECKSUM_OFFLOAD 0x00000002
#define TCP_RCV_CHECKSUM_OFFLOAD 0x00000004
#define IP_RCV_CHECKSUM_OFFLOAD 0x00000008
#define TCP_LARGE_SEND_OFFLOAD 0x00000010
//
// IPSEC General Xmit\Recv capabilities
//
#define IPSEC_OFFLOAD_CRYPTO_ONLY 0x00000020 // Raw crypto mode supported
#define IPSEC_OFFLOAD_AH_ESP 0x00000040 // Combined AH+ESP supported
#define IPSEC_OFFLOAD_TPT_TUNNEL 0x00000080 // Combined Tpt+Tunnel supported
#define IPSEC_OFFLOAD_V4_OPTIONS 0x00000100 // IPV4 Options supported
#define IPSEC_OFFLOAD_QUERY_SPI 0x00000200 // Get SPI supported
//
// IPSEC AH Xmit\Recv capabilities
//
#define IPSEC_OFFLOAD_AH_XMT 0x00000400 // IPSEC supported on Xmit
#define IPSEC_OFFLOAD_AH_RCV 0x00000800 // IPSEC supported on Rcv
#define IPSEC_OFFLOAD_AH_TPT 0x00001000 // IPSEC transport mode supported
#define IPSEC_OFFLOAD_AH_TUNNEL 0x00002000 // IPSEC tunnel mode supported
#define IPSEC_OFFLOAD_AH_MD5 0x00004000 // MD5 supported as AH and ESP algo
#define IPSEC_OFFLOAD_AH_SHA_1 0x00008000 // SHA_1 supported as AH and ESP algo
//
// IPSEC ESP Xmit\Recv capabilities
//
#define IPSEC_OFFLOAD_ESP_XMT 0x00010000 // IPSEC supported on Xmit
#define IPSEC_OFFLOAD_ESP_RCV 0x00020000 // IPSEC supported on Rcv
#define IPSEC_OFFLOAD_ESP_TPT 0x00040000 // IPSEC transport mode supported
#define IPSEC_OFFLOAD_ESP_TUNNEL 0x00080000 // IPSEC tunnel mode supported
#define IPSEC_OFFLOAD_ESP_DES 0x00100000 // DES supported as ESP algo
#define IPSEC_OFFLOAD_ESP_DES_40 0x00200000 // DES40 supported as ESP algo
#define IPSEC_OFFLOAD_ESP_3_DES 0x00400000 // 3DES supported as ESP algo
#define IPSEC_OFFLOAD_ESP_NONE 0x00800000 // Null ESP supported as ESP algo
#define IFIP_GUID \
{0x89d00931, 0x1e00, 0x11d3, {0x87, 0x38, 0x00, 0x60, 0x08, 0x37, 0xc7, 0x75} }
#define IFIP_VERSION 1
#define ADD_FLAG 1
#define SET_FLAG 2
#define DEL_FLAG 4
#define RETURN_ERROR_OKAY(dwErr) \
return (dwErr) == NO_ERROR? ERROR_OKAY : dwErr;
#if DBG1
#define DEBUG_PRINT_CONFIG(pRemoteIpInfo) {\
DisplayMessage(g_hModule, MSG_DEBUG_HDR);\
DisplayMessage(g_hModule,\
MSG_IPADDR_LIST,\
(pRemoteIpInfo)->pszwIpAddrList,\
(pRemoteIpInfo)->pszwSubnetMaskList);\
\
DisplayMessage(g_hModule,\
MSG_OPTIONS_LIST,\
(pRemoteIpInfo)->pszwOptionList);\
DisplayMessage(g_hModule, MSG_DEBUG_HDR);\
\
}
#else
#define DEBUG_PRINT_CONFIG(pRemoteIpInfo)
#endif
typedef enum _DISPLAY_TYPE {
TYPE_ADDR=0x01,
TYPE_GATEWAY=0x02,
TYPE_IPADDR=0x03,
TYPE_DNS=0x04,
TYPE_WINS=0x08,
TYPE_IFMETRIC=0x10,
TYPE_DDNS=0x20,
TYPE_IP_ALL=0xff,
TYPE_OFFLOAD=0x0100
} DISPLAY_TYPE;
typedef enum _REGISTER_MODE {
REGISTER_NONE = 0,
REGISTER_PRIMARY = 1,
REGISTER_BOTH = 3,
REGISTER_UNCHANGED = 0xff
} REGISTER_MODE;
NS_HELPER_START_FN IfIpStartHelper;
NS_CONTEXT_DUMP_FN IfIpDump;
FN_HANDLE_CMD IfIpHandleSetAddress;
FN_HANDLE_CMD IfIpHandleSetDns;
FN_HANDLE_CMD IfIpHandleSetWins;
FN_HANDLE_CMD IfIpHandleAddAddress;
FN_HANDLE_CMD IfIpHandleAddDns;
FN_HANDLE_CMD IfIpHandleAddWins;
FN_HANDLE_CMD IfIpHandleSetLmhosts;
DWORD
IfIpAddMany(
IN PWCHAR *ppwcArguments,
IN DWORD dwCurrentIndex,
IN DWORD dwArgCount,
IN BOOL *pbDone,
IN DWORD Type
);
DWORD
IfIpSetDhcpModeMany(
LPCWSTR pwszIfFriendlyName,
GUID *pGuid,
DWORD dwRegisterMode,
DISPLAY_TYPE Type
);
DWORD
IfIpAddSetAddress(
LPCWSTR pwszIfFriendlyName,
GUID *pGuid,
LPCWSTR pwszAddr,
LPCWSTR pwszMask,
DWORD Flags
);
DWORD
IfIpAddSetGateway(
LPCWSTR pwszIfFriendlyName,
GUID *pGuid,
LPCWSTR pwszGateway,
LPCWSTR pwszGatewayMetric,
DWORD Flags
);
FN_HANDLE_CMD IfIpHandleDelAddress;
FN_HANDLE_CMD IfIpHandleDelDns;
FN_HANDLE_CMD IfIpHandleDelWins;
DWORD
IfIpDelMany(
IN PWCHAR *ppwcArguments,
IN DWORD dwCurrentIndex,
IN DWORD dwArgCount,
IN BOOL *pbDone,
IN DISPLAY_TYPE Type
);
FN_HANDLE_CMD IfIpHandleShowConfig;
FN_HANDLE_CMD IfIpHandleShowAddress;
FN_HANDLE_CMD IfIpHandleShowOffload;
FN_HANDLE_CMD IfIpHandleShowDns;
FN_HANDLE_CMD IfIpHandleShowWins;
FN_HANDLE_CMD IfIpHandleDelArpCache;
FN_HANDLE_CMD IfIpHandleReset;
DWORD
ShowInfoIpaddr(
ULONG IfIndex,
GUID *pGuid,
PWCHAR pFriendlyIfName
);
DWORD
IfIpShowMany(
IN LPCWSTR pwszMachineName,
IN PWCHAR *ppwcArguments,
IN DWORD dwCurrentIndex,
IN DWORD dwArgCount,
IN BOOL *pbDone,
IN DISPLAY_TYPE dtType
);
DWORD
IfIpShowAllInterfaceInfo(
LPCWSTR pwszMachineName,
DISPLAY_TYPE Type,
HANDLE hFile
);
DWORD
IfIpHandleDelIpaddrEx(
LPCWSTR wszIfFriendlyName,
GUID *pGuid,
LPCWSTR pwszIpAddr,
LPCWSTR pwszGateway,
ULONG Flags
);
DWORD
OpenDriver(
HANDLE *Handle,
LPWSTR DriverName
);
NTSTATUS
DoIoctl(
HANDLE Handle,
DWORD IoctlCode,
PVOID Request,
DWORD RequestSize,
PVOID Response,
PDWORD ResponseSize
);
DWORD
IfIpShowManyEx(
LPCWSTR pwszMachineName,
ULONG IfIndex,
PWCHAR wszIfFriendlyName,
GUID *guid,
DISPLAY_TYPE dtType,
HANDLE hFile
);
DWORD
IfIpShowManyExEx(
LPCWSTR pwszMachineName,
ULONG IfIndex,
PWCHAR pFriendlyIfName,
GUID *pGuid,
ULONG Flags,
HANDLE hFile
);
DWORD
IfIpShowInfoOffload(
ULONG IfIndex,
PWCHAR wszIfFriendlyName
);
DWORD
IfIpGetInfoOffload(
ULONG IfIndex,
PULONG Flags
);
DWORD
IfIpSetMany(
IN PWCHAR *ppwcArguments,
IN DWORD dwCurrentIndex,
IN DWORD dwArgCount,
IN BOOL *pbDone,
IN DWORD Type
);
DWORD
IfIpAddSetDelMany(
PWCHAR wszIfFriendlyName,
GUID *pGuid,
PWCHAR pwszAddress,
DWORD dwIndex,
DWORD dwRegisterMode,
DISPLAY_TYPE Type,
DWORD Flags
);
#endif