mirror of
https://github.com/reactos/reactos.git
synced 2024-09-04 17:49:15 +00:00
66 lines
1.5 KiB
C
66 lines
1.5 KiB
C
/*
|
|
* 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 <pshpack1.h>
|
|
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 <poppack.h>
|
|
|
|
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 */
|