27 #define TCPOPT_END_OF_LIST 0x0 28 #define TCPOPT_NO_OPERATION 0x1 29 #define TCPOPT_MAX_SEG_SIZE 0x2 31 #define TCPOPTLEN_MAX_SEG_SIZE 0x4 34 #define TCP_DATA_OFFSET(DataOffset)(((DataOffset) & 0xF0) >> (4-2)) 62 #define TCP_MIN_RETRANSMISSION_TIMEOUT 1*1000 65 #define TCP_MAX_RETRANSMISSION_TIMEOUT 1*60*1000 68 #define TCP_ALPHA_RETRANSMISSION_TIMEOUT(x)(((x)*8)/10) 71 #define TCP_BETA_RETRANSMISSION_TIMEOUT(x)(((x)*16)/10) 82 #define SEL_FINOUT 512 89 #define SRF_URG TCP_URG 90 #define SRF_ACK TCP_ACK 91 #define SRF_PSH TCP_PSH 92 #define SRF_RST TCP_RST 93 #define SRF_SYN TCP_SYN 94 #define SRF_FIN TCP_FIN 124 ULONG SegmentLength);
NTSTATUS TCPConnect(PCONNECTION_ENDPOINT Connection, PTDI_CONNECTION_INFORMATION ConnInfo, PTDI_CONNECTION_INFORMATION ReturnInfo, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
VOID FlushListenQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status)
LONG TCP_IPIdentification
struct TCPv4_HEADER TCPv4_HEADER
VOID TCPFreeSegment(PTCP_SEGMENT Segment)
NTSTATUS TCPGetSocketStatus(PCONNECTION_ENDPOINT Connection, PULONG State)
NTSTATUS TCPListen(PCONNECTION_ENDPOINT Connection, UINT Backlog)
NTSTATUS TCPReceiveData(PCONNECTION_ENDPOINT Connection, PNDIS_BUFFER Buffer, ULONG ReceiveLength, PULONG BytesReceived, ULONG ReceiveFlags, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
NTSTATUS TCPSendData(PCONNECTION_ENDPOINT Connection, PCHAR Buffer, ULONG DataSize, PULONG DataUsed, ULONG Flags, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
BOOLEAN TCPAbortListenForSocket(PCONNECTION_ENDPOINT Listener, PCONNECTION_ENDPOINT Connection)
VOID HandleSignalledConnection(PCONNECTION_ENDPOINT Connection)
NTSTATUS TCPSocket(PCONNECTION_ENDPOINT Connection, UINT Family, UINT Type, UINT Proto)
VOID TCPFreePort(const UINT Port)
_In_ USHORT _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR _Reserved_ ULONG _In_opt_ PVOID SocketContext
NTSTATUS TCPCheckPeerForAccept(PVOID Context, PTDI_REQUEST_KERNEL Request)
struct _SLEEPING_THREAD * PSLEEPING_THREAD
VOID FlushReceiveQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status)
VOID FlushAllQueues(PCONNECTION_ENDPOINT Connection, NTSTATUS Status)
NTSTATUS TCPGetSockAddress(PCONNECTION_ENDPOINT Connection, PTRANSPORT_ADDRESS TransportAddress, BOOLEAN RemoteAddress)
NTSTATUS TCPClose(PCONNECTION_ENDPOINT Connection)
VOID TCPUpdateInterfaceLinkStatus(PIP_INTERFACE IF)
pRequest Complete(RequestStatus)
NTSTATUS TCPAccept(PTDI_REQUEST Request, PCONNECTION_ENDPOINT Listener, PCONNECTION_ENDPOINT Connection, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
struct TCPv4_HEADER * PTCPv4_HEADER
UINT TCPAllocatePort(const UINT HintPort)
VOID TCPAddSegment(PCONNECTION_ENDPOINT Connection, PTCP_SEGMENT Segment, PULONG Acknowledged)
VOID(* PTCP_COMPLETION_ROUTINE)(PVOID Context, NTSTATUS Status, ULONG Count)
VOID FlushShutdownQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status)
VOID FlushSendQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status)
_Must_inspect_result_ _In_ ULONG Flags
struct _CLIENT_DATA * PCLIENT_DATA
PTCP_SEGMENT TCPCreateSegment(PIP_PACKET IPPacket, PTCPv4_HEADER TCPHeader, ULONG SegmentLength)
struct TCPv4_PSEUDO_HEADER * PTCPv4_PSEUDO_HEADER
struct _CLIENT_DATA CLIENT_DATA
VOID FlushConnectQueue(PCONNECTION_ENDPOINT Connection, const NTSTATUS Status)
NTSTATUS TCPTranslateError(const INT8 err)
NTSTATUS TCPStartup(VOID)
void LibTCPDumpPcb(PVOID SocketContext)
struct TCPv4_PSEUDO_HEADER TCPv4_PSEUDO_HEADER
NTSTATUS TCPDisconnect(PCONNECTION_ENDPOINT Connection, UINT Flags, PLARGE_INTEGER Timeout, PTDI_CONNECTION_INFORMATION ConnInfo, PTDI_CONNECTION_INFORMATION ReturnInfo, PTCP_COMPLETION_ROUTINE Complete, PVOID Context)
NTSTATUS TCPSetNoDelay(PCONNECTION_ENDPOINT Connection, BOOLEAN Set)
BOOLEAN TCPRemoveIRP(PCONNECTION_ENDPOINT Connection, PIRP Irp)
struct tagContext Context
VOID CompleteBucket(PCONNECTION_ENDPOINT Connection, PTDI_BUCKET Bucket, const BOOLEAN Synchronous)
VOID TCPFreeConnectionEndpoint(PCONNECTION_ENDPOINT Connection)
NTSTATUS TCPShutdown(VOID)
VOID TCPUpdateInterfaceIPInformation(PIP_INTERFACE IF)
PCONNECTION_ENDPOINT TCPAllocateConnectionEndpoint(PVOID ClientContext)
_In_ NDIS_STATUS _In_ ULONG _In_ USHORT _In_opt_ PVOID _In_ ULONG DataSize
struct _SLEEPING_THREAD SLEEPING_THREAD
_Must_inspect_result_ _In_ ULONG _In_ PSOCKADDR _In_ PSOCKADDR RemoteAddress