1 /* 2 * COPYRIGHT: See COPYING in the top level directory 3 * PROJECT: ReactOS TCP/IP protocol driver 4 * FILE: include/transmit.h 5 * PURPOSE: Internet Protocol transmit prototypes 6 */ 7 8 #pragma once 9 10 typedef VOID (*PIP_TRANSMIT_COMPLETE)( PVOID Context, 11 PNDIS_PACKET Packet, 12 NDIS_STATUS Status ); 13 14 /* IP fragment context information */ 15 typedef struct IPFRAGMENT_CONTEXT { 16 struct IPFRAGMENT_CONTEXT *Next; /* Pointer to next in list */ 17 PNDIS_PACKET Datagram; /* Pointer to original NDIS packet */ 18 PVOID DatagramData; /* Pointer to datagram data */ 19 UINT HeaderSize; /* IP datagram header size */ 20 PNDIS_PACKET NdisPacket; /* Pointer to NDIS packet */ 21 PNDIS_BUFFER NdisBuffer; /* Pointer to NDIS buffer */ 22 PVOID Header; /* Pointer to IP header in fragment buffer */ 23 PVOID Data; /* Pointer to fragment data */ 24 UINT Position; /* Current fragment offset */ 25 UINT BytesLeft; /* Number of bytes left to send */ 26 UINT PathMTU; /* Path Maximum Transmission Unit */ 27 PNEIGHBOR_CACHE_ENTRY NCE; /* Pointer to NCE to use */ 28 KEVENT Event; /* Signalled when the transmission is complete */ 29 NDIS_STATUS Status; /* Status of the transmission */ 30 } IPFRAGMENT_CONTEXT, *PIPFRAGMENT_CONTEXT; 31 32 33 NTSTATUS IPSendDatagram(PIP_PACKET IPPacket, PNEIGHBOR_CACHE_ENTRY NCE); 34 35 /* EOF */ 36