llipif0.h
Go to the documentation of this file.00001
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
#ifndef LLIPIF0_INCLUDED
00021
#define LLIPIF0_INCLUDED
00022
00023
00024 typedef void (__stdcall *
IPRcvRtn)(
void *,
void *, uint , uint ,
NDIS_HANDLE , uint,
00025 uint);
00026 typedef void (__stdcall *
IPTDCmpltRtn)(
void *,
PNDIS_PACKET ,
NDIS_STATUS , uint );
00027 typedef void (__stdcall *
IPTxCmpltRtn)(
void *,
PNDIS_PACKET ,
NDIS_STATUS );
00028 typedef void (__stdcall *
IPStatusRtn)(
void *, uint,
void *, uint);
00029 typedef void (__stdcall *
IPRcvCmpltRtn)(
void);
00030
00031 typedef int (__stdcall *
LLIPRegRtn)(
PNDIS_STRING,
void *,
IPRcvRtn,
IPTxCmpltRtn,
00032
IPStatusRtn,
IPTDCmpltRtn,
IPRcvCmpltRtn,
struct LLIPBindInfo *, uint);
00033
00034 #define LLIP_ADDR_LOCAL 0
00035 #define LLIP_ADDR_MCAST 1
00036 #define LLIP_ADDR_BCAST 2
00037 #define LLIP_ADDR_PARP 4
00038
00039
00040 struct LLIPBindInfo {
00041 void *
lip_context;
00042 uint
lip_mss;
00043 uint
lip_speed;
00044 uint
lip_index;
00045
NDIS_STATUS (__stdcall *lip_transmit)(
void *,
PNDIS_PACKET,
IPAddr, RouteCacheEntry *);
00046 NDIS_STATUS (__stdcall *lip_transfer)(
void *,
NDIS_HANDLE, uint, uint, uint,
PNDIS_PACKET,
00047 uint *);
00048 void (__stdcall *lip_close)(
void *);
00049 uint (__stdcall *lip_addaddr)(
void *, uint,
IPAddr,
IPMask,
void *);
00050 uint (__stdcall *lip_deladdr)(
void *, uint,
IPAddr,
IPMask);
00051 void (__stdcall *lip_invalidate)(
void *, RouteCacheEntry *);
00052 void (__stdcall *lip_open)(
void *);
00053 int (__stdcall *lip_qinfo)(
void *,
struct TDIObjectID *,
PNDIS_BUFFER,
00054 uint *,
void *);
00055 int (__stdcall *lip_setinfo)(
void *,
struct TDIObjectID *,
void *, uint);
00056
int (__stdcall *lip_getelist)(
void *,
void *, uint *);
00057 uint
lip_flags;
00058 uint
lip_addrlen;
00059 uchar *
lip_addr;
00060 };
00061
00062 #define LIP_COPY_FLAG 1 // Copy lookahead flag.
00063 #define LIP_P2P_FLAG 2 // Interface is point to point
00064
00065 typedef struct LLIPBindInfo LLIPBindInfo;
00066
00067
00068 #define LLIP_STATUS_MTU_CHANGE 1
00069 #define LLIP_STATUS_SPEED_CHANGE 2
00070 #define LLIP_STATUS_ADDR_MTU_CHANGE 3
00071
00072
00073 struct LLIPMTUChange {
00074 uint
lmc_mtu;
00075 };
00076
00077 typedef struct LLIPMTUChange LLIPMTUChange;
00078
00079
00080 struct LLIPSpeedChange {
00081 uint
lsc_speed;
00082 };
00083
00084 typedef struct LLIPSpeedChange LLIPSpeedChange;
00085
00086
00087 struct LLIPAddrMTUChange {
00088 uint
lam_mtu;
00089 uint
lam_addr;
00090 };
00091
00092 typedef struct LLIPAddrMTUChange LLIPAddrMTUChange;
00093
00094
#ifdef NT
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
typedef struct llipif_registration_data {
00110
LLIPRegRtn RegistrationFunction;
00111 } LLIPIF_REGISTRATION_DATA;
00112
00113
00114
extern IP_STATUS IPAddInterface(PNDIS_STRING ConfigName,
void *PNP,
00115
void *Context, LLIPRegRtn RegRtn, LLIPBindInfo *BindInfo);
00116
extern void IPDelInterface(
void *Context);
00117
00118
00119
00120
typedef IP_STATUS (*IPAddInterfacePtr)(
PNDIS_STRING ConfigName,
00121
void *PNPContext,
00122
void *Context,
00123
LLIPRegRtn RegRtn,
00124
LLIPBindInfo *BindInfo);
00125
00126
typedef IP_STATUS (*IPDelInterfacePtr)(
void *Context) ;
00127
00128
00129
00130
typedef struct ip_get_arp_pointers {
00131 IPAddInterfacePtr IPAddInterface ;
00132 IPDelInterfacePtr IPDelInterface ;
00133 } IP_GET_PNP_ARP_POINTERS, *PIP_GET_PNP_ARP_POINTERS ;
00134
00135
00136
#define FSCTL_LLIPIF_BASE FILE_DEVICE_NETWORK
00137
00138
#define _LLIPIF_CTL_CODE(function, method, access) \
00139
CTL_CODE(FSCTL_LLIPIF_BASE, function, method, access)
00140
00141
00142
#define IOCTL_LLIPIF_REGISTER \
00143
_LLIPIF_CTL_CODE(0, METHOD_BUFFERED, FILE_ANY_ACCESS)
00144
00145
#endif // NT
00146
00147
00148
#endif // LLIPIF0_INCLUDED
Generated on Sat May 15 19:40:38 2004 for test by
1.3.7