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
 1.3.7