/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Ancillary Function Driver DLL
- * FILE: include/msafd.h
+ * FILE: dll/win32/msafd/msafd.h
* PURPOSE: Ancillary Function Driver DLL header
*/
#include <wsahelp.h>
#include <tdi.h>
#include <afd/shared.h>
-#include <helpers.h>
+#include <mswsock.h>
-#include <debug.h>
+#include <wine/debug.h>
+WINE_DEFAULT_DEBUG_CHANNEL(msafd);
+
+#include "include/helpers.h"
extern HANDLE GlobalHeap;
extern WSPUPCALLTABLE Upcalls;
typedef struct _SOCK_SHARED_INFO {
SOCKET_STATE State;
+ LONG RefCount;
INT AddressFamily;
INT SocketType;
INT Protocol;
ULONG RecvTimeout;
ULONG SizeOfRecvBuffer;
ULONG SizeOfSendBuffer;
+ ULONG ConnectTime;
struct {
BOOLEAN Listening:1;
BOOLEAN Broadcast:1;
BOOLEAN UseSAN:1;
}; // Flags
DWORD CreateFlags;
- DWORD CatalogEntryId;
DWORD ServiceFlags1;
DWORD ProviderFlags;
GROUP GroupID;
UINT wMsg;
LONG AsyncEvents;
LONG AsyncDisabledEvents;
+ SOCKADDR WSLocalAddress;
+ SOCKADDR WSRemoteAddress;
} SOCK_SHARED_INFO, *PSOCK_SHARED_INFO;
typedef struct _SOCKET_INFORMATION {
- ULONG RefCount;
SOCKET Handle;
- SOCK_SHARED_INFO SharedData;
+ PSOCK_SHARED_INFO SharedData;
+ HANDLE SharedDataHandle;
DWORD HelperEvents;
PHELPER_DATA HelperData;
PVOID HelperContext;
CRITICAL_SECTION Lock;
PVOID SanData;
BOOL TrySAN;
- SOCKADDR WSLocalAddress;
- SOCKADDR WSRemoteAddress;
+ WSAPROTOCOL_INFOW ProtocolInfo;
struct _SOCKET_INFORMATION *NextSocket;
} SOCKET_INFORMATION, *PSOCKET_INFORMATION;
AFD_POLL_INFO AsyncSelectInfo;
} ASYNC_DATA, *PASYNC_DATA;
+typedef struct _AFDAPCCONTEXT
+{
+ LPWSAOVERLAPPED lpOverlapped;
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine;
+ PSOCKET_INFORMATION lpSocket;
+} AFDAPCCONTEXT, *PAFDAPCCONTEXT;
+
SOCKET
WSPAPI
WSPAccept(
ULONG AfdInformationClass,
PBOOLEAN Boolean OPTIONAL,
PULONG Ulong OPTIONAL,
- PLARGE_INTEGER LargeInteger OPTIONAL
+ PLARGE_INTEGER LargeInteger OPTIONAL,
+ LPWSAOVERLAPPED Overlapped OPTIONAL,
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine OPTIONAL
);
int SetSocketInformation(
ULONG AfdInformationClass,
PBOOLEAN Boolean OPTIONAL,
PULONG Ulong OPTIONAL,
- PLARGE_INTEGER LargeInteger OPTIONAL
+ PLARGE_INTEGER LargeInteger OPTIONAL,
+ LPWSAOVERLAPPED Overlapped OPTIONAL,
+ LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine OPTIONAL
);
int CreateContext(
PSOCKET_INFORMATION Socket
);
-int SockAsyncThread(
+ULONG
+NTAPI
+SockAsyncThread(
PVOID ThreadParam
);