Latest user-mode winsock code (ws2help.dll, rasadhlp.dll, mswsock.dll, ws2_32.dll). Doesn't compile/link/work in ROS. Commit only for archival purposes: mswsock -not- fully tested in windows yet (tests will begin tomorrow till the ~14th-20th.) - - Missing: wsock32.dll, msafd.dll, wshtcpip. Will be commited within some days...- - Missing ws2ifsl.sys, rasacd.sys. Will not be implemented at this point (part of kernel-mode and optional components)
Added: branches/alex-network-branch/reactos/drivers/net/ws2ifsl/
Added: branches/alex-network-branch/reactos/include/drivers/afd/afd.h
Added: branches/alex-network-branch/reactos/include/drivers/ws2ifsl/
Added: branches/alex-network-branch/reactos/include/drivers/ws2ifsl/wshdrv.h
Added: branches/alex-network-branch/reactos/include/libs/dnsapi/
Added: branches/alex-network-branch/reactos/include/libs/dnsapi/windnsp.h
Added: branches/alex-network-branch/reactos/include/libs/dnslib/
Added: branches/alex-network-branch/reactos/include/libs/dnslib/dnslib.h
Added: branches/alex-network-branch/reactos/include/libs/winsock/
Added: branches/alex-network-branch/reactos/include/libs/winsock/nsp_dns.h
Added: branches/alex-network-branch/reactos/include/libs/winsock/ws2help.h
Added: branches/alex-network-branch/reactos/include/libs/winsock/wsahelp.h
Added: branches/alex-network-branch/reactos/lib/dnslib/
Added: branches/alex-network-branch/reactos/lib/dnslib/addr.c
Added: branches/alex-network-branch/reactos/lib/dnslib/debug.c
Added: branches/alex-network-branch/reactos/lib/dnslib/dnsaddr.c
Added: branches/alex-network-branch/reactos/lib/dnslib/dnsutil.c
Added: branches/alex-network-branch/reactos/lib/dnslib/flatbuf.c
Added: branches/alex-network-branch/reactos/lib/dnslib/hostent.c
Added: branches/alex-network-branch/reactos/lib/dnslib/ip6.c
Added: branches/alex-network-branch/reactos/lib/dnslib/memory.c
Added: branches/alex-network-branch/reactos/lib/dnslib/name.c
Added: branches/alex-network-branch/reactos/lib/dnslib/precomp.h
Added: branches/alex-network-branch/reactos/lib/dnslib/print.c
Added: branches/alex-network-branch/reactos/lib/dnslib/record.c
Added: branches/alex-network-branch/reactos/lib/dnslib/rrprint.c
Added: branches/alex-network-branch/reactos/lib/dnslib/sablob.c
Added: branches/alex-network-branch/reactos/lib/dnslib/straddr.c
Added: branches/alex-network-branch/reactos/lib/dnslib/string.c
Added: branches/alex-network-branch/reactos/lib/dnslib/table.c
Added: branches/alex-network-branch/reactos/lib/dnslib/utf8.c
Deleted: branches/alex-network-branch/reactos/lib/msafd/
Deleted: branches/alex-network-branch/reactos/lib/mswsock/extensions.c
Added: branches/alex-network-branch/reactos/lib/mswsock/inc/
Added: branches/alex-network-branch/reactos/lib/mswsock/inc/msafd.h
Added: branches/alex-network-branch/reactos/lib/mswsock/inc/msafdlib.h
Added: branches/alex-network-branch/reactos/lib/mswsock/inc/mswinsock.h
Added: branches/alex-network-branch/reactos/lib/mswsock/inc/rnr20lib.h
Added: branches/alex-network-branch/reactos/lib/mswsock/inc/wsmobile.h
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/init.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/msext.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/mswsock.def
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/mswsock.rc
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/nspeprot.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/nspgaddr.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/nspmisc.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/nspsvc.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/nsptcpip.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/nsputil.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/proc.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/recvex.c
Added: branches/alex-network-branch/reactos/lib/mswsock/lib/setup.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/accept.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/addrconv.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/afdsan.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/async.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/bind.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/connect.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/eventsel.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/getname.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/helper.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/listen.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/nspeprot.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/proc.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/recv.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanaccpt.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanconn.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanflow.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanlistn.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanprov.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanrdma.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanrecv.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sansend.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanshutd.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sansock.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/santf.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sanutil.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/select.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/send.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/shutdown.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sockerr.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/socket.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/sockopt.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/spi.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/tpackets.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/tranfile.c
Added: branches/alex-network-branch/reactos/lib/mswsock/msafdlib/wspmisc.c
Deleted: branches/alex-network-branch/reactos/lib/mswsock/mswsock.def
Deleted: branches/alex-network-branch/reactos/lib/mswsock/mswsock.rc
Deleted: branches/alex-network-branch/reactos/lib/mswsock/mswsock.xml
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/context.c
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/getserv.c
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/init.c
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/logit.c
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/lookup.c
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/nbt.c
Added: branches/alex-network-branch/reactos/lib/mswsock/rnr20lib/nsp.c
[truncated at 100 lines; 28 more skipped]
Added: branches/alex-network-branch/reactos/include/drivers/afd/afd.h
--- branches/alex-network-branch/reactos/include/drivers/afd/afd.h	2005-12-09 02:07:47 UTC (rev 19999)
+++ branches/alex-network-branch/reactos/include/drivers/afd/afd.h	2005-12-09 02:10:31 UTC (rev 20000)
@@ -0,0 +1,458 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS Ancillary Function Driver
+ * FILE:        include/afd/shared.h
+ * PURPOSE:     Shared definitions for AFD.SYS and MSAFD.DLL
+ */
+#ifndef __AFD_SHARED_H
+#define __AFD_SHARED_H
+
+#define AFD_MAX_EVENTS                  10
+#define AFD_PACKET_COMMAND_LENGTH	15
+#define AfdCommand "AfdOpenPacketXX"
+
+typedef struct _AFD_CREATE_PACKET
+{
+    DWORD EndpointFlags;
+    DWORD GroupID;
+    DWORD SizeOfTransportName;
+    WCHAR TransportName[1];
+} AFD_CREATE_PACKET, *PAFD_CREATE_PACKET;
+
+typedef struct _AFD_INFO
+{
+    ULONG InformationClass;
+    union
+    {
+        BOOLEAN Boolean;
+        ULONG Ulong;
+        LARGE_INTEGER LargeInteger;
+    } Information;
+    ULONG Unknown;
+} AFD_INFO, *PAFD_INFO;
+
+typedef struct _AFD_TDI_HANDLE_DATA
+{
+    HANDLE TdiAddressHandle;
+    HANDLE TdiConnectionHandle;
+} AFD_TDI_HANDLE_DATA, *PAFD_TDI_HANDLE_DATA;
+
+typedef struct _AFD_BIND_DATA
+{
+    ULONG ShareType;
+    TRANSPORT_ADDRESS Address;
+} AFD_BIND_DATA, *PAFD_BIND_DATA;
+
+typedef struct _AFD_LISTEN_DATA
+{
+    BOOLEAN UseSAN;
+    ULONG Backlog;
+    BOOLEAN UseDelayedAcceptance;
+} AFD_LISTEN_DATA, *PAFD_LISTEN_DATA;
+
+typedef struct _AFD_HANDLE
+{
+    HANDLE Handle;
+    ULONG Events;
+    NTSTATUS Status;
+} AFD_HANDLE, *PAFD_HANDLE;
+
+typedef struct _AFD_POLL_INFO
+{
+    LARGE_INTEGER Timeout;
+    ULONG HandleCount;
+    ULONG Exclusive;
+    AFD_HANDLE Handles[1];
+} AFD_POLL_INFO, *PAFD_POLL_INFO;
+
+typedef struct _AFD_ACCEPT_DATA
+{
+    ULONG UseSAN;
+    ULONG SequenceNumber;
+    HANDLE ListenHandle;
+} AFD_ACCEPT_DATA, *PAFD_ACCEPT_DATA;
+
+typedef struct _AFD_RECEIVED_ACCEPT_DATA
+{
+    ULONG SequenceNumber;
+    TRANSPORT_ADDRESS Address;
+} AFD_RECEIVED_ACCEPT_DATA, *PAFD_RECEIVED_ACCEPT_DATA;
+
+typedef struct _AFD_PENDING_ACCEPT_DATA
+{
+    ULONG SequenceNumber;
+    ULONG SizeOfData;
+    ULONG ReturnSize;
+} AFD_PENDING_ACCEPT_DATA, *PAFD_PENDING_ACCEPT_DATA;
+
+typedef struct _AFD_DEFER_ACCEPT_DATA
+{
+    ULONG SequenceNumber;
+    BOOLEAN RejectConnection;
+} AFD_DEFER_ACCEPT_DATA, *PAFD_DEFER_ACCEPT_DATA;
+
+typedef struct  _AFD_RECV_INFO
+{
+    LPWSABUF BufferArray;
+    ULONG BufferCount;
+    ULONG AfdFlags;
+    ULONG TdiFlags;
+} AFD_RECV_INFO, *PAFD_RECV_INFO;
+
+typedef struct _AFD_RECV_INFO_UDP
+{
+    LPWSABUF BufferArray;
+    ULONG BufferCount;
+    ULONG AfdFlags;
+    ULONG TdiFlags;
+    PVOID Address;
+    PINT AddressLength;
+} AFD_RECV_INFO_UDP, *PAFD_RECV_INFO_UDP;
+
+typedef struct  _AFD_SEND_INFO
+{
+    LPWSABUF BufferArray;
+    ULONG BufferCount;
+    ULONG AfdFlags;
+    ULONG TdiFlags;
+} AFD_SEND_INFO , *PAFD_SEND_INFO;
+
+typedef struct _AFD_SEND_INFO_UDP
+{
+    LPWSABUF BufferArray;
+    ULONG BufferCount;
+    ULONG AfdFlags;
+    TDI_REQUEST_SEND_DATAGRAM TdiRequest;
+    TDI_CONNECTION_INFORMATION TdiConnection;
+} AFD_SEND_INFO_UDP, *PAFD_SEND_INFO_UDP;
+
+typedef struct  _AFD_CONNECT_INFO
+{
+    BOOLEAN UseSAN;
+    ULONG Root;
+    ULONG Unknown;
+    TRANSPORT_ADDRESS RemoteAddress;
+} AFD_CONNECT_INFO , *PAFD_CONNECT_INFO ;
+
+typedef struct _AFD_EVENT_SELECT_INFO
+{
+    HANDLE EventObject;
+    ULONG Events;
+} AFD_EVENT_SELECT_INFO, *PAFD_EVENT_SELECT_INFO;
+
+typedef struct _AFD_ENUM_NETWORK_EVENTS_INFO
+{
+    HANDLE Event;
+    ULONG PollEvents;
+    NTSTATUS EventStatus[AFD_MAX_EVENTS];
+} AFD_ENUM_NETWORK_EVENTS_INFO, *PAFD_ENUM_NETWORK_EVENTS_INFO;
+
+typedef struct _AFD_DISCONNECT_INFO
+{
+    ULONG DisconnectType;
+    ULONG Unknown;
+    LARGE_INTEGER Timeout;
+} AFD_DISCONNECT_INFO, *PAFD_DISCONNECT_INFO;
+
+typedef struct _AFD_VALIDATE_GROUP_DATA
+{
+    LONG GroupId;
+    TRANSPORT_ADDRESS Address;
+} AFD_VALIDATE_GROUP_DATA, *PAFD_VALIDATE_GROUP_DATA;
+
+/* AFD Packet Endpoint Flags */
+#define AFD_ENDPOINT_CONNECTIONLESS	0x1
+#define AFD_ENDPOINT_MESSAGE_ORIENTED	0x10
+#define AFD_ENDPOINT_RAW		0x100
+#define AFD_ENDPOINT_MULTIPOINT		0x1000
+#define AFD_ENDPOINT_C_ROOT		0x10000
+#define AFD_ENDPOINT_D_ROOT	        0x100000
+
+/* AFD Info Flags */
+#define AFD_INFO_INLINING_MODE          0x01L
+#define AFD_INFO_BLOCKING_MODE          0x02L
+#define AFD_INFO_SENDS_IN_PROGRESS      0x04L
+#define AFD_INFO_RECEIVE_WINDOW_SIZE    0x06L
+#define AFD_INFO_SEND_WINDOW_SIZE       0x07L
+#define AFD_INFO_GROUP_ID_TYPE          0x10L
+
+/* AFD TDI Query Flags */
+#define AFD_ADDRESS_HANDLE      0x1L
+#define AFD_CONNECTION_HANDLE   0x2L
+
+/* AFD Share Flags */
+#define AFD_SHARE_UNIQUE		0x0L
+#define AFD_SHARE_REUSE			0x1L
+#define AFD_SHARE_WILDCARD		0x2L
+#define AFD_SHARE_EXCLUSIVE		0x3L
+
+/* AFD Disconnect Flags */
+#define AFD_DISCONNECT_SEND		0x01L
+#define AFD_DISCONNECT_RECV		0x02L
+#define AFD_DISCONNECT_ABORT	0x04L
+#define AFD_DISCONNECT_DATAGRAM 0x08L
+
+/* AFD Event Bits, similar to FD bits in winsock2.h */
+#define AFD_EVENT_RECEIVE_BIT                   0
+#define AFD_EVENT_OOB_RECEIVE_BIT               1
+#define AFD_EVENT_SEND_BIT                      2
+#define AFD_EVENT_DISCONNECT_BIT                3
+#define AFD_EVENT_ABORT_BIT                     4
+#define AFD_EVENT_CLOSE_BIT                     5
+#define AFD_EVENT_CONNECT_BIT                   6
+#define AFD_EVENT_ACCEPT_BIT                    7
+#define AFD_EVENT_CONNECT_FAIL_BIT              8
+#define AFD_EVENT_QOS_BIT                       9
+#define AFD_EVENT_GROUP_QOS_BIT                 10
+#define AFD_EVENT_ROUTING_INTERFACE_CHANGE_BIT  11
+#define AFD_EVENT_ADDRESS_LIST_CHANGE_BIT       12
+#define AFD_MAX_EVENT                           13
+#define AFD_ALL_EVENTS                          ((1 << AFD_MAX_EVENT) - 1)
+
+/* AFD Event Flags */
+#define AFD_EVENT_RECEIVE                   (1 << AFD_EVENT_RECEIVE_BIT)
+#define AFD_EVENT_OOB_RECEIVE               (1 << AFD_EVENT_OOB_RECEIVE_BIT)
+#define AFD_EVENT_SEND                      (1 << AFD_EVENT_SEND_BIT)
+#define AFD_EVENT_DISCONNECT                (1 << AFD_EVENT_DISCONNECT_BIT)
+#define AFD_EVENT_ABORT                     (1 << AFD_EVENT_ABORT_BIT)
+#define AFD_EVENT_CLOSE                     (1 << AFD_EVENT_CLOSE_BIT)
+#define AFD_EVENT_CONNECT                   (1 << AFD_EVENT_CONNECT_BIT)
+#define AFD_EVENT_ACCEPT                    (1 << AFD_EVENT_ACCEPT_BIT)
+#define AFD_EVENT_CONNECT_FAIL              (1 << AFD_EVENT_CONNECT_FAIL_BIT)
+#define AFD_EVENT_QOS                       (1 << AFD_EVENT_QOS_BIT)
+#define AFD_EVENT_GROUP_QOS                 (1 << AFD_EVENT_GROUP_QOS_BIT)
+#define AFD_EVENT_ROUTING_INTERFACE_CHANGE  (1 << AFD_EVENT_ROUTING_INTERFACE_CHANGE_BIT)
+#define AFD_EVENT_ADDRESS_LIST_CHANGE       (1 << AFD_EVENT_ADDRESS_LIST_CHANGE_BIT)
+
+/* AFD SEND/RECV Flags */
+#define AFD_SKIP_FIO			0x1L
+#define AFD_OVERLAPPED			0x2L
+#define AFD_IMMEDIATE                   0x4L
+
+/* IOCTL Generation */
+#define FSCTL_AFD_BASE                  FILE_DEVICE_NETWORK
+#define _AFD_CONTROL_CODE(Operation,Method) \
+  ((FSCTL_AFD_BASE)<<12 | (Operation<<2) | Method)
+
+/* AFD Commands */
+#define AFD_BIND			0
+#define AFD_CONNECT			1
+#define AFD_START_LISTEN		2
+#define AFD_WAIT_FOR_LISTEN		3
+#define AFD_ACCEPT			4
+#define AFD_RECV			5
+#define AFD_RECV_DATAGRAM		6
+#define AFD_SEND			7
+#define AFD_SEND_DATAGRAM		8
+#define AFD_SELECT			9
+#define AFD_DISCONNECT			10
+#define AFD_GET_SOCK_NAME		11
+#define AFD_GET_PEER_NAME               12
+#define AFD_GET_TDI_HANDLES		13
+#define AFD_SET_INFO			14
+#define AFD_GET_CONTEXT_SIZE    15
+#define AFD_GET_CONTEXT			16
+#define AFD_SET_CONTEXT			17
+#define AFD_SET_CONNECT_DATA		18
+#define AFD_SET_CONNECT_OPTIONS		19
+#define AFD_SET_DISCONNECT_DATA		20
+#define AFD_SET_DISCONNECT_OPTIONS	21
+#define AFD_GET_CONNECT_DATA		22
+#define AFD_GET_CONNECT_OPTIONS		23
+#define AFD_GET_DISCONNECT_DATA		24
+#define AFD_GET_DISCONNECT_OPTIONS	25
+#define AFD_SET_CONNECT_DATA_SIZE       26
+#define AFD_SET_CONNECT_OPTIONS_SIZE    27
+#define AFD_SET_DISCONNECT_DATA_SIZE    28
+#define AFD_SET_DISCONNECT_OPTIONS_SIZE 29
+#define AFD_GET_INFO			30
+#define AFD_EVENT_SELECT		33
+#define AFD_ENUM_NETWORK_EVENTS         34
+#define AFD_DEFER_ACCEPT		35
+#define AFD_GET_PENDING_CONNECT_DATA	41
+#define AFD_VALIDATE_GROUP              42
+
+/* AFD IOCTLs */
+
+#define IOCTL_AFD_BIND \
+  _AFD_CONTROL_CODE(AFD_BIND, METHOD_NEITHER)
+#define IOCTL_AFD_CONNECT \
+  _AFD_CONTROL_CODE(AFD_CONNECT, METHOD_NEITHER)
+#define IOCTL_AFD_START_LISTEN \
+  _AFD_CONTROL_CODE(AFD_START_LISTEN, METHOD_NEITHER)
+#define IOCTL_AFD_WAIT_FOR_LISTEN \
+  _AFD_CONTROL_CODE(AFD_WAIT_FOR_LISTEN, METHOD_BUFFERED )
+#define IOCTL_AFD_ACCEPT \
+  _AFD_CONTROL_CODE(AFD_ACCEPT, METHOD_BUFFERED )
+#define IOCTL_AFD_RECV \
+  _AFD_CONTROL_CODE(AFD_RECV, METHOD_NEITHER)
+#define IOCTL_AFD_RECV_DATAGRAM \
+  _AFD_CONTROL_CODE(AFD_RECV_DATAGRAM, METHOD_NEITHER)
+#define IOCTL_AFD_SEND \
+  _AFD_CONTROL_CODE(AFD_SEND, METHOD_NEITHER)
+#define IOCTL_AFD_SEND_DATAGRAM \
+  _AFD_CONTROL_CODE(AFD_SEND_DATAGRAM, METHOD_NEITHER)
+#define IOCTL_AFD_SELECT \
+  _AFD_CONTROL_CODE(AFD_SELECT, METHOD_BUFFERED )
+#define IOCTL_AFD_DISCONNECT \
+  _AFD_CONTROL_CODE(AFD_DISCONNECT, METHOD_NEITHER)
+#define IOCTL_AFD_GET_SOCK_NAME \
+  _AFD_CONTROL_CODE(AFD_GET_SOCK_NAME, METHOD_NEITHER)
+#define IOCTL_AFD_GET_PEER_NAME \
+  _AFD_CONTROL_CODE(AFD_GET_PEER_NAME, METHOD_NEITHER)
+#define IOCTL_AFD_GET_TDI_HANDLES \
+  _AFD_CONTROL_CODE(AFD_GET_TDI_HANDLES, METHOD_NEITHER)
+#define IOCTL_AFD_SET_INFO \
+  _AFD_CONTROL_CODE(AFD_SET_INFO, METHOD_NEITHER)
+#define IOCTL_AFD_GET_CONTEXT_SIZE \
+  _AFD_CONTROL_CODE(AFD_GET_CONTEXT_SIZE, METHOD_NEITHER)
+#define IOCTL_AFD_GET_CONTEXT \
+  _AFD_CONTROL_CODE(AFD_GET_CONTEXT, METHOD_NEITHER)
+#define IOCTL_AFD_SET_CONTEXT \
+  _AFD_CONTROL_CODE(AFD_SET_CONTEXT, METHOD_NEITHER)
+#define IOCTL_AFD_SET_CONNECT_DATA \
+  _AFD_CONTROL_CODE(AFD_SET_CONNECT_DATA, METHOD_NEITHER)
+#define IOCTL_AFD_SET_CONNECT_OPTIONS \
+  _AFD_CONTROL_CODE(AFD_SET_CONNECT_OPTIONS, METHOD_NEITHER)
+#define IOCTL_AFD_SET_DISCONNECT_DATA \
+  _AFD_CONTROL_CODE(AFD_SET_DISCONNECT_DATA, METHOD_NEITHER)
+#define IOCTL_AFD_SET_DISCONNECT_OPTIONS \
+  _AFD_CONTROL_CODE(AFD_SET_DISCONNECT_OPTIONS, METHOD_NEITHER)
+#define IOCTL_AFD_GET_CONNECT_DATA \
+  _AFD_CONTROL_CODE(AFD_GET_CONNECT_DATA, METHOD_NEITHER)
+#define IOCTL_AFD_GET_CONNECT_OPTIONS \
+  _AFD_CONTROL_CODE(AFD_GET_CONNECT_OPTIONS, METHOD_NEITHER)
+#define IOCTL_AFD_GET_DISCONNECT_DATA \
+  _AFD_CONTROL_CODE(AFD_GET_DISCONNECT_DATA, METHOD_NEITHER)
+#define IOCTL_AFD_GET_DISCONNECT_OPTIONS \
+  _AFD_CONTROL_CODE(AFD_GET_DISCONNECT_OPTIONS, METHOD_NEITHER)
+#define IOCTL_AFD_SET_CONNECT_DATA_SIZE \
+  _AFD_CONTROL_CODE(AFD_SET_CONNECT_DATA_SIZE, METHOD_NEITHER)
+#define IOCTL_AFD_SET_CONNECT_OPTIONS_SIZE \
+  _AFD_CONTROL_CODE(AFD_SET_CONNECT_OPTIONS_SIZE, METHOD_NEITHER)
+#define IOCTL_AFD_SET_DISCONNECT_DATA_SIZE \
+  _AFD_CONTROL_CODE(AFD_SET_DISCONNECT_DATA_SIZE, METHOD_NEITHER)
+#define IOCTL_AFD_SET_DISCONNECT_OPTIONS_SIZE \
+  _AFD_CONTROL_CODE(AFD_SET_DISCONNECT_OPTIONS_SIZE, METHOD_NEITHER)
+#define IOCTL_AFD_GET_INFO \
+  _AFD_CONTROL_CODE(AFD_GET_INFO, METHOD_NEITHER)
+#define IOCTL_AFD_EVENT_SELECT \
+  _AFD_CONTROL_CODE(AFD_EVENT_SELECT, METHOD_NEITHER)
+#define IOCTL_AFD_DEFER_ACCEPT \
+  _AFD_CONTROL_CODE(AFD_DEFER_ACCEPT, METHOD_NEITHER)
+#define IOCTL_AFD_GET_PENDING_CONNECT_DATA \
+  _AFD_CONTROL_CODE(AFD_GET_PENDING_CONNECT_DATA, METHOD_NEITHER)
+#define IOCTL_AFD_ENUM_NETWORK_EVENTS \
+  _AFD_CONTROL_CODE(AFD_ENUM_NETWORK_EVENTS, METHOD_NEITHER)
+#define IOCTL_AFD_VALIDATE_GROUP \
+  _AFD_CONTROL_CODE(AFD_VALIDATE_GROUP, METHOD_NEITHER)
+
+typedef struct _AFD_SOCKET_INFORMATION {
+    BOOL CommandChannel;
+    INT AddressFamily;
+    INT SocketType;
+    INT Protocol;
+    PVOID HelperContext;
+    DWORD NotificationEvents;
+    UNICODE_STRING TdiDeviceName;
+    SOCKADDR Name;
+} AFD_SOCKET_INFORMATION, *PAFD_SOCKET_INFORMATION;
+
+typedef struct _FILE_REQUEST_BIND {
+    SOCKADDR Name;
+} FILE_REQUEST_BIND, *PFILE_REQUEST_BIND;
+
+typedef struct _FILE_REPLY_BIND {
+    INT Status;
+    HANDLE TdiAddressObjectHandle;
+    HANDLE TdiConnectionObjectHandle;
+} FILE_REPLY_BIND, *PFILE_REPLY_BIND;
+
+typedef struct _FILE_REQUEST_LISTEN {
+    INT Backlog;
+} FILE_REQUEST_LISTEN, *PFILE_REQUEST_LISTEN;
+
+typedef struct _FILE_REPLY_LISTEN {
+    INT Status;
+} FILE_REPLY_LISTEN, *PFILE_REPLY_LISTEN;
+
+typedef struct _FILE_REQUEST_SENDTO {
+    LPWSABUF Buffers;
+    DWORD BufferCount;
+    DWORD Flags;
+    SOCKADDR To;
+    INT ToLen;
+} FILE_REQUEST_SENDTO, *PFILE_REQUEST_SENDTO;
+
+typedef struct _FILE_REPLY_SENDTO {
+    INT Status;
+    DWORD NumberOfBytesSent;
+} FILE_REPLY_SENDTO, *PFILE_REPLY_SENDTO;
+
+typedef struct _FILE_REQUEST_RECVFROM {
+    LPWSABUF Buffers;
+    DWORD BufferCount;
+    LPDWORD Flags;
+    LPSOCKADDR From;
+    LPINT FromLen;
+} FILE_REQUEST_RECVFROM, *PFILE_REQUEST_RECVFROM;
+
+typedef struct _FILE_REPLY_RECVFROM {
+    INT Status;
+    DWORD NumberOfBytesRecvd;
+} FILE_REPLY_RECVFROM, *PFILE_REPLY_RECVFROM;
+
+typedef struct _FILE_REQUEST_RECV {
+    LPWSABUF Buffers;
+    DWORD BufferCount;
+    LPDWORD Flags;
+} FILE_REQUEST_RECV, *PFILE_REQUEST_RECV;
+
+typedef struct _FILE_REPLY_RECV {
+    INT Status;
+    DWORD NumberOfBytesRecvd;
+} FILE_REPLY_RECV, *PFILE_REPLY_RECV;
+
+
+typedef struct _FILE_REQUEST_SEND {
+    LPWSABUF Buffers;
+    DWORD BufferCount;
+    DWORD Flags;
+} FILE_REQUEST_SEND, *PFILE_REQUEST_SEND;
+
+typedef struct _FILE_REPLY_SEND {
+    INT Status;
+    DWORD NumberOfBytesSent;
+} FILE_REPLY_SEND, *PFILE_REPLY_SEND;
+
+
+typedef struct _FILE_REQUEST_ACCEPT {
+    LPSOCKADDR addr;
+    INT addrlen;
+    LPCONDITIONPROC lpfnCondition;
+    DWORD dwCallbackData;
+} FILE_REQUEST_ACCEPT, *PFILE_REQUEST_ACCEPT;
+
+typedef struct _FILE_REPLY_ACCEPT {
+    INT Status;
+    INT addrlen;
+    SOCKET Socket;
+} FILE_REPLY_ACCEPT, *PFILE_REPLY_ACCEPT;
+
+
+typedef struct _FILE_REQUEST_CONNECT {
+    LPSOCKADDR name;
+    INT namelen;
+    LPWSABUF lpCallerData;
+    LPWSABUF lpCalleeData;
+    LPQOS lpSQOS;
+    LPQOS lpGQOS;
+} FILE_REQUEST_CONNECT, *PFILE_REQUEST_CONNECT;
+
+typedef struct _FILE_REPLY_CONNECT {
+    INT Status;
+} FILE_REPLY_CONNECT, *PFILE_REPLY_CONNECT;
+
+#endif /*__AFD_SHARED_H */
+
+/* EOF */

Added: branches/alex-network-branch/reactos/include/drivers/ws2ifsl/wshdrv.h
--- branches/alex-network-branch/reactos/include/drivers/ws2ifsl/wshdrv.h	2005-12-09 02:07:47 UTC (rev 19999)
+++ branches/alex-network-branch/reactos/include/drivers/ws2ifsl/wshdrv.h	2005-12-09 02:10:31 UTC (rev 20000)
@@ -0,0 +1,28 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS WinSock 2 DLL
+ * FILE:        include/drivers/ws2ifsl/wshdrv.h
+ * PURPOSE:     WinSock 2 Helper Driver header
+ */
+
+#ifndef __WSHDRV_H
+#define __WSHDRV_H
+
+typedef struct _WSH_EA_DATA
+{
+    HANDLE FileHandle;
+    PVOID Context;
+} WSH_EA_DATA, *PWAH_EA_DATA;
+
+typedef struct _WAH_EA_DATA2
+{
+    HANDLE ThreadHandle;
+    PVOID RequestRoutine;
+    PVOID CancelRoutine;
+    PVOID ApcContext;
+    ULONG Reserved;
+} WAH_EA_DATA2, *PWAH_EA_DATA2;
+
+#define IOCTL_WS2IFSL_SET_HANDLE 0x12B00
+
+#endif

Added: branches/alex-network-branch/reactos/include/libs/dnsapi/windnsp.h
--- branches/alex-network-branch/reactos/include/libs/dnsapi/windnsp.h	2005-12-09 02:07:47 UTC (rev 19999)
+++ branches/alex-network-branch/reactos/include/libs/dnsapi/windnsp.h	2005-12-09 02:10:31 UTC (rev 20000)
@@ -0,0 +1,28 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS DNSAPI Header
+ * FILE:        include/libs/dns/windnsp.h
+ * PURPOSE:     DNSLIB Precompiled Header
+ */
+
+PVOID
+WINAPI
+DnsApiAlloc(
+    IN DWORD Size
+);
+
+PVOID
+WINAPI
+DnsQueryConfigAllocEx(
+    IN DNS_CONFIG_TYPE Config,
+    OUT PVOID pBuffer,
+    IN OUT PDWORD pBufferLength
+);
+
+PVOID
+WINAPI
+DnsApiFree(
+    IN PVOID pBuffer
+);
+
+/* EOF */

Added: branches/alex-network-branch/reactos/include/libs/dnslib/dnslib.h
--- branches/alex-network-branch/reactos/include/libs/dnslib/dnslib.h	2005-12-09 02:07:47 UTC (rev 19999)
+++ branches/alex-network-branch/reactos/include/libs/dnslib/dnslib.h	2005-12-09 02:10:31 UTC (rev 20000)
@@ -0,0 +1,343 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS Ancillary Function Driver DLL
+ * FILE:        include/mswsock.h
+ * PURPOSE:     Ancillary Function Driver DLL header
+ */
+#ifndef __DNSLIB_H
+#define __DNSLIB_H
+
+/* INCLUDES ******************************************************************/
+#include <ws2atm.h>
+
+/* ENUMERATIONS **************************************************************/
+
+typedef enum _DNS_STRING_TYPE
+{
+    UnicodeString = 1,
+    Utf8String,
+    AnsiString,
+} DNS_STRING_TYPE;
+
+#define IpV4Address 3
+
+/* TYPES *********************************************************************/
+
+typedef struct _DNS_IPV6_ADDRESS
+{
+    ULONG Unknown;
+    ULONG Unknown2;
+    IP6_ADDRESS Address;
+    ULONG Unknown3;
+    ULONG Unknown4;
+    DWORD Reserved;
+    ULONG Unknown5;
+} DNS_IPV6_ADDRESS, *PDNS_IPV6_ADDRESS;
+
+typedef struct _DNS_ADDRESS
+{
+    union
+    {
+        struct
+        {
+            WORD AddressFamily;
+            WORD Port;
+            ATM_ADDRESS AtmAddress;
+        };
+        SOCKADDR_IN Ip4Address;
+        SOCKADDR_IN6 Ip6Address;
+    };
+    ULONG AddressLength;
+    DWORD Sub;
+    ULONG Flag;
+} DNS_ADDRESS, *PDNS_ADDRESS;
+
+typedef struct _DNS_ARRAY
+{
+    ULONG AllocatedAddresses;
+    ULONG UsedAddresses;
+    ULONG Unknown[0x6];
+    DNS_ADDRESS Addresses[1];
+} DNS_ARRAY, *PDNS_ARRAY;
+
+typedef struct _DNS_BLOB
+{
+    LPWSTR Name;
+    PDNS_ARRAY DnsAddrArray;
+    PHOSTENT Hostent;
+    ULONG AliasCount;
+    ULONG Unknown;
+    LPWSTR Aliases[8];
+} DNS_BLOB, *PDNS_BLOB;
+
+typedef struct _DNS_FAMILY_INFO
+{
+    WORD AddrType;
+    WORD DnsType;
+    DWORD AddressSize;
+    DWORD SockaddrSize;
+    DWORD AddressOffset;
+} DNS_FAMILY_INFO, *PDNS_FAMILY_INFO;
+
+typedef struct _FLATBUFF
+{
+    PVOID Buffer;
+    PVOID BufferEnd;
+    ULONG_PTR BufferPos;
+    SIZE_T BufferSize;
+    SIZE_T BufferFreeSize;
+} FLATBUFF, *PFLATBUFF;
+
+/*
+ * memory.c
+ */
+VOID
+WINAPI
+Dns_Free(IN PVOID Address);
+
+PVOID
+WINAPI
+Dns_AllocZero(IN SIZE_T Size);
+
+/*
+ * addr.c
+ */
+PDNS_FAMILY_INFO
+WINAPI
+FamilyInfo_GetForFamily(IN WORD AddressFamily);
+
+/*
+ * dnsaddr.c
+ */
+VOID
+WINAPI
+DnsAddr_BuildFromIp4(
+    IN PDNS_ADDRESS DnsAddress,
+    IN IN_ADDR Address,
+    IN WORD Unknown
+);
+
+VOID
+WINAPI
+DnsAddr_BuildFromIp6(
+    IN PDNS_ADDRESS DnsAddress,
+    IN PIN6_ADDR Address,
+    IN ULONG ScopeId,
+    IN WORD Port
+);
+
+PDNS_ARRAY
+WINAPI
+DnsAddrArray_Create(ULONG Count);
+
+BOOL
+WINAPI
+DnsAddrArray_AddAddr(
+    IN PDNS_ARRAY DnsAddrArray,
+    IN PDNS_ADDRESS DnsAddress,
+    IN WORD AddressFamily OPTIONAL,
+    IN DWORD AddressType OPTIONAL
+);
+
+VOID
+WINAPI
+DnsAddrArray_Free(IN PDNS_ARRAY DnsAddrArray);
+
+BOOL
+WINAPI
+DnsAddrArray_AddIp4(
+    IN PDNS_ARRAY DnsAddrArray,
+    IN IN_ADDR Address,
+    IN DWORD AddressType
+);
+
+BOOL
+WINAPI
+DnsAddrArray_ContainsAddr(
+    IN PDNS_ARRAY DnsAddrArray,
+    IN PDNS_ADDRESS DnsAddress,
+    IN DWORD AddressType
+);
+
+BOOLEAN
+WINAPI
+DnsAddr_BuildFromDnsRecord(
+    IN PDNS_RECORD DnsRecord,
+    OUT PDNS_ADDRESS DnsAddr
+);
+
+/*
+ * hostent.c
+ */
+PHOSTENT
+WINAPI
+Hostent_Init(
+    IN PVOID *Buffer,
+    IN WORD AddressFamily,
+    IN ULONG AddressSize,
+    IN ULONG AddressCount,
+    IN ULONG AliasCount
+);
+
+VOID
+WINAPI
+Hostent_ConvertToOffsets(IN PHOSTENT Hostent);
+
+/*
+ * flatbuf.c
+ */
+VOID
+WINAPI
+FlatBuf_Init(
+    IN PFLATBUFF FlatBuffer,
+    IN PVOID Buffer,
+    IN SIZE_T Size
+);
+
+PVOID
+WINAPI
+FlatBuf_Arg_CopyMemory(
+    IN PVOID Position,
+    IN PSIZE_T FreeSize,
+    IN PVOID Buffer,
+    IN SIZE_T Size,
+    IN ULONG Align
+);
+
+PVOID
+WINAPI
+FlatBuf_Arg_Reserve(
+    IN PVOID Position,
+    IN PSIZE_T FreeSize,
+    IN SIZE_T Size,
+    IN ULONG Align
+);
+
+PVOID
+WINAPI
+FlatBuf_Arg_WriteString(
+    IN PVOID Position,
+    IN PSIZE_T FreeSize,
+    IN PVOID String,
+    IN BOOLEAN IsUnicode
+);
+
+/*
+ * sablob.c
+ */
+PDNS_BLOB
+WINAPI
+SaBlob_Create(
+    IN ULONG Count
+);
+
+PDNS_BLOB
+WINAPI
+SaBlob_CreateFromIp4(
+    IN LPWSTR Name,
+    IN ULONG Count,
+    IN PVOID Array
+);
+
+VOID
+WINAPI
+SaBlob_Free(IN PDNS_BLOB Blob);
+
+PHOSTENT
+WINAPI
+SaBlob_CreateHostent(
+    IN OUT PULONG_PTR BufferPosition,
+    IN OUT PSIZE_T RemainingBufferSpace,
+    IN OUT PSIZE_T HostEntrySize,
+    IN PDNS_BLOB Blob,
+    IN DWORD StringType,
+    IN BOOLEAN Relative,
+    IN BOOLEAN BufferAllocated
+);
+
+INT
+WINAPI
+SaBlob_WriteNameOrAlias(
+    IN PDNS_BLOB Blob,
+    IN LPWSTR String,
+    IN BOOLEAN IsAlias
+);
+
+PDNS_BLOB
+WINAPI
+SaBlob_Query(
+    IN LPWSTR Name,
+    IN WORD DnsType,
+    IN ULONG Flags,
+    IN PVOID *Reserved,
+    IN DWORD AddressFamily
+);
+
+/*
+ * string.c
+ */
+ULONG
+WINAPI
+Dns_StringCopy(
+    OUT PVOID Destination,
+    IN OUT PULONG DestinationSize,
+    IN PVOID String,
+    IN ULONG StringSize OPTIONAL,
+    IN DWORD InputType,
+    IN DWORD OutputType
+);
+
+LPWSTR
+WINAPI
+Dns_CreateStringCopy_W(IN LPWSTR Name);
+
+ULONG
+WINAPI
+Dns_GetBufferLengthForStringCopy(
+    IN PVOID String,
+    IN ULONG Size OPTIONAL,
+    IN DWORD InputType,
+    IN DWORD OutputType
+);
+
+/*
+ * straddr.c
+ */
+BOOLEAN
+WINAPI
+Dns_StringToAddressW(
+    OUT PVOID Address,
+    IN OUT PULONG AddressSize,
+    IN LPWSTR AddressName,
+    IN OUT PDWORD AddressFamily
+);
+
+LPWSTR
+WINAPI
+Dns_Ip4AddressToReverseName_W(
+    OUT LPWSTR Name,
+    IN IN_ADDR Address
+);
+
+LPWSTR
+WINAPI
+Dns_Ip6AddressToReverseName_W(
+    OUT LPWSTR Name,
+    IN IN6_ADDR Address
+);
+
+BOOLEAN
+WINAPI
+Dns_ReverseNameToDnsAddr_W(
+    OUT PDNS_ADDRESS DnsAddr,
+    IN LPWSTR Name
+);
+
+BOOLEAN
+WINAPI
+Dns_Ip4ReverseNameToAddress_W(
+    OUT PIN_ADDR Address,
+    IN LPWSTR Name
+);
+
+#endif

Added: branches/alex-network-branch/reactos/include/libs/winsock/nsp_dns.h
--- branches/alex-network-branch/reactos/include/libs/winsock/nsp_dns.h	2005-12-09 02:07:47 UTC (rev 19999)
+++ branches/alex-network-branch/reactos/include/libs/winsock/nsp_dns.h	2005-12-09 02:10:31 UTC (rev 20000)
@@ -0,0 +1,25 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS WinSock 2 Headers
+ * FILE:        include/winsock/nsp_dns.h
+ * PURPOSE:     WinSock 2 Shared NSP Header
+ */
+
+#ifndef __NSP_DNS_H
+#define __NSP_DNS_H
+
+/* Includes */
+#include <svcguid.h>
+
+/* Globals */
+static GUID HostnameGuid = SVCID_HOSTNAME;
+static GUID AddressGuid = SVCID_INET_HOSTADDRBYINETSTRING;
+static GUID HostAddrByNameGuid = SVCID_INET_HOSTADDRBYNAME;
+static GUID IANAGuid = SVCID_INET_SERVICEBYNAME;
+static GUID InetHostName = SVCID_INET_HOSTADDRBYNAME;
+static GUID Ipv6Guid = SVCID_DNS_TYPE_AAAA;
+
+/* Macros and Defines */
+#define RNR_BUFFER_SIZE 512
+
+#endif
\ No newline at end of file

Added: branches/alex-network-branch/reactos/include/libs/winsock/ws2help.h
--- branches/alex-network-branch/reactos/include/libs/winsock/ws2help.h	2005-12-09 02:07:47 UTC (rev 19999)
+++ branches/alex-network-branch/reactos/include/libs/winsock/ws2help.h	2005-12-09 02:10:31 UTC (rev 20000)
@@ -0,0 +1,139 @@
+/*
+ * COPYRIGHT:   See COPYING in the top level directory
+ * PROJECT:     ReactOS WinSock 2 Helper DLL
+ * FILE:        include/libs/winsock/ws2help.h
+ * PURPOSE:     WinSock 2 Helper DLL header
+ */
+
+#ifndef __WS2HELP_H
+#define __WS2HELP_H
+
+typedef struct _WSH_HANDLE_TABLE *PWAH_HANDLE_TABLE;
+
+typedef struct _WSH_HANDLE
+{
+    LONG RefCount;
+    HANDLE Handle;
+} WSH_HANDLE, *PWAH_HANDLE;
+
+typedef BOOL
+(WINAPI *PWAH_HANDLE_ENUMERATE_PROC)(
+    IN PVOID Context,
+    IN PWAH_HANDLE Handle
+);
+
+PWAH_HANDLE
+WINAPI
+WahReferenceContextByHandle(
+    IN PWAH_HANDLE_TABLE Table,
+    IN HANDLE Handle
+);
+
+DWORD
+WINAPI
+WahRemoveHandleContext(
+    IN PWAH_HANDLE_TABLE Table,
+    IN PWAH_HANDLE Handle
+);
+
+DWORD
+WINAPI
+WahCloseSocketHandle(
+    IN HANDLE HelperHandle,
+    IN SOCKET Socket
+);
+
+DWORD
+WINAPI
+WahOpenCurrentThread(
+    IN HANDLE HelperHandle,
+    OUT LPWSATHREADID ThreadId
+);
+
+DWORD
+WINAPI
+WahCloseApcHelper(
+    IN HANDLE HelperHandle
+);
+
+DWORD
+WINAPI
+WahCloseThread(
+    IN HANDLE HelperHandle,
+    IN LPWSATHREADID ThreadId
+);
+
+DWORD
+WINAPI
+WahCloseHandleHelper(
+    IN HANDLE HelperHandle
+);
+
+DWORD
+WINAPI
+WahCloseNotificationHandleHelper(
+    IN HANDLE HelperHandle
+);
+
+DWORD
+WINAPI
+WahOpenNotificationHandleHelper(
+    OUT PHANDLE HelperHandle
+);
+
+DWORD
+WINAPI
+WahCreateNotificationHandle(
+    IN HANDLE HelperHandle,
[truncated at 1000 lines; 19182 more skipped]