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