Data Structures |
| struct | PIP_ADDRESS |
| struct | PIPv4_HEADER |
| struct | PIPv6_HEADER |
| union | PIP_HEADER |
| struct | PIP_PACKET |
| struct | PPACKET_CONTEXT |
| struct | PLLIP_BIND_INFO |
| struct | PSEND_RECV_STATS |
| struct | PIP_INTERFACE |
| struct | PIP_SET_ADDRESS |
Defines |
| #define | FOURCC(a, b, c, d) (((a)<<24)|((b)<<16)|((c)<<8)|(d)) |
| #define | IP_ADDRESS_V4 0x04 /* IPv4 style address */ |
| #define | IP_ADDRESS_V6 0x06 /* IPv6 style address */ |
| #define | IPv4_FRAGOFS_MASK 0x1FFF /* Fragment offset mask (host byte order) */ |
| #define | IPv4_MF_MASK 0x2000 /* More fragments (host byte order) */ |
| #define | IPv4_DF_MASK 0x4000 /* Don't fragment (host byte order) */ |
| #define | IPv4_MAX_HEADER_SIZE 60 |
| #define | IP_PACKET_FLAG_RAW 0x01 /* Raw IP packet */ |
| #define | PC(Packet) ((PPACKET_CONTEXT)(&Packet->ProtocolReserved)) |
| #define | ADE_UNICAST 0x01 |
| #define | ADE_BROADCAST 0x02 |
| #define | ADE_ADDRMASK 0x04 |
| #define | ADE_POINTOPOINT 0x10 |
| #define | ADE_MULTICAST 0x8000 |
| #define | IP_PROTOCOL_TABLE_SIZE 0x100 |
| #define | LOOPBACK_ADDRESS_IPv4 ((IPv4_RAW_ADDRESS)DH2N(0x7F000001)) |
| #define | LOOPBACK_BCASTADDR_IPv4 ((IPv4_RAW_ADDRESS)DH2N(0x7FFFFFFF)) |
| #define | LOOPBACK_ADDRMASK_IPv4 ((IPv4_RAW_ADDRESS)DH2N(0xFF000000)) |
| #define | IPPROTO_RAW 0 /* Raw IP */ |
| #define | IPPROTO_ICMP 1 /* Internet Control Message Protocol */ |
| #define | IPPROTO_IGMP 2 /* Internet Group Management Protocol */ |
| #define | IPPROTO_TCP 6 /* Transmission Control Protocol */ |
| #define | IPPROTO_UDP 17 /* User Datagram Protocol */ |
| #define | IP_TIMEOUT 1000 /* Timeout in milliseconds */ |
| #define | IP_DEFAULT_LINK_SPEED 10000 |
Typedefs |
| typedef VOID(* | OBJECT_FREE_ROUTINE )(PVOID Object) |
| typedef ULONG | IPv4_RAW_ADDRESS |
| typedef IPv4_RAW_ADDRESS * | PIPv4_RAW_ADDRESS |
| typedef USHORT | IPv6_RAW_ADDRESS [8] |
| typedef IPv6_RAW_ADDRESS * | PIPv6_RAW_ADDRESS |
| typedef VOID(* | PACKET_COMPLETION_ROUTINE )(PVOID Context, PNDIS_PACKET NdisPacket, NDIS_STATUS NdisStatus) |
| typedef VOID(* | LL_TRANSMIT_ROUTINE )(PVOID Context, PNDIS_PACKET NdisPacket, UINT Offset, PVOID LinkAddress, USHORT Type) |
| typedef VOID(* | IP_PROTOCOL_HANDLER )(PIP_INTERFACE Interface, PIP_PACKET IPPacket) |
Functions |
| PIP_PACKET | IPCreatePacket (ULONG Type) |
| PIP_PACKET | IPInitializePacket (PIP_PACKET IPPacket, ULONG Type) |
| PIP_INTERFACE | IPCreateInterface (PLLIP_BIND_INFO BindInfo) |
| VOID | IPAddInterfaceRoute (PIP_INTERFACE IF) |
| VOID | IPRemoveInterfaceRoute (PIP_INTERFACE IF) |
| VOID | IPDestroyInterface (PIP_INTERFACE IF) |
| BOOLEAN | IPRegisterInterface (PIP_INTERFACE IF) |
| VOID | IPUnregisterInterface (PIP_INTERFACE IF) |
| VOID NTAPI | IPTimeoutDpcFn (PKDPC Dpc, PVOID DeferredContext, PVOID SystemArgument1, PVOID SystemArgument2) |
| VOID | IPDispatchProtocol (PIP_INTERFACE Interface, PIP_PACKET IPPacket) |
| VOID | IPRegisterProtocol (UINT ProtocolNumber, IP_PROTOCOL_HANDLER Handler) |
| NTSTATUS | IPStartup (PUNICODE_STRING RegistryPath) |
| NTSTATUS | IPShutdown (VOID) |
Variables |
| LIST_ENTRY | InterfaceListHead |
| KSPIN_LOCK | InterfaceListLock |
| LIST_ENTRY | NetTableListHead |
| KSPIN_LOCK | NetTableListLock |