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]