blob: bab0d4c3a8acf28b39c1e66349a3098050035928 [file] [log] [blame]
/****************************************************************************
****************************************************************************
***
*** This header was generated from a ReactOS header to make
*** information necessary for userspace to call into the Windows
*** kernel available to Dr. Memory. It contains only constants,
*** structures, and macros generated from the original header, and
*** thus, contains no copyrightable information.
***
****************************************************************************
****************************************************************************/
/* from reactos/include/reactos/winsock/msafdlib.h */
#ifndef __MSAFDLIB_H
#define __MSAFDLIB_H
/* Socket State */
typedef enum _SOCKET_STATE
{
SocketUndefined = -1,
SocketOpen,
SocketBound,
SocketBoundUdp,
SocketConnected,
SocketClosed
} SOCKET_STATE, *PSOCKET_STATE;
/*
* Shared Socket Information.
* It's called shared because we send it to Kernel-Mode for safekeeping
*/
typedef struct _SOCK_SHARED_INFO {
SOCKET_STATE State;
INT AddressFamily;
INT SocketType;
INT Protocol;
INT SizeOfLocalAddress;
INT SizeOfRemoteAddress;
struct linger LingerData;
ULONG SendTimeout;
ULONG RecvTimeout;
ULONG SizeOfRecvBuffer;
ULONG SizeOfSendBuffer;
struct {
BOOLEAN Listening:1;
BOOLEAN Broadcast:1;
BOOLEAN Debug:1;
BOOLEAN OobInline:1;
BOOLEAN ReuseAddresses:1;
BOOLEAN ExclusiveAddressUse:1;
BOOLEAN NonBlocking:1;
BOOLEAN DontUseWildcard:1;
BOOLEAN ReceiveShutdown:1;
BOOLEAN SendShutdown:1;
BOOLEAN UseDelayedAcceptance:1;
BOOLEAN UseSAN:1;
/* timurrrr: based on XP 32-bit vs Win7 observations: i#375 */
BOOLEAN HasGUID:1;
}; // Flags
DWORD CreateFlags;
DWORD CatalogEntryId;
DWORD ServiceFlags1;
DWORD ProviderFlags;
GROUP GroupID;
DWORD GroupType;
INT GroupPriority;
INT SocketLastError;
HWND hWnd;
LONG Unknown;
DWORD SequenceNumber;
UINT wMsg;
LONG AsyncEvents;
LONG AsyncDisabledEvents;
} SOCK_SHARED_INFO, *PSOCK_SHARED_INFO;
/* The blob of data we send to Kernel-Mode for safekeeping */
/* i#375 observations: on 5.1, SOCKET_CONTEXT doesn't contain GUID in the middle */
typedef struct _SOCKET_CONTEXT_NOGUID {
SOCK_SHARED_INFO SharedData;
ULONG SizeOfHelperData;
ULONG Padding;
/* Plus SOCKADDR LocalAddress; presumably var-len */
/* Plus SOCKADDR RemoteAddress; presumably var-len */
/* Plus Helper Data */
} SOCKET_CONTEXT_NOGUID, *PSOCKET_CONTEXT_NOGUID;
typedef struct _SOCKET_CONTEXT {
SOCK_SHARED_INFO SharedData;
GUID Guid; /* bruening: observed on XP 64-bit and win7 (i#375) */
ULONG SizeOfHelperData;
ULONG Padding;
/* Plus SOCKADDR LocalAddress; presumably var-len */
/* Plus SOCKADDR RemoteAddress; presumably var-len */
/* Plus Helper Data */
} SOCKET_CONTEXT, *PSOCKET_CONTEXT;
#endif /* __MSAFDLIB_H */