8 #define NO_BLOCKING_HOOK 0 9 #define MAYBE_BLOCKING_HOOK 1 10 #define ALWAYS_BLOCKING_HOOK 2 13 #define SEND_TIMEOUT 1 14 #define RECV_TIMEOUT 2 16 #define MAX_TDI_ADDRESS_LENGTH 32 18 #define WSA_FLAG_MULTIPOINT_ALL (WSA_FLAG_MULTIPOINT_C_ROOT |\ 19 WSA_FLAG_MULTIPOINT_C_LEAF |\ 20 WSA_FLAG_MULTIPOINT_D_ROOT |\ 21 WSA_FLAG_MULTIPOINT_D_LEAF) 270 IN INT SocketAddressLength);
297 IN INT SockaddrLength);
430 #define MSAFD_IS_DGRAM_SOCK(s) \ 431 (s->SharedData.ServiceFlags1 & XP1_CONNECTIONLESS) 506 PVOID *HelperDllContext,
PWSH_GET_WILDCARD_SOCKADDR WSHGetWildcardSockaddr
INT WSPAPI WSPSetSockOpt(IN SOCKET s, IN INT level, IN INT optname, IN CONST CHAR FAR *optval, IN INT optlen, OUT LPINT lpErrno)
VOID WSPAPI SockSanInitialize(VOID)
BOOL WSPAPI WSPGetOverlappedResult(IN SOCKET s, IN LPWSAOVERLAPPED lpOverlapped, OUT LPDWORD lpcbTransfer, IN BOOL fWait, OUT LPDWORD lpdwFlags, OUT LPINT lpErrno)
INT(WINAPI * PWSH_ADDRESS_TO_STRING)(LPSOCKADDR, INT, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD)
LPWSPUPCALLTABLE SockUpcallTable
INT WSPAPI SockAsyncSelectHelper(IN PSOCKET_INFORMATION Socket, IN HWND hWnd, IN UINT wMsg, IN LONG Events)
struct _SOCKET_CONTEXT * PSOCKET_CONTEXT
DWORD SockSendBufferWindow
INT WSPAPI SockGetInformation(IN PSOCKET_INFORMATION Socket, IN ULONG AfdInformationClass, IN PVOID ExtraData OPTIONAL, IN ULONG ExtraDataSize, IN OUT PBOOLEAN Boolean OPTIONAL, IN OUT PULONG Ulong OPTIONAL, IN OUT PLARGE_INTEGER LargeInteger OPTIONAL)
VOID WSPAPI SockAsyncSelectCompletion(PVOID Context, PIO_STATUS_BLOCK IoStatusBlock)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG BufferLength
int(CALLBACK * LPCONDITIONPROC)(IN LPWSABUF lpCallerId, IN LPWSABUF lpCallerData, IN OUT LPQOS lpSQOS, IN OUT LPQOS lpGQOS, IN LPWSABUF lpCalleeId, IN LPWSABUF lpCalleeData, OUT GROUP FAR *g, IN DWORD_PTR dwCallbackData)
_In_opt_ HANDLE _In_opt_ PIO_APC_ROUTINE _In_opt_ PVOID ApcContext
IN PCO_ADDRESS_FAMILY AddressFamily
INT WSPAPI WSPGetSockOpt(IN SOCKET s, IN INT level, IN INT optname, OUT CHAR FAR *optval, IN OUT LPINT optlen, OUT LPINT lpErrno)
struct _HELPER_DATA HELPER_DATA
CRITICAL_SECTION g_RnrLock
BOOLEAN ExclusiveAddressUse
VOID WSPAPI SockReleaseRwLockExclusive(IN PSOCK_RW_LOCK Lock)
INT(WINAPI * PWSH_STRING_TO_ADDRESS)(LPWSTR, DWORD, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPDWORD)
VOID WSPAPI SockSanGetTcpipCatalogId(VOID)
INT WSPAPI WSPRecv(IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, IN LPWSATHREADID lpThreadId, OUT LPINT lpErrno)
INT WSPAPI WSPConnect(IN SOCKET s, IN CONST SOCKADDR *name, IN INT namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS, OUT LPINT lpErrno)
INT WSPAPI SockBuildTdiAddress(OUT PTRANSPORT_ADDRESS TdiAddress, IN PSOCKADDR Sockaddr, IN INT SockaddrLength)
PVOID IcfOpenDynamicFwPort
PWSH_GET_BROADCAST_SOCKADDR WSHGetBroadcastSockaddr
INT WSPAPI SockNotifyHelperDll(IN PSOCKET_INFORMATION Socket, IN DWORD Event)
VOID(WSPAPI * PASYNC_COMPLETION_ROUTINE)(PVOID Context, PIO_STATUS_BLOCK IoStatusBlock)
PWSH_JOIN_LEAF WSHJoinLeaf
SOCK_RW_LOCK SocketGlobalLock
_In_ const GUID _In_ ULONG ExtraDataSize
struct _SOCK_ICF_DATA * PSOCK_ICF_DATA
struct _SOCK_RW_LOCK * PSOCK_RW_LOCK
INT(WINAPI * PICF_CONNECT)(PVOID IcfData)
volatile LONG ReaderCount
INT WSPAPI WSPDuplicateSocket(IN SOCKET s, IN DWORD dwProcessId, OUT LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPINT lpErrno)
BOOLEAN WSPAPI SockCheckAndInitAsyncSelectHelper(VOID)
VOID WSPAPI CloseIcfConnection(IN PSOCK_ICF_DATA IcfData)
VOID WSPAPI SockReleaseRwLockShared(IN PSOCK_RW_LOCK Lock)
struct _SOCKET_INFORMATION * PSOCKET_INFORMATION
INT WSPAPI SockGetTdiName(PINT AddressFamily, PINT SocketType, PINT Protocol, LPGUID ProviderId, GROUP Group, DWORD Flags, PUNICODE_STRING TransportName, PVOID *HelperDllContext, PHELPER_DATA *HelperDllData, PDWORD Events)
static PVOID Mapping[EMS_PHYSICAL_PAGES]
FORCEINLINE INT WSPAPI SockEnterApiFast(OUT PWINSOCK_TEB_DATA *ThreadData)
VOID WSPAPI SockProcessQueuedAsyncSelect(PVOID Context, PIO_STATUS_BLOCK IoStatusBlock)
INT(WINAPI * PWSH_IOCTL)(PVOID, SOCKET, HANDLE, HANDLE, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE, LPBOOL)
BOOL WSPAPI SockIsTripleInMapping(IN PWINSOCK_MAPPING Mapping, IN INT AddressFamily, OUT PBOOLEAN AfMatch, IN INT SocketType, OUT PBOOLEAN SockMatch, IN INT Protocol, OUT PBOOLEAN ProtoMatch)
SOCKET WSPAPI WSPAccept(IN SOCKET s, OUT LPSOCKADDR addr, IN OUT LPINT addrlen, IN LPCONDITIONPROC lpfnCondition, IN DWORD dwCallbackData, OUT LPINT lpErrno)
LIST_ENTRY SockHelperDllListHead
HANDLE SockSanCleanUpCompleteEvent
PAFD_ACCEPT_DATA AcceptData
INT(WINAPI * PWSH_OPEN_SOCKET)(PINT, PINT, PINT, PUNICODE_STRING, PVOID, PDWORD)
INT WSPAPI WSPAddressToString(IN LPSOCKADDR lpsaAddress, IN DWORD dwAddressLength, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPWSTR lpszAddressString, IN OUT LPDWORD lpdwAddressStringLength, OUT LPINT lpErrno)
NTSTATUS WSPAPI SockDeleteRwLock(IN PSOCK_RW_LOCK Lock)
BOOLEAN WSPAPI SockCheckAndReferenceAsyncThread(VOID)
IN PVOID IN PVOID IN USHORT IN USHORT Size
INT WSPAPI SockGetConnectData(IN PSOCKET_INFORMATION Socket, IN ULONG Ioctl, IN PVOID Buffer, IN ULONG BufferLength, OUT PULONG BufferReturned)
BOOLEAN UseDelayedAcceptance
VOID WSPAPI SockFreeHelperDll(IN PHELPER_DATA Helper)
HINSTANCE SockModuleHandle
PVOID(NTAPI * PRTL_HEAP_ALLOCATE)(IN HANDLE Heap, IN ULONG Flags, IN ULONG Size)
enum _SOCKET_STATE SOCKET_STATE
enum _SOCKET_STATE * PSOCKET_STATE
BOOL WSPAPI SockWaitForSingleObject(IN HANDLE Handle, IN SOCKET SocketHandle, IN DWORD BlockingFlags, IN DWORD TimeoutFlags)
INT WSPAPI WSPEventSelect(IN SOCKET s, IN WSAEVENT hEventObject, IN LONG lNetworkEvents, OUT LPINT lpErrno)
INT WSPAPI WSPGetSockName(IN SOCKET s, OUT LPSOCKADDR name, IN OUT LPINT namelen, OUT LPINT lpErrno)
VOID WSPAPI SockAcquireRwLockExclusive(IN PSOCK_RW_LOCK Lock)
INT(WINAPI * PWSH_GET_SOCKET_INFORMATION)(PVOID, SOCKET, HANDLE, HANDLE, INT, INT, PCHAR, LPINT)
ULONG SockBufferKeyTableSize
INT WSPAPI WSPSend(IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, IN LPWSATHREADID lpThreadId, OUT LPINT lpErrno)
INT WSPAPI SockSetInformation(IN PSOCKET_INFORMATION Socket, IN ULONG AfdInformationClass, IN PBOOLEAN Boolean OPTIONAL, IN PULONG Ulong OPTIONAL, IN PLARGE_INTEGER LargeInteger OPTIONAL)
_Must_inspect_result_ __in WDFIOTARGET __in_opt WDFREQUEST __in ULONG Ioctl
INT WSPAPI WSPRecvDisconnect(IN SOCKET s, OUT LPWSABUF lpInboundDisconnectData, OUT LPINT lpErrno)
INT(WINAPI * PWSH_GET_BROADCAST_SOCKADDR)(PVOID, PSOCKADDR, PINT)
INT WSPAPI SockLoadTransportMapping(PWSTR TransportName, PWINSOCK_MAPPING *Mapping)
INT WSPAPI WSPListen(IN SOCKET s, IN INT backlog, OUT LPINT lpErrno)
BOOL WSPAPI WSPGetQOSByName(IN SOCKET s, IN OUT LPWSABUF lpQOSName, OUT LPQOS lpQOS, OUT LPINT lpErrno)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
struct _SOCK_SHARED_INFO SOCK_SHARED_INFO
enum _SOCKET_STATE SOCKET_STATE
PWSH_STRING_TO_ADDRESS WSHStringToAddress
struct _SOCKET_CONTEXT SOCKET_CONTEXT
SOCKET WSPAPI WSPJoinLeaf(IN SOCKET s, IN CONST SOCKADDR *name, IN INT namelen, IN LPWSABUF lpCallerData, OUT LPWSABUF lpCalleeData, IN LPQOS lpSQOS, IN LPQOS lpGQOS, IN DWORD dwFlags, OUT LPINT lpErrno)
INT WSPAPI SockEnterApiSlow(OUT PWINSOCK_TEB_DATA *ThreadData)
HINSTANCE NlsMsgSourcemModuleHandle
INT WSPAPI WSPCancelBlockingCall(OUT LPINT lpErrno)
PVOID WSPAPI SockInitializeHeap(IN HANDLE Heap, IN ULONG Flags, IN ULONG Size)
struct _SOCK_ICF_DATA SOCK_ICF_DATA
INT WSPAPI WSPAsyncSelect(IN SOCKET s, IN HWND hWnd, IN UINT wMsg, IN LONG lEvent, OUT LPINT lpErrno)
BOOL WSPAPI MSWSOCK_Initialize(VOID)
struct _SOCK_SHARED_INFO * PSOCK_SHARED_INFO
BOOL WSPAPI MSAFD_SockThreadInitialize(VOID)
struct _SOCKET_INFORMATION * ParentSocket
INT WSPAPI WSPCleanup(OUT LPINT lpErrno)
PWSH_GET_SOCKADDR_TYPE WSHGetSockaddrType
INT WSPAPI SockGetTdiHandles(IN PSOCKET_INFORMATION Socket)
VOID WSPAPI SockAcquireRwLockShared(IN PSOCK_RW_LOCK Lock)
_Reserved_ PVOID Reserved
HANDLE SockAsyncQueuePort
PWAH_HANDLE_TABLE SockContextTable
NTSTATUS WSPAPI SockInitializeRwLockAndSpinCount(IN PSOCK_RW_LOCK Lock, IN ULONG SpinCount)
AFD_POLL_INFO AsyncSelectInfo
INT WSPAPI SockIsAddressConsistentWithConstrainedGroup(IN PSOCKET_INFORMATION Socket, IN GROUP Group, IN PSOCKADDR SocketAddress, IN INT SocketAddressLength)
struct _WINSOCK_TEB_DATA * PWINSOCK_TEB_DATA
BOOLEAN UseDelayedAcceptance
INT WSPAPI SockReenableAsyncSelectEvent(IN PSOCKET_INFORMATION Socket, IN ULONG Event)
CRITICAL_SECTION MSWSOCK_SocketLock
BOOLEAN WSPAPI SockIsSocketConnected(IN PSOCKET_INFORMATION Socket)
INT WSPAPI SockLoadTransportList(PWSTR *TransportList)
INT WSPAPI WSPSelect(IN INT nfds, IN OUT LPFD_SET readfds, IN OUT LPFD_SET writefds, IN OUT LPFD_SET exceptfds, IN CONST LPTIMEVAL timeout, OUT LPINT lpErrno)
INT WSPAPI WSPStringToAddress(IN LPWSTR AddressString, IN INT AddressFamily, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, OUT LPSOCKADDR lpAddress, IN OUT LPINT lpAddressLength, OUT LPINT lpErrno)
INT WSPAPI SockEventSelectHelper(IN PSOCKET_INFORMATION Socket, IN WSAEVENT EventObject, IN LONG Events)
PWSH_OPEN_SOCKET WSHOpenSocket
struct _ASYNC_DATA ASYNC_DATA
INT WSPAPI SockSocket(INT AddressFamily, INT SocketType, INT Protocol, LPGUID ProviderId, GROUP g, DWORD dwFlags, DWORD ProviderFlags, DWORD ServiceFlags, DWORD CatalogEntryId, PSOCKET_INFORMATION *NewSocket)
PWSH_OPEN_SOCKET2 WSHOpenSocket2
_Must_inspect_result_ _In_ ULONG Flags
INT WSPAPI WSPCloseSocket(IN SOCKET s, OUT LPINT lpErrno)
VOID WSPAPI SockHandleAsyncIndication(IN PASYNC_COMPLETION_ROUTINE Callback, IN PVOID Context, IN PIO_STATUS_BLOCK IoStatusBlock)
WSAPROTOCOL_INFOW SockTcpProviderInfo
BOOL SockProcessTerminating
INT WSPAPI WSPIoctl(IN SOCKET s, IN DWORD dwIoControlCode, IN LPVOID lpvInBuffer, IN DWORD cbInBuffer, OUT LPVOID lpvOutBuffer, IN DWORD cbOutBuffer, OUT LPDWORD lpcbBytesReturned, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, IN LPWSATHREADID lpThreadId, OUT LPINT lpErrno)
PWSH_ADDRESS_TO_STRING WSHAddressToString
struct _SOCKET_INFORMATION SOCKET_INFORMATION
VOID WSPAPI SockDereferenceSocket(IN PSOCKET_INFORMATION Socket)
INT WSPAPI SockCloseSocket(IN PSOCKET_INFORMATION Socket)
GLenum const GLvoid * addr
#define InterlockedDecrement
PWSH_GET_SOCKET_INFORMATION WSHGetSocketInformation
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
INT WSPAPI WSPRecvFrom(IN SOCKET s, IN OUT LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesRecvd, IN OUT LPDWORD lpFlags, OUT LPSOCKADDR lpFrom, IN OUT LPINT lpFromlen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, IN LPWSATHREADID lpThreadId, OUT LPINT lpErrno)
INT WSPAPI SockUpdateWindowSizes(IN PSOCKET_INFORMATION Socket, IN BOOLEAN Force)
struct _HELPER_DATA * PHELPER_DATA
INT(WINAPI * PWSH_OPEN_SOCKET2)(PINT, PINT, PINT, GROUP, DWORD, PUNICODE_STRING, PVOID *, PDWORD)
PSOCKET_INFORMATION WSPAPI SockFindAndReferenceSocket(IN SOCKET Handle, IN BOOLEAN Import)
VOID WSPAPI SockCancelIo(IN SOCKET Handle)
VOID WSPAPI SockProcessAsyncSelect(PSOCKET_INFORMATION Socket, PASYNC_DATA AsyncData)
SOCKET WSPAPI WSPSocket(IN INT af, IN INT type, IN INT protocol, IN LPWSAPROTOCOL_INFOW lpProtocolInfo, IN GROUP g, IN DWORD dwFlags, OUT LPINT lpErrno)
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
LONG SockProcessPendingAPCCount
IO_STATUS_BLOCK IoStatusBlock
DWORD SockReceiveBufferWindow
INT WSPAPI SockLoadHelperDll(PWSTR TransportName, PWINSOCK_MAPPING Mapping, PHELPER_DATA *HelperDllData)
LONG SockAsyncThreadReferenceCount
FORCEINLINE struct _TEB * NtCurrentTeb(VOID)
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED lpOverlapped
INT WSPAPI SockAsyncThread(PVOID ThreadParam)
struct _ASYNC_DATA * PASYNC_DATA
INT WSPAPI SockBuildSockaddr(OUT PSOCKADDR Sockaddr, OUT PINT SockaddrLength, IN PTRANSPORT_ADDRESS TdiAddress)
PWSH_SET_SOCKET_INFORMATION WSHSetSocketInformation
INT WSPAPI WSPBind(IN SOCKET s, IN CONST SOCKADDR *name, IN INT namelen, OUT LPINT lpErrno)
static OUT PIO_STATUS_BLOCK IoStatusBlock
struct _WINSOCK_TEB_DATA WINSOCK_TEB_DATA
VOID WSPAPI SockIoCompletion(IN PVOID ApcContext, IN PIO_STATUS_BLOCK IoStatusBlock, DWORD Reserved)
INT WSPAPI WSPSendTo(IN SOCKET s, IN LPWSABUF lpBuffers, IN DWORD dwBufferCount, OUT LPDWORD lpNumberOfBytesSent, IN DWORD dwFlags, IN CONST SOCKADDR *lpTo, IN INT iTolen, IN LPWSAOVERLAPPED lpOverlapped, IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, IN LPWSATHREADID lpThreadId, OUT LPINT lpErrno)
INT WSPAPI WSPShutdown(IN SOCKET s, IN INT how, OUT LPINT lpErrno)
INT(WINAPI * PWSH_JOIN_LEAF)(PVOID, SOCKET, HANDLE, HANDLE, PVOID, SOCKET, PSOCKADDR, DWORD, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD)
INT WSPAPI WSPGetPeerName(IN SOCKET s, OUT LPSOCKADDR name, IN OUT LPINT namelen, OUT LPINT lpErrno)
INT(WINAPI * PWSH_GET_SOCKADDR_TYPE)(PSOCKADDR, DWORD, PSOCKADDR_INFO)
VOID WSPAPI NewIcfConnection(IN PSOCK_ICF_DATA IcfData)
struct tagContext Context
SOCK_SHARED_INFO SharedData
void(CALLBACK * LPWSAOVERLAPPED_COMPLETION_ROUTINE)(IN DWORD dwError, IN DWORD cbTransferred, IN LPWSAOVERLAPPED lpOverlapped, IN DWORD dwFlags)
_Must_inspect_result_ _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFWAITLOCK * Lock
FORCEINLINE VOID WSPAPI SockDereferenceHelperDll(IN PHELPER_DATA Helper)
BOOLEAN SockAsyncSelectCalled
struct _SOCK_RW_LOCK SOCK_RW_LOCK
VOID WSPAPI InitializeIcfConnection(IN PSOCK_ICF_DATA IcfData)
GLuint GLuint GLsizei GLenum type
INT WSPAPI SockSetHandleContext(IN PSOCKET_INFORMATION Socket)
INT WSPAPI WSPSendDisconnect(IN SOCKET s, IN LPWSABUF lpOutboundDisconnectData, OUT LPINT lpErrno)
INT WSPAPI SockCreateAsyncQueuePort(VOID)
INT WSPAPI WSPEnumNetworkEvents(IN SOCKET s, IN WSAEVENT hEventObject, OUT LPWSANETWORKEVENTS lpNetworkEvents, OUT LPINT lpErrno)
INT(WINAPI * PWSH_NOTIFY)(PVOID, SOCKET, HANDLE, HANDLE, DWORD)
INT(WINAPI * PWSH_SET_SOCKET_INFORMATION)(PVOID, SOCKET, HANDLE, HANDLE, INT, INT, PCHAR, INT)
INT WSPAPI NtStatusToSocketError(IN NTSTATUS Status)
INT(WINAPI * PWSH_GET_WILDCARD_SOCKADDR)(PVOID, PSOCKADDR, PINT)
RTL_CRITICAL_SECTION Lock
_Inout_ PVCB _In_ BOOLEAN Force
PRTL_HEAP_ALLOCATE SockAllocateHeapRoutine
PULONG MinorVersion OPTIONAL
_In_ DWORD dwIoControlCode