/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS TCP/IP protocol driver * FILE: include/udp.h * PURPOSE: User Datagram Protocol definitions */ #pragma once #define UDP_STARTING_PORT 0x8000 #define UDP_DYNAMIC_PORTS 0x8000 /* UDPv4 header structure */ #include typedef struct UDP_HEADER { USHORT SourcePort; /* Source port */ USHORT DestPort; /* Destination port */ USHORT Length; /* Size of header and data */ USHORT Checksum; /* Checksum of datagram */ } UDP_HEADER, *PUDP_HEADER; /* UDPv4 pseudo header */ typedef struct UDP_PSEUDO_HEADER { ULONG SourceAddress; /* Source address */ ULONG DestAddress; /* Destination address */ UCHAR Zero; /* Reserved */ UCHAR Protocol; /* Protocol */ USHORT UDPLength; /* Size of UDP datagram */ } UDP_PSEUDO_HEADER, *PUDP_PSEUDO_HEADER; #include typedef struct UDP_STATISTICS { ULONG InputDatagrams; ULONG NumPorts; ULONG InputErrors; ULONG OutputDatagrams; ULONG NumAddresses; } UDP_STATISTICS, *PUDP_STATISTICS; extern UDP_STATISTICS UDPStats; VOID UDPSend( PVOID Context, PDATAGRAM_SEND_REQUEST SendRequest); NTSTATUS UDPSendDatagram( PADDRESS_FILE AddrFile, PTDI_CONNECTION_INFORMATION ConnInfo, PCHAR BufferData, ULONG DataSize, PULONG DataUsed ); VOID UDPReceive( PIP_INTERFACE Interface, PIP_PACKET IPPacket); NTSTATUS UDPStartup( VOID); NTSTATUS UDPShutdown( VOID); UINT UDPAllocatePort( UINT HintPort ); VOID UDPFreePort( UINT Port ); /* EOF */