- Move from using include guards to pragma once.
[reactos.git] / reactos / drivers / network / tcpip / include / transmit.h
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 PIP_TRANSMIT_COMPLETE Complete; /* Completion Routine */
29 PVOID Context; /* Completion Context */
30 } IPFRAGMENT_CONTEXT, *PIPFRAGMENT_CONTEXT;
31
32
33 NTSTATUS IPSendDatagram(PIP_PACKET IPPacket, PNEIGHBOR_CACHE_ENTRY NCE,
34 PIP_TRANSMIT_COMPLETE Complete, PVOID Context);
35
36 /* EOF */