Headers diff for mswsock.dll between 6.1.7601.18254-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 mswsock.h (6.1.7601.18254-Windows_7.0)   mswsock.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 24 skipping to change at line 24
Revision History: Revision History:
--*/ --*/
#ifndef _MSWSOCK_ #ifndef _MSWSOCK_
#define _MSWSOCK_ #define _MSWSOCK_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#include <winapifamily.h>
#if !defined(_WINSOCK_DEPRECATED_BY)
#if ((defined(_WINSOCK_DEPRECATED_NO_WARNINGS) || defined(BUILD_WINDOWS)) && !de
fined(_WINSOCK_DEPRECATE_WARNINGS)) || defined(MIDL_PASS)
#define _WINSOCK_DEPRECATED_BY(replacement)
#else
#define _WINSOCK_DEPRECATED_BY(replacement) __declspec(deprecated("Use " ## repl
acement ## " instead or define _WINSOCK_DEPRECATED_NO_WARNINGS to disable deprec
ated API warnings"))
#endif
#endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <mswsockdef.h> #include <mswsockdef.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Options for connect and disconnect data and options. Used only by * Options for connect and disconnect data and options. Used only by
* non-TCP/IP transports such as DECNet, OSI TP4, etc. * non-TCP/IP transports such as DECNet, OSI TP4, etc.
*/ */
#define SO_CONNDATA 0x7000 #define SO_CONNDATA 0x7000
#define SO_CONNOPT 0x7001 #define SO_CONNOPT 0x7001
#define SO_DISCDATA 0x7002 #define SO_DISCDATA 0x7002
#define SO_DISCOPT 0x7003 #define SO_DISCOPT 0x7003
#define SO_CONNDATALEN 0x7004 #define SO_CONNDATALEN 0x7004
#define SO_CONNOPTLEN 0x7005 #define SO_CONNOPTLEN 0x7005
skipping to change at line 52 skipping to change at line 64
#define SO_DISCOPTLEN 0x7007 #define SO_DISCOPTLEN 0x7007
/* /*
* Option for opening sockets for synchronous access. * Option for opening sockets for synchronous access.
*/ */
#define SO_OPENTYPE 0x7008 #define SO_OPENTYPE 0x7008
#define SO_SYNCHRONOUS_ALERT 0x10 #define SO_SYNCHRONOUS_ALERT 0x10
#define SO_SYNCHRONOUS_NONALERT 0x20 #define SO_SYNCHRONOUS_NONALERT 0x20
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Other NT-specific options. * Other NT-specific options.
*/ */
#define SO_MAXDG 0x7009 #define SO_MAXDG 0x7009
#define SO_MAXPATHDG 0x700A #define SO_MAXPATHDG 0x700A
#define SO_UPDATE_ACCEPT_CONTEXT 0x700B #define SO_UPDATE_ACCEPT_CONTEXT 0x700B
#define SO_CONNECT_TIME 0x700C #define SO_CONNECT_TIME 0x700C
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#define SO_UPDATE_CONNECT_CONTEXT 0x7010 #define SO_UPDATE_CONNECT_CONTEXT 0x7010
#endif //(_WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT >= 0x0501)
/* /*
* TCP options. * TCP options.
*/ */
#define TCP_BSDURGENT 0x7000 #define TCP_BSDURGENT 0x7000
/* /*
* MS Transport Provider IOCTL to control * MS Transport Provider IOCTL to control
* reporting PORT_UNREACHABLE messages * reporting PORT_UNREACHABLE messages
* on UDP sockets via recv/WSARecv/etc. * on UDP sockets via recv/WSARecv/etc.
* Path TRUE in input buffer to enable (default if supported), * Pass TRUE in input buffer to enable (default if supported),
* FALSE to disable. * FALSE to disable.
*/ */
#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12) #define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if((_WIN32_WINNT < 0x0600) && (_WIN32_WINNT >= 0x0501)) #if((_WIN32_WINNT < 0x0600) && (_WIN32_WINNT >= 0x0501))
/* /*
* MS Transport Provider IOCTL to request * MS Transport Provider IOCTL to request
* notification when a given socket is closed. * notification when a given socket is closed.
* Input buffer must be a pointer to the socket handle. * Input buffer must be a pointer to the socket handle.
* Input buffer size must be exactly sizeof(HANDLE). * Input buffer size must be exactly sizeof(HANDLE).
* Output buffer and output buffer length must be * Output buffer and output buffer length must be
* NULL and 0 respectively. This IOCTL must always * NULL and 0 respectively. This IOCTL must always
* be issued with an overlapped structure. * be issued with an overlapped structure.
* *
* This Ioctl code is available only on WinXP SP2 and Win2k3 SP1. * This Ioctl code is available only on WinXP SP2 and Win2k3 SP1.
*/ */
#define SIO_SOCKET_CLOSE_NOTIFY _WSAIOW(IOC_VENDOR,13) #define SIO_SOCKET_CLOSE_NOTIFY _WSAIOW(IOC_VENDOR,13)
#endif //(_WIN32_WINNT < 0x0600 && _WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT < 0x0600 && _WIN32_WINNT >= 0x0501)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* MS Transport Provider IOCTL to control * MS Transport Provider IOCTL to control
* reporting NET_UNREACHABLE (TTL expired) messages * reporting NET_UNREACHABLE (TTL expired) messages
* on UDP sockets via recv/WSARecv/Etc. * on UDP sockets via recv/WSARecv/Etc.
* Pass TRUE in input buffer to enabled (default if supported), * Pass TRUE in input buffer to enabled (default if supported),
* FALSE to disable. * FALSE to disable.
*/ */
#define SIO_UDP_NETRESET _WSAIOW(IOC_VENDOR,15) #define SIO_UDP_NETRESET _WSAIOW(IOC_VENDOR,15)
/* /*
* Microsoft extended APIs. * Microsoft extended APIs.
*/ */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
_WINSOCK_DEPRECATED_BY("WSARecv()")
#if(_WIN32_WINNT < 0x0600) #if(_WIN32_WINNT < 0x0600)
int int
PASCAL FAR PASCAL FAR
WSARecvEx( WSARecvEx(
__in SOCKET s, _In_ SOCKET s,
__out_bcount_part(len, return) char FAR *buf, _Out_writes_bytes_to_(len, return) char FAR *buf,
__in int len, _In_ int len,
__inout int FAR *flags _Inout_ int FAR *flags
); );
#else //(_WIN32_WINNT < 0x0600) #else //(_WIN32_WINNT < 0x0600)
INT INT
PASCAL FAR PASCAL FAR
WSARecvEx( WSARecvEx(
__in SOCKET s, _In_ SOCKET s,
__out_bcount_part(len, return) CHAR FAR *buf, _Out_writes_bytes_to_(len, return) CHAR FAR *buf,
__in INT len, _In_ INT len,
__inout INT FAR *flags _Inout_ INT FAR *flags
); );
#endif //(_WIN32_WINNT < 0x0600) #endif //(_WIN32_WINNT < 0x0600)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
typedef struct _TRANSMIT_FILE_BUFFERS { typedef struct _TRANSMIT_FILE_BUFFERS {
LPVOID Head; LPVOID Head;
DWORD HeadLength; DWORD HeadLength;
LPVOID Tail; LPVOID Tail;
DWORD TailLength; DWORD TailLength;
} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, FAR *LPTRANSMIT_FILE_BUFFERS; } TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, FAR *LPTRANSMIT_FILE_BUFFERS;
#define TF_DISCONNECT 0x01 #define TF_DISCONNECT 0x01
#define TF_REUSE_SOCKET 0x02 #define TF_REUSE_SOCKET 0x02
#define TF_WRITE_BEHIND 0x04 #define TF_WRITE_BEHIND 0x04
#define TF_USE_DEFAULT_WORKER 0x00 #define TF_USE_DEFAULT_WORKER 0x00
#define TF_USE_SYSTEM_THREAD 0x10 #define TF_USE_SYSTEM_THREAD 0x10
#define TF_USE_KERNEL_APC 0x20 #define TF_USE_KERNEL_APC 0x20
__control_entrypoint(DllExport)
BOOL BOOL
PASCAL FAR PASCAL FAR
TransmitFile ( TransmitFile (
__in SOCKET hSocket, _In_ SOCKET hSocket,
__in HANDLE hFile, _In_ HANDLE hFile,
__in DWORD nNumberOfBytesToWrite, _In_ DWORD nNumberOfBytesToWrite,
__in DWORD nNumberOfBytesPerSend, _In_ DWORD nNumberOfBytesPerSend,
__inout_opt LPOVERLAPPED lpOverlapped, _Inout_opt_ LPOVERLAPPED lpOverlapped,
__in_opt LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, _In_opt_ LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
__in DWORD dwReserved _In_ DWORD dwReserved
); );
__control_entrypoint(DllExport)
BOOL BOOL
PASCAL FAR PASCAL FAR
AcceptEx ( AcceptEx (
__in SOCKET sListenSocket, _In_ SOCKET sListenSocket,
__in SOCKET sAcceptSocket, _In_ SOCKET sAcceptSocket,
__out_bcount_part(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLe _Out_writes_bytes_(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressL
ngth, ength) PVOID lpOutputBuffer,
*lpdwBytesReceived) PVOID lpOutputBuffer, _In_ DWORD dwReceiveDataLength,
__in DWORD dwReceiveDataLength, _In_ DWORD dwLocalAddressLength,
__in DWORD dwLocalAddressLength, _In_ DWORD dwRemoteAddressLength,
__in DWORD dwRemoteAddressLength, _Out_ LPDWORD lpdwBytesReceived,
__out LPDWORD lpdwBytesReceived, _Inout_ LPOVERLAPPED lpOverlapped
__inout LPOVERLAPPED lpOverlapped
); );
__control_entrypoint(DllExport)
VOID VOID
PASCAL FAR PASCAL FAR
GetAcceptExSockaddrs ( GetAcceptExSockaddrs (
__in_bcount(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLength) _In_reads_bytes_(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLen
PVOID lpOutputBuffer, gth) PVOID lpOutputBuffer,
__in DWORD dwReceiveDataLength, _In_ DWORD dwReceiveDataLength,
__in DWORD dwLocalAddressLength, _In_ DWORD dwLocalAddressLength,
__in DWORD dwRemoteAddressLength, _In_ DWORD dwRemoteAddressLength,
__deref_out_bcount(*LocalSockaddrLength) struct sockaddr **LocalSockaddr, _Outptr_result_bytebuffer_(*LocalSockaddrLength) struct sockaddr **LocalSock
__out LPINT LocalSockaddrLength, addr,
__deref_out_bcount(*RemoteSockaddrLength) struct sockaddr **RemoteSockaddr, _Out_ LPINT LocalSockaddrLength,
__out LPINT RemoteSockaddrLength _Outptr_result_bytebuffer_(*RemoteSockaddrLength) struct sockaddr **RemoteSo
ckaddr,
_Out_ LPINT RemoteSockaddrLength
); );
/* /*
* "QueryInterface" versions of the above APIs. * "QueryInterface" versions of the above APIs.
*/ */
typedef typedef
BOOL BOOL
(PASCAL FAR * LPFN_TRANSMITFILE)( (PASCAL FAR * LPFN_TRANSMITFILE)(
__in SOCKET hSocket, _In_ SOCKET hSocket,
__in HANDLE hFile, _In_ HANDLE hFile,
__in DWORD nNumberOfBytesToWrite, _In_ DWORD nNumberOfBytesToWrite,
__in DWORD nNumberOfBytesPerSend, _In_ DWORD nNumberOfBytesPerSend,
__inout_opt LPOVERLAPPED lpOverlapped, _Inout_opt_ LPOVERLAPPED lpOverlapped,
__in_opt LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, _In_opt_ LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,
__in DWORD dwReserved _In_ DWORD dwReserved
); );
#define WSAID_TRANSMITFILE \ #define WSAID_TRANSMITFILE \
{0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}} {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
typedef typedef
BOOL BOOL
(PASCAL FAR * LPFN_ACCEPTEX)( (PASCAL FAR * LPFN_ACCEPTEX)(
__in SOCKET sListenSocket, _In_ SOCKET sListenSocket,
__in SOCKET sAcceptSocket, _In_ SOCKET sAcceptSocket,
__in PVOID lpOutputBuffer, _Out_writes_bytes_(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressL
__in DWORD dwReceiveDataLength, ength) PVOID lpOutputBuffer,
__in DWORD dwLocalAddressLength, _In_ DWORD dwReceiveDataLength,
__in DWORD dwRemoteAddressLength, _In_ DWORD dwLocalAddressLength,
__out LPDWORD lpdwBytesReceived, _In_ DWORD dwRemoteAddressLength,
__inout LPOVERLAPPED lpOverlapped _Out_ LPDWORD lpdwBytesReceived,
_Inout_ LPOVERLAPPED lpOverlapped
); );
#define WSAID_ACCEPTEX \ #define WSAID_ACCEPTEX \
{0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}} {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
typedef typedef
VOID VOID
(PASCAL FAR * LPFN_GETACCEPTEXSOCKADDRS)( (PASCAL FAR * LPFN_GETACCEPTEXSOCKADDRS)(
__in PVOID lpOutputBuffer, _In_reads_bytes_(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLen
__in DWORD dwReceiveDataLength, gth) PVOID lpOutputBuffer,
__in DWORD dwLocalAddressLength, _In_ DWORD dwReceiveDataLength,
__in DWORD dwRemoteAddressLength, _In_ DWORD dwLocalAddressLength,
__deref_out_bcount(*LocalSockaddrLength) struct sockaddr **LocalSockaddr, _In_ DWORD dwRemoteAddressLength,
__out LPINT LocalSockaddrLength, _Outptr_result_bytebuffer_(*LocalSockaddrLength) struct sockaddr **LocalSock
__deref_out_bcount(*RemoteSockaddrLength) struct sockaddr **RemoteSockaddr, addr,
__out LPINT RemoteSockaddrLength _Out_ LPINT LocalSockaddrLength,
_Outptr_result_bytebuffer_(*RemoteSockaddrLength) struct sockaddr **RemoteSo
ckaddr,
_Out_ LPINT RemoteSockaddrLength
); );
#define WSAID_GETACCEPTEXSOCKADDRS \ #define WSAID_GETACCEPTEXSOCKADDRS \
{0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}} {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#if _MSC_VER >= 1200 #if _MSC_VER >= 1200
#pragma warning(push) #pragma warning(push)
#endif #endif
skipping to change at line 270 skipping to change at line 290
#endif #endif
#define TP_DISCONNECT TF_DISCONNECT #define TP_DISCONNECT TF_DISCONNECT
#define TP_REUSE_SOCKET TF_REUSE_SOCKET #define TP_REUSE_SOCKET TF_REUSE_SOCKET
#define TP_USE_DEFAULT_WORKER TF_USE_DEFAULT_WORKER #define TP_USE_DEFAULT_WORKER TF_USE_DEFAULT_WORKER
#define TP_USE_SYSTEM_THREAD TF_USE_SYSTEM_THREAD #define TP_USE_SYSTEM_THREAD TF_USE_SYSTEM_THREAD
#define TP_USE_KERNEL_APC TF_USE_KERNEL_APC #define TP_USE_KERNEL_APC TF_USE_KERNEL_APC
typedef typedef
BOOL BOOL
(PASCAL FAR * LPFN_TRANSMITPACKETS) ( (PASCAL FAR * LPFN_TRANSMITPACKETS) (
__in SOCKET hSocket, _In_ SOCKET hSocket,
__in_opt LPTRANSMIT_PACKETS_ELEMENT lpPacketArray, _In_opt_ LPTRANSMIT_PACKETS_ELEMENT lpPacketArray,
__in DWORD nElementCount, _In_ DWORD nElementCount,
__in DWORD nSendSize, _In_ DWORD nSendSize,
__inout_opt LPOVERLAPPED lpOverlapped, _Inout_opt_ LPOVERLAPPED lpOverlapped,
__in DWORD dwFlags _In_ DWORD dwFlags
); );
#define WSAID_TRANSMITPACKETS \ #define WSAID_TRANSMITPACKETS \
{0xd9689da0,0x1f90,0x11d3,{0x99,0x71,0x00,0xc0,0x4f,0x68,0xc8,0x76}} {0xd9689da0,0x1f90,0x11d3,{0x99,0x71,0x00,0xc0,0x4f,0x68,0xc8,0x76}}
typedef typedef
BOOL BOOL
(PASCAL FAR * LPFN_CONNECTEX) ( (PASCAL FAR * LPFN_CONNECTEX) (
__in SOCKET s, _In_ SOCKET s,
__in_bcount(namelen) const struct sockaddr FAR *name, _In_reads_bytes_(namelen) const struct sockaddr FAR *name,
__in int namelen, _In_ int namelen,
__in_opt PVOID lpSendBuffer, _In_reads_bytes_opt_(dwSendDataLength) PVOID lpSendBuffer,
__in DWORD dwSendDataLength, _In_ DWORD dwSendDataLength,
__out LPDWORD lpdwBytesSent, _Out_ LPDWORD lpdwBytesSent,
__inout LPOVERLAPPED lpOverlapped _Inout_ LPOVERLAPPED lpOverlapped
); );
#define WSAID_CONNECTEX \ #define WSAID_CONNECTEX \
{0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}} {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}
typedef typedef
BOOL BOOL
(PASCAL FAR * LPFN_DISCONNECTEX) ( (PASCAL FAR * LPFN_DISCONNECTEX) (
__in SOCKET s, _In_ SOCKET s,
__inout_opt LPOVERLAPPED lpOverlapped, _Inout_opt_ LPOVERLAPPED lpOverlapped,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in DWORD dwReserved _In_ DWORD dwReserved
); );
#define WSAID_DISCONNECTEX \ #define WSAID_DISCONNECTEX \
{0x7fda2e11,0x8630,0x436f,{0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}} {0x7fda2e11,0x8630,0x436f,{0xa0, 0x31, 0xf5, 0x36, 0xa6, 0xee, 0xc1, 0x57}}
#define DE_REUSE_SOCKET TF_REUSE_SOCKET #define DE_REUSE_SOCKET TF_REUSE_SOCKET
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Network-location awareness -- Name registration values for use * Network-location awareness -- Name registration values for use
* with WSASetService and other structures. * with WSASetService and other structures.
*/ */
// {6642243A-3BA8-4aa6-BAA5-2E0BD71FDD83} // {6642243A-3BA8-4aa6-BAA5-2E0BD71FDD83}
#define NLA_NAMESPACE_GUID \ #define NLA_NAMESPACE_GUID \
{0x6642243a,0x3ba8,0x4aa6,{0xba,0xa5,0x2e,0xb,0xd7,0x1f,0xdd,0x83}} {0x6642243a,0x3ba8,0x4aa6,{0xba,0xa5,0x2e,0xb,0xd7,0x1f,0xdd,0x83}}
// {6642243A-3BA8-4aa6-BAA5-2E0BD71FDD83} // {6642243A-3BA8-4aa6-BAA5-2E0BD71FDD83}
skipping to change at line 393 skipping to change at line 416
DWORD state; DWORD state;
WCHAR machineName[256]; WCHAR machineName[256];
WCHAR sharedAdapterName[256]; WCHAR sharedAdapterName[256];
} remote; } remote;
} ICS; } ICS;
} data; } data;
} NLA_BLOB, *PNLA_BLOB, * FAR LPNLA_BLOB; } NLA_BLOB, *PNLA_BLOB, * FAR LPNLA_BLOB;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* WSARecvMsg -- support for receiving ancilliary * WSARecvMsg -- support for receiving ancilliary
* data/control information with a message. * data/control information with a message.
*/ */
typedef typedef
INT INT
(PASCAL FAR * LPFN_WSARECVMSG) ( (PASCAL FAR * LPFN_WSARECVMSG) (
__in SOCKET s, _In_ SOCKET s,
__inout LPWSAMSG lpMsg, _Inout_ LPWSAMSG lpMsg,
__out_opt LPDWORD lpdwNumberOfBytesRecvd, _Out_opt_ LPDWORD lpdwNumberOfBytesRecvd,
__inout_opt LPWSAOVERLAPPED lpOverlapped, _Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
__in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
); );
#define WSAID_WSARECVMSG \ #define WSAID_WSARECVMSG \
{0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}} {0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}}
#endif //(_WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT >= 0x0501)
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Ioctl codes for translating socket handles to the base provider handle. * Ioctl codes for translating socket handles to the base provider handle.
* This is performed to prevent breaking non-IFS LSPs when new Winsock extension * This is performed to prevent breaking non-IFS LSPs when new Winsock extension
* funtions are added. * funtions are added.
*/ */
#define SIO_BSP_HANDLE _WSAIOR(IOC_WS2,27) #define SIO_BSP_HANDLE _WSAIOR(IOC_WS2,27)
#define SIO_BSP_HANDLE_SELECT _WSAIOR(IOC_WS2,28) #define SIO_BSP_HANDLE_SELECT _WSAIOR(IOC_WS2,28)
#define SIO_BSP_HANDLE_POLL _WSAIOR(IOC_WS2,29) #define SIO_BSP_HANDLE_POLL _WSAIOR(IOC_WS2,29)
/* /*
* Ioctl code used to translate a socket handle into the base provider's handle. * Ioctl code used to translate a socket handle into the base provider's handle.
* This is not used by any Winsock extension function and should not be intercep ted * This is not used by any Winsock extension function and should not be intercep ted
* by Winsock LSPs. * by Winsock LSPs.
*/ */
#define SIO_BASE_HANDLE _WSAIOR(IOC_WS2,34) #define SIO_BASE_HANDLE _WSAIOR(IOC_WS2,34)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Ioctl codes for Winsock extension functions. * Ioctl codes for Winsock extension functions.
*/ */
#define SIO_EXT_SELECT _WSAIORW(IOC_WS2,30) #define SIO_EXT_SELECT _WSAIORW(IOC_WS2,30)
#define SIO_EXT_POLL _WSAIORW(IOC_WS2,31) #define SIO_EXT_POLL _WSAIORW(IOC_WS2,31)
#define SIO_EXT_SENDMSG _WSAIORW(IOC_WS2,32) #define SIO_EXT_SENDMSG _WSAIORW(IOC_WS2,32)
#pragma warning(push) #pragma warning(push)
#pragma warning(disable:4200) /* zero-sized array in struct/union */ #pragma warning(disable:4200) /* zero-sized array in struct/union */
skipping to change at line 478 skipping to change at line 510
* MSG_DONTROUTE * MSG_DONTROUTE
* MSG_PARTIAL (a.k.a. MSG_EOR) (only for non-stream sockets) * MSG_PARTIAL (a.k.a. MSG_EOR) (only for non-stream sockets)
* MSG_OOB (only for stream style sockets) (NYI) * MSG_OOB (only for stream style sockets) (NYI)
* *
* Caller must provide either lpOverlapped or lpCompletionRoutine * Caller must provide either lpOverlapped or lpCompletionRoutine
* or neither (both NULL). * or neither (both NULL).
*/ */
typedef typedef
INT INT
(PASCAL FAR * LPFN_WSASENDMSG) ( (PASCAL FAR * LPFN_WSASENDMSG) (
__in SOCKET s, _In_ SOCKET s,
__in LPWSAMSG lpMsg, _In_ LPWSAMSG lpMsg,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__out_opt LPDWORD lpNumberOfBytesSent, _Out_opt_ LPDWORD lpNumberOfBytesSent,
__inout_opt LPWSAOVERLAPPED lpOverlapped OPTIONAL, _Inout_opt_ LPWSAOVERLAPPED lpOverlapped OPTIONAL,
__in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
); );
#define WSAID_WSASENDMSG /* a441e712-754f-43ca-84a7-0dee44cf606d */ \ #define WSAID_WSASENDMSG /* a441e712-754f-43ca-84a7-0dee44cf606d */ \
{0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}} {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}}
// //
// WSAPoll // WSAPoll
// //
typedef typedef
INT INT
(WSAAPI *LPFN_WSAPOLL)( (WSAAPI *LPFN_WSAPOLL)(
__inout LPWSAPOLLFD fdarray, _Inout_ LPWSAPOLLFD fdarray,
__in ULONG nfds, _In_ ULONG nfds,
__in INT timeout _In_ INT timeout
); );
#define WSAID_WSAPOLL \ #define WSAID_WSAPOLL \
{0x18C76F85,0xDC66,0x4964,{0x97,0x2E,0x23,0xC2,0x72,0x38,0x31,0x2B}} {0x18C76F85,0xDC66,0x4964,{0x97,0x2E,0x23,0xC2,0x72,0x38,0x31,0x2B}}
#endif //(_WIN32_WINNT >= 0x0600) #endif //(_WIN32_WINNT >= 0x0600)
typedef BOOL (PASCAL FAR * LPFN_RIORECEIVE)(
_In_ RIO_RQ SocketQueue,
_In_reads_(DataBufferCount) PRIO_BUF pData,
_In_ ULONG DataBufferCount,
_In_ DWORD Flags,
_In_ PVOID RequestContext
);
typedef int (PASCAL FAR * LPFN_RIORECEIVEEX)(
_In_ RIO_RQ SocketQueue,
_In_reads_(DataBufferCount) PRIO_BUF pData,
_In_ ULONG DataBufferCount,
_In_opt_ PRIO_BUF pLocalAddress,
_In_opt_ PRIO_BUF pRemoteAddress,
_In_opt_ PRIO_BUF pControlContext,
_In_opt_ PRIO_BUF pFlags,
_In_ DWORD Flags,
_In_ PVOID RequestContext
);
typedef BOOL (PASCAL FAR * LPFN_RIOSEND)(
_In_ RIO_RQ SocketQueue,
_In_reads_(DataBufferCount) PRIO_BUF pData,
_In_ ULONG DataBufferCount,
_In_ DWORD Flags,
_In_ PVOID RequestContext
);
typedef BOOL (PASCAL FAR * LPFN_RIOSENDEX)(
_In_ RIO_RQ SocketQueue,
_In_reads_(DataBufferCount) PRIO_BUF pData,
_In_ ULONG DataBufferCount,
_In_opt_ PRIO_BUF pLocalAddress,
_In_opt_ PRIO_BUF pRemoteAddress,
_In_opt_ PRIO_BUF pControlContext,
_In_opt_ PRIO_BUF pFlags,
_In_ DWORD Flags,
_In_ PVOID RequestContext
);
typedef VOID (PASCAL FAR * LPFN_RIOCLOSECOMPLETIONQUEUE)(
_In_ RIO_CQ CQ
);
typedef enum _RIO_NOTIFICATION_COMPLETION_TYPE {
RIO_EVENT_COMPLETION = 1,
RIO_IOCP_COMPLETION = 2,
} RIO_NOTIFICATION_COMPLETION_TYPE, *PRIO_NOTIFICATION_COMPLETION_TYPE;
#pragma warning(push)
#pragma warning(disable : 4201) /* Nonstandard extension: nameless struct/union
*/
typedef struct _RIO_NOTIFICATION_COMPLETION {
RIO_NOTIFICATION_COMPLETION_TYPE Type;
union {
struct {
HANDLE EventHandle;
BOOL NotifyReset;
} Event;
struct {
HANDLE IocpHandle;
PVOID CompletionKey;
PVOID Overlapped;
} Iocp;
};
} RIO_NOTIFICATION_COMPLETION, *PRIO_NOTIFICATION_COMPLETION;
#pragma warning(pop)
typedef RIO_CQ (PASCAL FAR * LPFN_RIOCREATECOMPLETIONQUEUE)(
_In_ DWORD QueueSize,
_In_opt_ PRIO_NOTIFICATION_COMPLETION NotificationCompletion
);
typedef RIO_RQ (PASCAL FAR * LPFN_RIOCREATEREQUESTQUEUE)(
_In_ SOCKET Socket,
_In_ ULONG MaxOutstandingReceive,
_In_ ULONG MaxReceiveDataBuffers,
_In_ ULONG MaxOutstandingSend,
_In_ ULONG MaxSendDataBuffers,
_In_ RIO_CQ ReceiveCQ,
_In_ RIO_CQ SendCQ,
_In_ PVOID SocketContext
);
typedef ULONG (PASCAL FAR * LPFN_RIODEQUEUECOMPLETION)(
_In_ RIO_CQ CQ,
_Out_writes_to_(ArraySize, return) PRIORESULT Array,
_In_ ULONG ArraySize
);
typedef VOID (PASCAL FAR * LPFN_RIODEREGISTERBUFFER)(
_In_ RIO_BUFFERID BufferId
);
typedef INT (PASCAL FAR * LPFN_RIONOTIFY)(
_In_ RIO_CQ CQ
);
typedef RIO_BUFFERID (PASCAL FAR * LPFN_RIOREGISTERBUFFER)(
_In_ PCHAR DataBuffer,
_In_ DWORD DataLength
);
typedef BOOL (PASCAL FAR * LPFN_RIORESIZECOMPLETIONQUEUE) (
_In_ RIO_CQ CQ,
_In_ DWORD QueueSize
);
typedef BOOL (PASCAL FAR * LPFN_RIORESIZEREQUESTQUEUE) (
_In_ RIO_RQ RQ,
_In_ DWORD MaxOutstandingReceive,
_In_ DWORD MaxOutstandingSend
);
typedef struct _RIO_EXTENSION_FUNCTION_TABLE {
DWORD cbSize;
LPFN_RIORECEIVE RIOReceive;
LPFN_RIORECEIVEEX RIOReceiveEx;
LPFN_RIOSEND RIOSend;
LPFN_RIOSENDEX RIOSendEx;
LPFN_RIOCLOSECOMPLETIONQUEUE RIOCloseCompletionQueue;
LPFN_RIOCREATECOMPLETIONQUEUE RIOCreateCompletionQueue;
LPFN_RIOCREATEREQUESTQUEUE RIOCreateRequestQueue;
LPFN_RIODEQUEUECOMPLETION RIODequeueCompletion;
LPFN_RIODEREGISTERBUFFER RIODeregisterBuffer;
LPFN_RIONOTIFY RIONotify;
LPFN_RIOREGISTERBUFFER RIORegisterBuffer;
LPFN_RIORESIZECOMPLETIONQUEUE RIOResizeCompletionQueue;
LPFN_RIORESIZEREQUESTQUEUE RIOResizeRequestQueue;
} RIO_EXTENSION_FUNCTION_TABLE, *PRIO_EXTENSION_FUNCTION_TABLE;
#define WSAID_MULTIPLE_RIO /* 8509e081-96dd-4005-b165-9e2ee8c79e3f */ \
{0x8509e081,0x96dd,0x4005,{0xb1,0x65,0x9e,0x2e,0xe8,0xc7,0x9e,0x3f}}
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _MSWSOCK_ */ #endif /* _MSWSOCK_ */
 End of changes. 30 change blocks. 
92 lines changed or deleted 270 lines changed or added


 nspapi.h (6.1.7601.18254-Windows_7.0)   nspapi.h (6.3.9600.17415-Windows_8.1) 
skipping to change at line 30 skipping to change at line 30
You must include "basetyps.h" first. Some types should You must include "basetyps.h" first. Some types should
use definitions from base files rather than redefine here. use definitions from base files rather than redefine here.
Unfortunately, so such base file exists. Unfortunately, so such base file exists.
--*/ --*/
#ifndef _NSPAPI_INCLUDED #ifndef _NSPAPI_INCLUDED
#define _NSPAPI_INCLUDED #define _NSPAPI_INCLUDED
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
#ifndef _tagBLOB_DEFINED #ifndef _tagBLOB_DEFINED
#define _tagBLOB_DEFINED #define _tagBLOB_DEFINED
#define _BLOB_DEFINED #define _BLOB_DEFINED
#define _LPBLOB_DEFINED #define _LPBLOB_DEFINED
typedef struct _BLOB { typedef struct _BLOB {
ULONG cbSize ; ULONG cbSize ;
skipping to change at line 516 skipping to change at line 521
#endif // UNICODE #endif // UNICODE
typedef DWORD (* LPFN_NSPAPI) (VOID ) ; typedef DWORD (* LPFN_NSPAPI) (VOID ) ;
// //
// Structures for using the service routines asynchronously. // Structures for using the service routines asynchronously.
// //
typedef typedef
VOID VOID
(*LPSERVICE_CALLBACK_PROC) ( (*LPSERVICE_CALLBACK_PROC) (
__in LPARAM lParam, _In_ LPARAM lParam,
__in HANDLE hAsyncTaskHandle _In_ HANDLE hAsyncTaskHandle
); );
typedef struct _SERVICE_ASYNC_INFO { typedef struct _SERVICE_ASYNC_INFO {
LPSERVICE_CALLBACK_PROC lpServiceCallbackProc; LPSERVICE_CALLBACK_PROC lpServiceCallbackProc;
LPARAM lParam; LPARAM lParam;
HANDLE hAsyncTaskHandle; HANDLE hAsyncTaskHandle;
} SERVICE_ASYNC_INFO, *PSERVICE_ASYNC_INFO, FAR * LPSERVICE_ASYNC_INFO; } SERVICE_ASYNC_INFO, *PSERVICE_ASYNC_INFO, FAR * LPSERVICE_ASYNC_INFO;
// //
// Public NSP API prototypes. // Public NSP API prototypes.
// //
INT INT
APIENTRY APIENTRY
EnumProtocolsA ( EnumProtocolsA (
__in_opt LPINT lpiProtocols, _In_opt_ LPINT lpiProtocols,
__out_bcount(*lpdwBufferLength) LPVOID lpProtocolBuffer, _Out_writes_bytes_(*lpdwBufferLength) LPVOID lpProtocolBuffer,
__inout LPDWORD lpdwBufferLength _Inout_ LPDWORD lpdwBufferLength
); );
// //
// Public NSP API prototypes. // Public NSP API prototypes.
// //
INT INT
APIENTRY APIENTRY
EnumProtocolsW ( EnumProtocolsW (
__in_opt LPINT lpiProtocols, _In_opt_ LPINT lpiProtocols,
__out_bcount(*lpdwBufferLength) LPVOID lpProtocolBuffer, _Out_writes_bytes_(*lpdwBufferLength) LPVOID lpProtocolBuffer,
__inout LPDWORD lpdwBufferLength _Inout_ LPDWORD lpdwBufferLength
); );
#ifdef UNICODE #ifdef UNICODE
#define EnumProtocols EnumProtocolsW #define EnumProtocols EnumProtocolsW
#else #else
#define EnumProtocols EnumProtocolsA #define EnumProtocols EnumProtocolsA
#endif // !UNICODE #endif // !UNICODE
INT INT
APIENTRY APIENTRY
GetAddressByNameA ( GetAddressByNameA (
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in LPGUID lpServiceType, _In_ LPGUID lpServiceType,
__in_opt LPSTR lpServiceName, _In_opt_ LPSTR lpServiceName,
__in_opt LPINT lpiProtocols, _In_opt_ LPINT lpiProtocols,
__in DWORD dwResolution, _In_ DWORD dwResolution,
__in_opt LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, _In_opt_ LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
__out_bcount(*lpdwBufferLength) LPVOID lpCsaddrBuffer, _Out_writes_bytes_(*lpdwBufferLength) LPVOID lpCsaddrBuffer
__inout LPDWORD lpdwBufferLength, ,
__inout_bcount_opt(*lpdwAliasBufferLength) LPSTR lpAliasBuffer, _Inout_ LPDWORD lpdwBufferLength,
__inout LPDWORD lpdwAliasBufferLength _Inout_updates_opt_(*lpdwAliasBufferLength) LPSTR lpAliasBuffer,
_Inout_ LPDWORD lpdwAliasBufferLength
); );
INT INT
APIENTRY APIENTRY
GetAddressByNameW ( GetAddressByNameW (
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in LPGUID lpServiceType, _In_ LPGUID lpServiceType,
__in_opt LPWSTR lpServiceName, _In_opt_ LPWSTR lpServiceName,
__in_opt LPINT lpiProtocols, _In_opt_ LPINT lpiProtocols,
__in DWORD dwResolution, _In_ DWORD dwResolution,
__in_opt LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, _In_opt_ LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
__out_bcount(*lpdwBufferLength) LPVOID lpCsaddrBuffer, _Out_writes_bytes_(*lpdwBufferLength) LPVOID lpCsaddrBuffer
__inout LPDWORD lpdwBufferLength, ,
__inout_ecount_opt(*lpdwAliasBufferLength) LPWSTR lpAliasBuffer, _Inout_ LPDWORD lpdwBufferLength,
__inout LPDWORD lpdwAliasBufferLength _Inout_updates_opt_(*lpdwAliasBufferLength) LPWSTR lpAliasBuffer,
_Inout_ LPDWORD lpdwAliasBufferLength
); );
#ifdef UNICODE #ifdef UNICODE
#define GetAddressByName GetAddressByNameW #define GetAddressByName GetAddressByNameW
#else #else
#define GetAddressByName GetAddressByNameA #define GetAddressByName GetAddressByNameA
#endif // !UNICODE #endif // !UNICODE
INT INT
APIENTRY APIENTRY
GetTypeByNameA ( GetTypeByNameA (
__in LPSTR lpServiceName, _In_ LPSTR lpServiceName,
__inout LPGUID lpServiceType _Inout_ LPGUID lpServiceType
); );
INT INT
APIENTRY APIENTRY
GetTypeByNameW ( GetTypeByNameW (
__in LPWSTR lpServiceName, _In_ LPWSTR lpServiceName,
__inout LPGUID lpServiceType _Inout_ LPGUID lpServiceType
); );
#ifdef UNICODE #ifdef UNICODE
#define GetTypeByName GetTypeByNameW #define GetTypeByName GetTypeByNameW
#else #else
#define GetTypeByName GetTypeByNameA #define GetTypeByName GetTypeByNameA
#endif // !UNICODE #endif // !UNICODE
INT INT
APIENTRY APIENTRY
GetNameByTypeA ( GetNameByTypeA (
__in LPGUID lpServiceType, _In_ LPGUID lpServiceType,
__out_bcount(dwNameLength) LPSTR lpServiceName, _Out_writes_bytes_(dwNameLength) LPSTR lpServiceName,
__in DWORD dwNameLength _In_ DWORD dwNameLength
); );
INT INT
APIENTRY APIENTRY
GetNameByTypeW ( GetNameByTypeW (
__in LPGUID lpServiceType, _In_ LPGUID lpServiceType,
__out_bcount(dwNameLength) LPWSTR lpServiceName, _Out_writes_bytes_(dwNameLength) LPWSTR lpServiceName,
__in DWORD dwNameLength _In_ DWORD dwNameLength
); );
#ifdef UNICODE #ifdef UNICODE
#define GetNameByType GetNameByTypeW #define GetNameByType GetNameByTypeW
#else #else
#define GetNameByType GetNameByTypeA #define GetNameByType GetNameByTypeA
#endif // !UNICODE #endif // !UNICODE
INT INT
APIENTRY APIENTRY
SetServiceA ( SetServiceA (
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in DWORD dwOperation, _In_ DWORD dwOperation,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in LPSERVICE_INFOA lpServiceInfo, _In_ LPSERVICE_INFOA lpServiceInfo,
__in_opt LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, _In_opt_ LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
__out LPDWORD lpdwStatusFlags _Out_ LPDWORD lpdwStatusFlags
); );
INT INT
APIENTRY APIENTRY
SetServiceW ( SetServiceW (
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in DWORD dwOperation, _In_ DWORD dwOperation,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in LPSERVICE_INFOW lpServiceInfo, _In_ LPSERVICE_INFOW lpServiceInfo,
__in_opt LPSERVICE_ASYNC_INFO lpServiceAsyncInfo, _In_opt_ LPSERVICE_ASYNC_INFO lpServiceAsyncInfo,
__out LPDWORD lpdwStatusFlags _Out_ LPDWORD lpdwStatusFlags
); );
#ifdef UNICODE #ifdef UNICODE
#define SetService SetServiceW #define SetService SetServiceW
#else #else
#define SetService SetServiceA #define SetService SetServiceA
#endif // !UNICODE #endif // !UNICODE
INT INT
APIENTRY APIENTRY
GetServiceA ( GetServiceA (
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in LPGUID lpGuid, _In_ LPGUID lpGuid,
__in LPSTR lpServiceName, _In_ LPSTR lpServiceName,
__in DWORD dwProperties, _In_ DWORD dwProperties,
__out_bcount(*lpdwBufferSize) LPVOID lpBuffer, _Out_writes_bytes_(*lpdwBufferSize) LPVOID lpBuffer,
__inout LPDWORD lpdwBufferSize, _Inout_ LPDWORD lpdwBufferSize,
__in_opt LPSERVICE_ASYNC_INFO lpServiceAsyncInfo _In_opt_ LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
); );
INT INT
APIENTRY APIENTRY
GetServiceW ( GetServiceW (
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in LPGUID lpGuid, _In_ LPGUID lpGuid,
__in LPWSTR lpServiceName, _In_ LPWSTR lpServiceName,
__in DWORD dwProperties, _In_ DWORD dwProperties,
__out_bcount(*lpdwBufferSize) LPVOID lpBuffer, _Out_writes_bytes_(*lpdwBufferSize) LPVOID lpBuffer,
__inout LPDWORD lpdwBufferSize, _Inout_ LPDWORD lpdwBufferSize,
__in_opt LPSERVICE_ASYNC_INFO lpServiceAsyncInfo _In_opt_ LPSERVICE_ASYNC_INFO lpServiceAsyncInfo
); );
#ifdef UNICODE #ifdef UNICODE
#define GetService GetServiceW #define GetService GetServiceW
#else #else
#define GetService GetServiceA #define GetService GetServiceA
#endif // !UNICODE #endif // !UNICODE
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // _NSPAPI_INCLUDED #endif // _NSPAPI_INCLUDED
 End of changes. 15 change blocks. 
64 lines changed or deleted 74 lines changed or added


 ws2spi.h (6.1.7601.18254-Windows_7.0)   ws2spi.h (6.3.9600.17415-Windows_8.1) 
//$TAG BIZDEV
// $IPCategory:
// $DealPointID: 118736
// $AgreementName: berkeley software distribution license
// $AgreementType: oss license
// $ExternalOrigin: regents of the university of california
//$ENDTAG
//$TAG ENGR
// $Owner: vadime
// $Module: published_inc
//
//$ENDTAG
/* WS2SPI.H -- definitions to be used with the WinSock service provider. /* WS2SPI.H -- definitions to be used with the WinSock service provider.
* *
* Copyright (c) Microsoft Corporation. All rights reserved. * Copyright (c) Microsoft Corporation. All rights reserved.
* *
* This header file corresponds to version 2.2.x of the WinSock SPI * This header file corresponds to version 2.2.x of the WinSock SPI
* specification. * specification.
* *
* This file includes parts which are Copyright (c) 1982-1986 Regents * This file includes parts which are Copyright (c) 1982-1986 Regents
* of the University of California. All rights reserved. The * of the University of California. All rights reserved. The
* Berkeley Software License Agreement specifies the terms and * Berkeley Software License Agreement specifies the terms and
* conditions for redistribution. * conditions for redistribution.
*/ */
#ifndef _WINSOCK2SPI_ #ifndef _WINSOCK2SPI_
#define _WINSOCK2SPI_ #define _WINSOCK2SPI_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Pull in WINSOCK2.H if necessary * Pull in WINSOCK2.H if necessary
*/ */
#ifndef _WINSOCK2API_ #ifndef _WINSOCK2API_
#include <winsock2.h> #include <winsock2.h>
#endif /* _WINSOCK2API_ */ #endif /* _WINSOCK2API_ */
/* /*
skipping to change at line 106 skipping to change at line 97
VOID VOID
(CALLBACK FAR * LPWSAUSERAPC)( (CALLBACK FAR * LPWSAUSERAPC)(
DWORD_PTR dwContext DWORD_PTR dwContext
); );
/* /*
* Pointers to the individual entries in a service provider's proc table. * Pointers to the individual entries in a service provider's proc table.
*/ */
typedef typedef
__checkReturn _Must_inspect_result_
SOCKET SOCKET
(WSPAPI * LPWSPACCEPT)( (WSPAPI * LPWSPACCEPT)(
__in SOCKET s, _In_ SOCKET s,
__out_bcount_part_opt(*addrlen, *addrlen) struct sockaddr FAR * addr, _Out_writes_bytes_to_opt_(*addrlen, *addrlen) struct sockaddr FAR * addr,
__inout_opt LPINT addrlen, _Inout_opt_ LPINT addrlen,
__in_opt LPCONDITIONPROC lpfnCondition, _In_opt_ LPCONDITIONPROC lpfnCondition,
__in_opt DWORD_PTR dwCallbackData, _In_opt_ DWORD_PTR dwCallbackData,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
INT INT
(WSPAPI * LPWSPADDRESSTOSTRING)( (WSPAPI * LPWSPADDRESSTOSTRING)(
__in_bcount(dwAddressLength) LPSOCKADDR lpsaAddress, _In_reads_bytes_(dwAddressLength) LPSOCKADDR lpsaAddress,
__in DWORD dwAddressLength, _In_ DWORD dwAddressLength,
__in_opt LPWSAPROTOCOL_INFOW lpProtocolInfo, _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
__out_ecount_part(*lpdwAddressStringLength, *lpdwAddressStringLength) LPWSTR _Out_writes_to_(*lpdwAddressStringLength, *lpdwAddressStringLength) LPWSTR l
lpszAddressString, pszAddressString,
__inout LPDWORD lpdwAddressStringLength, _Inout_ LPDWORD lpdwAddressStringLength,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPASYNCSELECT)( (WSPAPI * LPWSPASYNCSELECT)(
__in SOCKET s, _In_ SOCKET s,
__in HWND hWnd, _In_ HWND hWnd,
__in unsigned int wMsg, _In_ unsigned int wMsg,
__in long lEvent, _In_ long lEvent,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPBIND)( (WSPAPI * LPWSPBIND)(
__in SOCKET s, _In_ SOCKET s,
__in_bcount(namelen) const struct sockaddr FAR * name, _In_reads_bytes_(namelen) const struct sockaddr FAR * name,
__in int namelen, _In_ int namelen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPCANCELBLOCKINGCALL)( (WSPAPI * LPWSPCANCELBLOCKINGCALL)(
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPCLEANUP)( (WSPAPI * LPWSPCLEANUP)(
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPCLOSESOCKET)( (WSPAPI * LPWSPCLOSESOCKET)(
__in SOCKET s, _In_ SOCKET s,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPCONNECT)( (WSPAPI * LPWSPCONNECT)(
__in SOCKET s, _In_ SOCKET s,
__in_bcount(namelen) const struct sockaddr FAR * name, _In_reads_bytes_(namelen) const struct sockaddr FAR * name,
__in int namelen, _In_ int namelen,
__in_opt LPWSABUF lpCallerData, _In_opt_ LPWSABUF lpCallerData,
__out_opt LPWSABUF lpCalleeData, _Out_opt_ LPWSABUF lpCalleeData,
__in_opt LPQOS lpSQOS, _In_opt_ LPQOS lpSQOS,
__in_opt LPQOS lpGQOS, _In_opt_ LPQOS lpGQOS,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPDUPLICATESOCKET)( (WSPAPI * LPWSPDUPLICATESOCKET)(
__in SOCKET s, _In_ SOCKET s,
__in DWORD dwProcessId, _In_ DWORD dwProcessId,
__out LPWSAPROTOCOL_INFOW lpProtocolInfo, _Out_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPENUMNETWORKEVENTS)( (WSPAPI * LPWSPENUMNETWORKEVENTS)(
__in SOCKET s, _In_ SOCKET s,
__in WSAEVENT hEventObject, _In_ WSAEVENT hEventObject,
__out LPWSANETWORKEVENTS lpNetworkEvents, _Out_ LPWSANETWORKEVENTS lpNetworkEvents,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPEVENTSELECT)( (WSPAPI * LPWSPEVENTSELECT)(
__in SOCKET s, _In_ SOCKET s,
__in WSAEVENT hEventObject, _In_opt_ WSAEVENT hEventObject,
__in long lNetworkEvents, _In_ long lNetworkEvents,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
BOOL BOOL
(WSPAPI * LPWSPGETOVERLAPPEDRESULT)( (WSPAPI * LPWSPGETOVERLAPPEDRESULT)(
__in SOCKET s, _In_ SOCKET s,
__in LPWSAOVERLAPPED lpOverlapped, _In_ LPWSAOVERLAPPED lpOverlapped,
__out LPDWORD lpcbTransfer, _Out_ LPDWORD lpcbTransfer,
__in BOOL fWait, _In_ BOOL fWait,
__out LPDWORD lpdwFlags, _Out_ LPDWORD lpdwFlags,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPGETPEERNAME)( (WSPAPI * LPWSPGETPEERNAME)(
__in SOCKET s, _In_ SOCKET s,
__out_bcount_part(*namelen, *namelen) struct sockaddr FAR * name, _Out_writes_bytes_to_(*namelen, *namelen) struct sockaddr FAR * name,
__inout LPINT namelen, _Inout_ LPINT namelen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPGETSOCKNAME)( (WSPAPI * LPWSPGETSOCKNAME)(
__in SOCKET s, _In_ SOCKET s,
__out_bcount_part(*namelen, *namelen) struct sockaddr FAR * name, _Out_writes_bytes_to_(*namelen, *namelen) struct sockaddr FAR * name,
__inout LPINT namelen, _Inout_ LPINT namelen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPGETSOCKOPT)( (WSPAPI * LPWSPGETSOCKOPT)(
__in SOCKET s, _In_ SOCKET s,
__in int level, _In_ int level,
__in int optname, _In_ int optname,
__out_bcount(*optlen) char FAR * optval, _Out_writes_bytes_(*optlen) char FAR * optval,
__inout LPINT optlen, _Inout_ LPINT optlen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
BOOL BOOL
(WSPAPI * LPWSPGETQOSBYNAME)( (WSPAPI * LPWSPGETQOSBYNAME)(
__in SOCKET s, _In_ SOCKET s,
__in LPWSABUF lpQOSName, _In_ LPWSABUF lpQOSName,
__out LPQOS lpQOS, _Out_ LPQOS lpQOS,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPIOCTL)( (WSPAPI * LPWSPIOCTL)(
__in SOCKET s, _In_ SOCKET s,
__in DWORD dwIoControlCode, _In_ DWORD dwIoControlCode,
__in_bcount_opt(cbInBuffer) LPVOID lpvInBuffer, _In_reads_bytes_opt_(cbInBuffer) LPVOID lpvInBuffer,
__in DWORD cbInBuffer, _In_ DWORD cbInBuffer,
__out_bcount_part_opt(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuffer, _Out_writes_bytes_to_opt_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOutBuff
__in DWORD cbOutBuffer, er,
__out LPDWORD lpcbBytesReturned, _In_ DWORD cbOutBuffer,
__inout_opt LPWSAOVERLAPPED lpOverlapped, _Out_ LPDWORD lpcbBytesReturned,
__in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
__in_opt LPWSATHREADID lpThreadId, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
__out LPINT lpErrno _In_opt_ LPWSATHREADID lpThreadId,
_Out_ LPINT lpErrno
); );
typedef typedef
SOCKET SOCKET
(WSPAPI * LPWSPJOINLEAF)( (WSPAPI * LPWSPJOINLEAF)(
__in SOCKET s, _In_ SOCKET s,
__in_bcount(namelen) const struct sockaddr FAR * name, _In_reads_bytes_(namelen) const struct sockaddr FAR * name,
__in int namelen, _In_ int namelen,
__in_opt LPWSABUF lpCallerData, _In_opt_ LPWSABUF lpCallerData,
__out_opt LPWSABUF lpCalleeData, _Out_opt_ LPWSABUF lpCalleeData,
__in_opt LPQOS lpSQOS, _In_opt_ LPQOS lpSQOS,
__in_opt LPQOS lpGQOS, _In_opt_ LPQOS lpGQOS,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPLISTEN)( (WSPAPI * LPWSPLISTEN)(
__in SOCKET s, _In_ SOCKET s,
__in int backlog, _In_ int backlog,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPRECV)( (WSPAPI * LPWSPRECV)(
__in SOCKET s, _In_ SOCKET s,
__in_ecount(dwBufferCount) LPWSABUF lpBuffers, _In_reads_(dwBufferCount) LPWSABUF lpBuffers,
__in DWORD dwBufferCount, _In_ DWORD dwBufferCount,
__out_opt LPDWORD lpNumberOfBytesRecvd, _Out_opt_ LPDWORD lpNumberOfBytesRecvd,
__inout LPDWORD lpFlags, _Inout_ LPDWORD lpFlags,
__inout_opt LPWSAOVERLAPPED lpOverlapped, _Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
__in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
__in_opt LPWSATHREADID lpThreadId, _In_opt_ LPWSATHREADID lpThreadId,
__in LPINT lpErrno _In_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPRECVDISCONNECT)( (WSPAPI * LPWSPRECVDISCONNECT)(
__in SOCKET s, _In_ SOCKET s,
__in_opt LPWSABUF lpInboundDisconnectData, _In_opt_ LPWSABUF lpInboundDisconnectData,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPRECVFROM)( (WSPAPI * LPWSPRECVFROM)(
__in SOCKET s, _In_ SOCKET s,
__in_ecount(dwBufferCount) LPWSABUF lpBuffers, _In_reads_(dwBufferCount) LPWSABUF lpBuffers,
__in DWORD dwBufferCount, _In_ DWORD dwBufferCount,
__out_opt LPDWORD lpNumberOfBytesRecvd, _Out_opt_ LPDWORD lpNumberOfBytesRecvd,
__inout LPDWORD lpFlags, _Inout_ LPDWORD lpFlags,
__out_bcount_part_opt(*lpFromLen, *lpFromLen) struct sockaddr FAR * lpFrom, _Out_writes_bytes_to_opt_(*lpFromlen, *lpFromlen) struct sockaddr FAR * lpFr
__inout_opt LPINT lpFromlen, om,
__inout_opt LPWSAOVERLAPPED lpOverlapped, _Inout_opt_ LPINT lpFromlen,
__in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
__in_opt LPWSATHREADID lpThreadId, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
__out LPINT lpErrno _In_opt_ LPWSATHREADID lpThreadId,
_Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPSELECT)( (WSPAPI * LPWSPSELECT)(
__in int nfds, _In_ int nfds,
__inout_opt fd_set FAR * readfds, _Inout_opt_ fd_set FAR * readfds,
__inout_opt fd_set FAR * writefds, _Inout_opt_ fd_set FAR * writefds,
__inout_opt fd_set FAR * exceptfds, _Inout_opt_ fd_set FAR * exceptfds,
__in_opt const struct timeval FAR * timeout, _In_opt_ const struct timeval FAR * timeout,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPSEND)( (WSPAPI * LPWSPSEND)(
__in SOCKET s, _In_ SOCKET s,
__in_ecount(dwBufferCount) LPWSABUF lpBuffers, _In_reads_(dwBufferCount) LPWSABUF lpBuffers,
__in DWORD dwBufferCount, _In_ DWORD dwBufferCount,
__out_opt LPDWORD lpNumberOfBytesSent, _Out_opt_ LPDWORD lpNumberOfBytesSent,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__inout_opt LPWSAOVERLAPPED lpOverlapped, _Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
__in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
__in_opt LPWSATHREADID lpThreadId, _In_opt_ LPWSATHREADID lpThreadId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPSENDDISCONNECT)( (WSPAPI * LPWSPSENDDISCONNECT)(
__in SOCKET s, _In_ SOCKET s,
__in_opt LPWSABUF lpOutboundDisconnectData, _In_opt_ LPWSABUF lpOutboundDisconnectData,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPSENDTO)( (WSPAPI * LPWSPSENDTO)(
__in SOCKET s, _In_ SOCKET s,
__in_ecount(dwBufferCount) LPWSABUF lpBuffers, _In_reads_(dwBufferCount) LPWSABUF lpBuffers,
__in DWORD dwBufferCount, _In_ DWORD dwBufferCount,
__out_opt LPDWORD lpNumberOfBytesSent, _Out_opt_ LPDWORD lpNumberOfBytesSent,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__in_bcount_opt(iToLen) const struct sockaddr FAR * lpTo, _In_reads_bytes_opt_(iTolen) const struct sockaddr FAR * lpTo,
__in int iTolen, _In_ int iTolen,
__inout_opt LPWSAOVERLAPPED lpOverlapped, _Inout_opt_ LPWSAOVERLAPPED lpOverlapped,
__in_opt LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine, _In_opt_ LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
__in_opt LPWSATHREADID lpThreadId, _In_opt_ LPWSATHREADID lpThreadId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPSETSOCKOPT)( (WSPAPI * LPWSPSETSOCKOPT)(
__in SOCKET s, _In_ SOCKET s,
__in int level, _In_ int level,
__in int optname, _In_ int optname,
__in_bcount_opt(optlen) const char FAR * optval, _In_reads_bytes_opt_(optlen) const char FAR * optval,
__in int optlen, _In_ int optlen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSPSHUTDOWN)( (WSPAPI * LPWSPSHUTDOWN)(
__in SOCKET s, _In_ SOCKET s,
__in int how, _In_ int how,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
__checkReturn _Must_inspect_result_
SOCKET SOCKET
(WSPAPI * LPWSPSOCKET)( (WSPAPI * LPWSPSOCKET)(
__in int af, _In_ int af,
__in int type, _In_ int type,
__in int protocol, _In_ int protocol,
__in_opt LPWSAPROTOCOL_INFOW lpProtocolInfo, _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
__in GROUP g, _In_ GROUP g,
__in DWORD dwFlags, _In_ DWORD dwFlags,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
INT INT
(WSPAPI * LPWSPSTRINGTOADDRESS)( (WSPAPI * LPWSPSTRINGTOADDRESS)(
__in LPWSTR AddressString, _In_ LPWSTR AddressString,
__in INT AddressFamily, _In_ INT AddressFamily,
__in_opt LPWSAPROTOCOL_INFOW lpProtocolInfo, _In_opt_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
__out_bcount_part(*lpAddressLength, *lpAddressLength) LPSOCKADDR lpAddress, _Out_writes_bytes_to_(*lpAddressLength, *lpAddressLength) LPSOCKADDR lpAddre
__inout LPINT lpAddressLength, ss,
__out LPINT lpErrno _Inout_ LPINT lpAddressLength,
_Out_ LPINT lpErrno
); );
/* /*
* A service provider proc table. This structure is returned by value * A service provider proc table. This structure is returned by value
* from the service provider's WSPStartup() entrypoint. * from the service provider's WSPStartup() entrypoint.
*/ */
typedef struct _WSPPROC_TABLE { typedef struct _WSPPROC_TABLE {
LPWSPACCEPT lpWSPAccept; LPWSPACCEPT lpWSPAccept;
skipping to change at line 470 skipping to change at line 461
} WSPPROC_TABLE, FAR * LPWSPPROC_TABLE; } WSPPROC_TABLE, FAR * LPWSPPROC_TABLE;
/* /*
* Pointers to the individual entries in the upcall table. * Pointers to the individual entries in the upcall table.
*/ */
typedef typedef
BOOL BOOL
(WSPAPI * LPWPUCLOSEEVENT)( (WSPAPI * LPWPUCLOSEEVENT)(
__in WSAEVENT hEvent, _In_ WSAEVENT hEvent,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWPUCLOSESOCKETHANDLE)( (WSPAPI * LPWPUCLOSESOCKETHANDLE)(
__in SOCKET s, _In_ SOCKET s,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
WSAEVENT WSAEVENT
(WSPAPI * LPWPUCREATEEVENT)( (WSPAPI * LPWPUCREATEEVENT)(
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
__checkReturn _Must_inspect_result_
SOCKET SOCKET
(WSPAPI * LPWPUCREATESOCKETHANDLE)( (WSPAPI * LPWPUCREATESOCKETHANDLE)(
__in DWORD dwCatalogEntryId, _In_ DWORD dwCatalogEntryId,
__in DWORD_PTR dwContext, _In_ DWORD_PTR dwContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWPUFDISSET)( (WSPAPI * LPWPUFDISSET)(
__in SOCKET s, _In_ SOCKET s,
__in fd_set FAR * fdset _In_ fd_set FAR * fdset
); );
typedef typedef
int int
(WSPAPI * LPWPUGETPROVIDERPATH)( (WSPAPI * LPWPUGETPROVIDERPATH)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out_ecount(*lpProviderDllPathLen) WCHAR FAR * lpszProviderDllPath, _Out_writes_(*lpProviderDllPathLen) WCHAR FAR * lpszProviderDllPath,
__inout LPINT lpProviderDllPathLen, _Inout_ LPINT lpProviderDllPathLen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
SOCKET SOCKET
(WSPAPI * LPWPUMODIFYIFSHANDLE)( (WSPAPI * LPWPUMODIFYIFSHANDLE)(
__in DWORD dwCatalogEntryId, _In_ DWORD dwCatalogEntryId,
__in SOCKET ProposedHandle, _In_ SOCKET ProposedHandle,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
BOOL BOOL
(WSPAPI * LPWPUPOSTMESSAGE)( (WSPAPI * LPWPUPOSTMESSAGE)(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam _In_ LPARAM lParam
); );
typedef typedef
int int
(WSPAPI * LPWPUQUERYBLOCKINGCALLBACK)( (WSPAPI * LPWPUQUERYBLOCKINGCALLBACK)(
__in DWORD dwCatalogEntryId, _In_ DWORD dwCatalogEntryId,
__out LPBLOCKINGCALLBACK FAR * lplpfnCallback, _Out_ LPBLOCKINGCALLBACK FAR * lplpfnCallback,
__out PDWORD_PTR lpdwContext, _Out_ PDWORD_PTR lpdwContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWPUQUERYSOCKETHANDLECONTEXT)( (WSPAPI * LPWPUQUERYSOCKETHANDLECONTEXT)(
__in SOCKET s, _In_ SOCKET s,
__out PDWORD_PTR lpContext, _Out_ PDWORD_PTR lpContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWPUQUEUEAPC)( (WSPAPI * LPWPUQUEUEAPC)(
__in LPWSATHREADID lpThreadId, _In_ LPWSATHREADID lpThreadId,
__in LPWSAUSERAPC lpfnUserApc, _In_ LPWSAUSERAPC lpfnUserApc,
__in DWORD_PTR dwContext, _In_ DWORD_PTR dwContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
BOOL BOOL
(WSPAPI * LPWPURESETEVENT)( (WSPAPI * LPWPURESETEVENT)(
__in WSAEVENT hEvent, _In_ WSAEVENT hEvent,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
BOOL BOOL
(WSPAPI * LPWPUSETEVENT)( (WSPAPI * LPWPUSETEVENT)(
__in WSAEVENT hEvent, _In_ WSAEVENT hEvent,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWPUOPENCURRENTTHREAD)( (WSPAPI * LPWPUOPENCURRENTTHREAD)(
__out LPWSATHREADID lpThreadId, _Out_ LPWSATHREADID lpThreadId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWPUCLOSETHREAD)( (WSPAPI * LPWPUCLOSETHREAD)(
__in LPWSATHREADID lpThreadId, _In_ LPWSATHREADID lpThreadId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
// Available only directly from ws2_32.dll // Available only directly from ws2_32.dll
typedef typedef
int int
(WSPAPI * LPWPUCOMPLETEOVERLAPPEDREQUEST) ( (WSPAPI * LPWPUCOMPLETEOVERLAPPEDREQUEST) (
__in SOCKET s, _In_ SOCKET s,
__inout LPWSAOVERLAPPED lpOverlapped, _Inout_ LPWSAOVERLAPPED lpOverlapped,
__in DWORD dwError, _In_ DWORD dwError,
__in DWORD cbTransferred, _In_ DWORD cbTransferred,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
/* /*
* The upcall table. This structure is passed by value to the service * The upcall table. This structure is passed by value to the service
* provider's WSPStartup() entrypoint. * provider's WSPStartup() entrypoint.
*/ */
typedef struct _WSPUPCALLTABLE { typedef struct _WSPUPCALLTABLE {
LPWPUCLOSEEVENT lpWPUCloseEvent; LPWPUCLOSEEVENT lpWPUCloseEvent;
skipping to change at line 623 skipping to change at line 614
LPWPUSETEVENT lpWPUSetEvent; LPWPUSETEVENT lpWPUSetEvent;
LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread; LPWPUOPENCURRENTTHREAD lpWPUOpenCurrentThread;
LPWPUCLOSETHREAD lpWPUCloseThread; LPWPUCLOSETHREAD lpWPUCloseThread;
} WSPUPCALLTABLE, FAR * LPWSPUPCALLTABLE; } WSPUPCALLTABLE, FAR * LPWSPUPCALLTABLE;
/* /*
* WinSock 2 SPI socket function prototypes * WinSock 2 SPI socket function prototypes
*/ */
__control_entrypoint(DllExport) _Must_inspect_result_
__checkReturn
int int
WSPAPI WSPAPI
WSPStartup( WSPStartup(
__in WORD wVersionRequested, _In_ WORD wVersionRequested,
__in LPWSPDATA lpWSPData, _In_ LPWSPDATA lpWSPData,
__in LPWSAPROTOCOL_INFOW lpProtocolInfo, _In_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
__in WSPUPCALLTABLE UpcallTable, _In_ WSPUPCALLTABLE UpcallTable,
__out LPWSPPROC_TABLE lpProcTable _Out_ LPWSPPROC_TABLE lpProcTable
); );
typedef typedef
__checkReturn _Must_inspect_result_
int int
(WSPAPI * LPWSPSTARTUP)( (WSPAPI * LPWSPSTARTUP)(
__in WORD wVersionRequested, _In_ WORD wVersionRequested,
__in LPWSPDATA lpWSPData, _In_ LPWSPDATA lpWSPData,
__in LPWSAPROTOCOL_INFOW lpProtocolInfo, _In_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
__in WSPUPCALLTABLE UpcallTable, _In_ WSPUPCALLTABLE UpcallTable,
__out LPWSPPROC_TABLE lpProcTable _Out_ LPWSPPROC_TABLE lpProcTable
); );
/* /*
* Installation and configuration entrypoints. * Installation and configuration entrypoints.
*/ */
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCEnumProtocols( WSCEnumProtocols(
__in_opt LPINT lpiProtocols, _In_opt_ LPINT lpiProtocols,
__out_bcount_part_opt(*lpdwBufferLength, *lpdwBufferLength) LPWSAPROTOCOL_IN _Out_writes_bytes_to_opt_(*lpdwBufferLength, *lpdwBufferLength) LPWSAPROTOCO
FOW lpProtocolBuffer, L_INFOW lpProtocolBuffer,
__inout LPDWORD lpdwBufferLength, _Inout_ LPDWORD lpdwBufferLength,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSCENUMPROTOCOLS)( (WSPAPI * LPWSCENUMPROTOCOLS)(
__in_opt LPINT lpiProtocols, _In_opt_ LPINT lpiProtocols,
__out_bcount_part_opt(*lpdwBufferLength, *lpdwBufferlength) LPWSAPROTOCOL_IN _Out_writes_bytes_to_opt_(*lpdwBufferLength, *lpdwBufferlength) LPWSAPROTOCO
FOW lpProtocolBuffer, L_INFOW lpProtocolBuffer,
__inout LPDWORD lpdwBufferLength, _Inout_ LPDWORD lpdwBufferLength,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
/* /*
* 64-bit architectures capable of running 32-bit code have * 64-bit architectures capable of running 32-bit code have
* separate 64-bit and 32-bit catalogs. API with '32' prefix * separate 64-bit and 32-bit catalogs. API with '32' prefix
* allow 32 bit catalog manipulations by 64 bit process. * allow 32 bit catalog manipulations by 64 bit process.
*/ */
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCEnumProtocols32( WSCEnumProtocols32(
__in_opt LPINT lpiProtocols, _In_opt_ LPINT lpiProtocols,
__out_bcount(*lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer, _Out_writes_bytes_(*lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer,
__inout LPDWORD lpdwBufferLength, _Inout_ LPDWORD lpdwBufferLength,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif //(defined(_WIN64) && _WIN32_WINNT >= 0x0501) #endif //(defined(_WIN64) && _WIN32_WINNT >= 0x0501)
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCDeinstallProvider( WSCDeinstallProvider(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSCDEINSTALLPROVIDER)( (WSPAPI * LPWSCDEINSTALLPROVIDER)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCDeinstallProvider32( WSCDeinstallProvider32(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif //(defined(_WIN64) && _WIN32_WINNT >= 0x0501) #endif //(defined(_WIN64) && _WIN32_WINNT >= 0x0501)
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCInstallProvider( WSCInstallProvider(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in_z const WCHAR FAR * lpszProviderDllPath, _In_z_ const WCHAR FAR * lpszProviderDllPath,
__in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList, _In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
__in DWORD dwNumberOfEntries, _In_ DWORD dwNumberOfEntries,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSCINSTALLPROVIDER)( (WSPAPI * LPWSCINSTALLPROVIDER)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in_z const WCHAR FAR * lpszProviderDllPath, _In_z_ const WCHAR FAR * lpszProviderDllPath,
__in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList, _In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
__in DWORD dwNumberOfEntries, _In_ DWORD dwNumberOfEntries,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
/* /*
* This API manipulates 64-bit and 32-bit catalogs simulteneously. * This API manipulates 64-bit and 32-bit catalogs simulteneously.
* It is needed to guarantee the same catalog IDs for provider catalog * It is needed to guarantee the same catalog IDs for provider catalog
* entries in both 64-bit and 32-bit catalogs. * entries in both 64-bit and 32-bit catalogs.
*/ */
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCInstallProvider64_32( WSCInstallProvider64_32(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in_z const WCHAR FAR * lpszProviderDllPath, _In_z_ const WCHAR FAR * lpszProviderDllPath,
__in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList, _In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
__in DWORD dwNumberOfEntries, _In_ DWORD dwNumberOfEntries,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCGetProviderPath( WSCGetProviderPath(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out_ecount_part(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR * _Out_writes_to_(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR * lp
lpszProviderDllPath, szProviderDllPath,
__inout LPINT lpProviderDllPathLen, _Inout_ LPINT lpProviderDllPathLen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSCGETPROVIDERPATH)( (WSPAPI * LPWSCGETPROVIDERPATH)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out_ecount_part(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR * _Out_writes_to_(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR * lp
lpszProviderDllPath, szProviderDllPath,
__inout LPINT lpProviderDllPathLen, _Inout_ LPINT lpProviderDllPathLen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
#if defined(_WIN64) #if defined(_WIN64)
__control_entrypoint(DllExport) _Success_(return == 0)
int int
WSPAPI WSPAPI
WSCGetProviderPath32( WSCGetProviderPath32(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out_ecount_part(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR * _Out_writes_to_(*lpProviderDllPathLen, *lpProviderDllPathLen) WCHAR FAR * lp
lpszProviderDllPath, szProviderDllPath,
__inout LPINT lpProviderDllPathLen, _Inout_ LPINT lpProviderDllPathLen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif #endif
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCUpdateProvider( WSCUpdateProvider(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in_z const WCHAR FAR * lpszProviderDllPath, _In_z_ const WCHAR FAR * lpszProviderDllPath,
__in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList, _In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
__in DWORD dwNumberOfEntries, _In_ DWORD dwNumberOfEntries,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSCUPDATEPROVIDER)( (WSPAPI * LPWSCUPDATEPROVIDER)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in_z const WCHAR FAR * lpszProviderDllPath, _In_z_ const WCHAR FAR * lpszProviderDllPath,
__in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList, _In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
__in DWORD dwNumberOfEntries, _In_ DWORD dwNumberOfEntries,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#if defined(_WIN64) #if defined(_WIN64)
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCUpdateProvider32( WSCUpdateProvider32(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in_z const WCHAR FAR * lpszProviderDllPath, _In_z_ const WCHAR FAR * lpszProviderDllPath,
__in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList, _In_reads_(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
__in DWORD dwNumberOfEntries, _In_ DWORD dwNumberOfEntries,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif #endif
#endif //(_WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT >= 0x0501)
#if (_WIN32_WINNT < 0x0600) #if (_WIN32_WINNT < 0x0600)
int int
WSPAPI WSPAPI
WSCInstallQOSTemplate ( WSCInstallQOSTemplate (
__in const LPGUID Guid, _In_ const LPGUID Guid,
__in LPWSABUF QosName, _In_ LPWSABUF QosName,
__in LPQOS Qos _In_ LPQOS Qos
); );
typedef typedef
int int
(WSPAPI * LPWSCINSTALLQOSTEMPLATE)( (WSPAPI * LPWSCINSTALLQOSTEMPLATE)(
__in const LPGUID Guid, _In_ const LPGUID Guid,
__in LPWSABUF QosName, _In_ LPWSABUF QosName,
__in LPQOS Qos _In_ LPQOS Qos
); );
int int
WSPAPI WSPAPI
WSCRemoveQOSTemplate ( WSCRemoveQOSTemplate (
__in const LPGUID Guid, _In_ const LPGUID Guid,
__in LPWSABUF QosName _In_ LPWSABUF QosName
); );
typedef typedef
int int
(WSPAPI * LPWSCREMOVEQOSTEMPLATE)( (WSPAPI * LPWSCREMOVEQOSTEMPLATE)(
__in const LPGUID Guid, _In_ const LPGUID Guid,
__in LPWSABUF QosName _In_ LPWSABUF QosName
); );
#endif //(_WIN32_WINNT < 0x0600) #endif //(_WIN32_WINNT < 0x0600)
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
// //
// LSP Categorization // LSP Categorization
// //
skipping to change at line 888 skipping to change at line 869
typedef struct _WSC_PROVIDER_AUDIT_INFO { typedef struct _WSC_PROVIDER_AUDIT_INFO {
DWORD RecordSize; // Size of this audit record, in bytes (includes thi s field) DWORD RecordSize; // Size of this audit record, in bytes (includes thi s field)
PVOID Reserved; // Reserved PVOID Reserved; // Reserved
// Install Time (GMT) // Install Time (GMT)
// User SID of account performing install // User SID of account performing install
// Length (in characters) of Full Path // Length (in characters) of Full Path
// Full Path of EXE performing install // Full Path of EXE performing install
} WSC_PROVIDER_AUDIT_INFO; } WSC_PROVIDER_AUDIT_INFO;
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCSetProviderInfo( WSCSetProviderInfo(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType, _In_ WSC_PROVIDER_INFO_TYPE InfoType,
__in_bcount(InfoSize) PBYTE Info, _In_reads_bytes_(InfoSize) PBYTE Info,
__in size_t InfoSize, _In_ size_t InfoSize,
__in DWORD Flags, _In_ DWORD Flags,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCGetProviderInfo( WSCGetProviderInfo(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType, _In_ WSC_PROVIDER_INFO_TYPE InfoType,
__out_bcount_part(*InfoSize, *InfoSize) PBYTE Info, _Out_writes_bytes_to_(*InfoSize, *InfoSize) PBYTE Info,
__inout size_t *InfoSize, _Inout_ size_t *InfoSize,
__in DWORD Flags, _In_ DWORD Flags,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#if defined(_WIN64) #if defined(_WIN64)
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCSetProviderInfo32( WSCSetProviderInfo32(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType, _In_ WSC_PROVIDER_INFO_TYPE InfoType,
__in_bcount(InfoSize) PBYTE Info, _In_reads_bytes_(InfoSize) PBYTE Info,
__in size_t InfoSize, _In_ size_t InfoSize,
__in DWORD Flags, _In_ DWORD Flags,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCGetProviderInfo32( WSCGetProviderInfo32(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType, _In_ WSC_PROVIDER_INFO_TYPE InfoType,
__out_bcount_part(*InfoSize, *InfoSize) PBYTE Info, _Out_writes_bytes_to_(*InfoSize, *InfoSize) PBYTE Info,
__inout size_t *InfoSize, _Inout_ size_t *InfoSize,
__in DWORD Flags, _In_ DWORD Flags,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif // (_WIN64) #endif // (_WIN64)
// //
// App Permitted LSP Categorization APIs // App Permitted LSP Categorization APIs
// //
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCSetApplicationCategory( WSCSetApplicationCategory(
__in_ecount(PathLength) LPCWSTR Path, _In_reads_(PathLength) LPCWSTR Path,
__in DWORD PathLength, _In_ DWORD PathLength,
__in_ecount_opt(ExtraLength) LPCWSTR Extra, _In_reads_opt_(ExtraLength) LPCWSTR Extra,
__in DWORD ExtraLength, _In_ DWORD ExtraLength,
__in DWORD PermittedLspCategories, _In_ DWORD PermittedLspCategories,
__out_opt DWORD * pPrevPermLspCat, _Out_opt_ DWORD * pPrevPermLspCat,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCGetApplicationCategory( WSCGetApplicationCategory(
__in_ecount(PathLength) LPCWSTR Path, _In_reads_(PathLength) LPCWSTR Path,
__in DWORD PathLength, _In_ DWORD PathLength,
__in_ecount_opt(ExtraLength) LPCWSTR Extra, _In_reads_opt_(ExtraLength) LPCWSTR Extra,
__in DWORD ExtraLength, _In_ DWORD ExtraLength,
__out DWORD * pPermittedLspCategories, _Out_ DWORD * pPermittedLspCategories,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif //(_WIN32_WINNT >= 0x0600) #endif //(_WIN32_WINNT >= 0x0600)
/* /*
* The following upcall function prototypes are only used by WinSock 2 DLL and * The following upcall function prototypes are only used by WinSock 2 DLL and
* should not be used by any service providers. * should not be used by any service providers.
*/ */
BOOL BOOL
WSPAPI WSPAPI
WPUCloseEvent( WPUCloseEvent(
__in WSAEVENT hEvent, _In_ WSAEVENT hEvent,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
int int
WSPAPI WSPAPI
WPUCloseSocketHandle( WPUCloseSocketHandle(
__in SOCKET s, _In_ SOCKET s,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
WSAEVENT WSAEVENT
WSPAPI WSPAPI
WPUCreateEvent( WPUCreateEvent(
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
SOCKET SOCKET
WSPAPI WSPAPI
WPUCreateSocketHandle( WPUCreateSocketHandle(
__in DWORD dwCatalogEntryId, _In_ DWORD dwCatalogEntryId,
__in DWORD_PTR dwContext, _In_ DWORD_PTR dwContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DispatchTable)
int int
WSPAPI WSPAPI
WPUFDIsSet( WPUFDIsSet(
__in SOCKET s, _In_ SOCKET s,
__in fd_set FAR * fdset _In_ fd_set FAR * fdset
); );
int int
WSPAPI WSPAPI
WPUGetProviderPath( WPUGetProviderPath(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__out_ecount(*lpProviderDllPathLen) WCHAR FAR * lpszProviderDllPath, _Out_writes_(*lpProviderDllPathLen) WCHAR FAR * lpszProviderDllPath,
__inout LPINT lpProviderDllPathLen, _Inout_ LPINT lpProviderDllPathLen,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
SOCKET SOCKET
WSPAPI WSPAPI
WPUModifyIFSHandle( WPUModifyIFSHandle(
__in DWORD dwCatalogEntryId, _In_ DWORD dwCatalogEntryId,
__in SOCKET ProposedHandle, _In_ SOCKET ProposedHandle,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DispatchTable)
BOOL BOOL
WSPAPI WSPAPI
WPUPostMessage( WPUPostMessage(
__in HWND hWnd, _In_ HWND hWnd,
__in UINT Msg, _In_ UINT Msg,
__in WPARAM wParam, _In_ WPARAM wParam,
__in LPARAM lParam _In_ LPARAM lParam
); );
int int
WSPAPI WSPAPI
WPUQueryBlockingCallback( WPUQueryBlockingCallback(
__in DWORD dwCatalogEntryId, _In_ DWORD dwCatalogEntryId,
__out LPBLOCKINGCALLBACK FAR * lplpfnCallback, _Out_ LPBLOCKINGCALLBACK FAR * lplpfnCallback,
__out PDWORD_PTR lpdwContext, _Out_ PDWORD_PTR lpdwContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
int int
WSPAPI WSPAPI
WPUQuerySocketHandleContext( WPUQuerySocketHandleContext(
__in SOCKET s, _In_ SOCKET s,
__out PDWORD_PTR lpContext, _Out_ PDWORD_PTR lpContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DispatchTable)
int int
WSPAPI WSPAPI
WPUQueueApc( WPUQueueApc(
__in LPWSATHREADID lpThreadId, _In_ LPWSATHREADID lpThreadId,
__in LPWSAUSERAPC lpfnUserApc, _In_ LPWSAUSERAPC lpfnUserApc,
__in DWORD_PTR dwContext, _In_ DWORD_PTR dwContext,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
BOOL BOOL
WSPAPI WSPAPI
WPUResetEvent( WPUResetEvent(
__in WSAEVENT hEvent, _In_ WSAEVENT hEvent,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
BOOL BOOL
WSPAPI WSPAPI
WPUSetEvent( WPUSetEvent(
__in WSAEVENT hEvent, _In_ WSAEVENT hEvent,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DispatchTable)
int int
WSPAPI WSPAPI
WPUCompleteOverlappedRequest ( WPUCompleteOverlappedRequest (
__in SOCKET s, _In_ SOCKET s,
__inout LPWSAOVERLAPPED lpOverlapped, _Inout_ LPWSAOVERLAPPED lpOverlapped,
__in DWORD dwError, _In_ DWORD dwError,
__in DWORD cbTransferred, _In_ DWORD cbTransferred,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
__control_entrypoint(DispatchTable)
int int
WSPAPI WSPAPI
WPUOpenCurrentThread( WPUOpenCurrentThread(
__out LPWSATHREADID lpThreadId, _Out_ LPWSATHREADID lpThreadId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
__control_entrypoint(DispatchTable)
int int
WSPAPI WSPAPI
WPUCloseThread( WPUCloseThread(
__in LPWSATHREADID lpThreadId, _In_ LPWSATHREADID lpThreadId,
__out LPINT lpErrno _Out_ LPINT lpErrno
); );
#endif //(_WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT >= 0x0501)
/* /*
* Installing and uninstalling name space providers. * Installing and uninstalling name space providers.
*/ */
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
/* /*
* SPI and API for enumerating name space providers are * SPI and API for enumerating name space providers are
* currently equivalent since there is no concept of a hidden * currently equivalent since there is no concept of a hidden
* name space provider * name space provider
*/ */
#define WSCEnumNameSpaceProviders WSAEnumNameSpaceProvidersW #define WSCEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
#define LPFN_WSCENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW #define LPFN_WSCENUMNAMESPACEPROVIDERS LPFN_WSAENUMNAMESPACEPROVIDERSW
#if defined(_WIN64) #if defined(_WIN64)
INT INT
WSAAPI WSAAPI
WSCEnumNameSpaceProviders32( WSCEnumNameSpaceProviders32(
__inout LPDWORD lpdwBufferLength, _Inout_ LPDWORD lpdwBufferLength,
__out_bcount(*lpdwBufferLength) LPWSANAMESPACE_INFOW lpnspBuffer _Out_writes_bytes_(*lpdwBufferLength) LPWSANAMESPACE_INFOW lpnspBuffer
); );
#endif #endif
#endif //(_WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT >= 0x0501)
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
#define WSCEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW #define WSCEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW
#define LPFN_WSCENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW #define LPFN_WSCENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW
#if defined(_WIN64) #if defined(_WIN64)
INT INT
WSAAPI WSAAPI
WSCEnumNameSpaceProvidersEx32( WSCEnumNameSpaceProvidersEx32(
__inout LPDWORD lpdwBufferLength, _Inout_ LPDWORD lpdwBufferLength,
__out_bcount(*lpdwBufferLength) LPWSANAMESPACE_INFOEXW lpnspBuffer _Out_writes_bytes_(*lpdwBufferLength) LPWSANAMESPACE_INFOEXW lpnspBuffer
); );
#endif //(_WIN64) #endif //(_WIN64)
#endif //(_WIN32_WINNT >= 0x0600) #endif //(_WIN32_WINNT >= 0x0600)
INT INT
WSPAPI WSPAPI
WSCInstallNameSpace ( WSCInstallNameSpace (
__in LPWSTR lpszIdentifier, _In_ LPWSTR lpszIdentifier,
__in LPWSTR lpszPathName, _In_ LPWSTR lpszPathName,
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in DWORD dwVersion, _In_ DWORD dwVersion,
__in LPGUID lpProviderId _In_ LPGUID lpProviderId
); );
typedef typedef
INT INT
(WSPAPI * LPWSCINSTALLNAMESPACE)( (WSPAPI * LPWSCINSTALLNAMESPACE)(
__in LPWSTR lpszIdentifier, _In_ LPWSTR lpszIdentifier,
__in LPWSTR lpszPathName, _In_ LPWSTR lpszPathName,
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in DWORD dwVersion, _In_ DWORD dwVersion,
__in LPGUID lpProviderId _In_ LPGUID lpProviderId
); );
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
INT INT
WSPAPI WSPAPI
WSCInstallNameSpace32 ( WSCInstallNameSpace32 (
__in LPWSTR lpszIdentifier, _In_ LPWSTR lpszIdentifier,
__in LPWSTR lpszPathName, _In_ LPWSTR lpszPathName,
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in DWORD dwVersion, _In_ DWORD dwVersion,
__in LPGUID lpProviderId _In_ LPGUID lpProviderId
); );
#endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
INT INT
WSPAPI WSPAPI
WSCUnInstallNameSpace ( WSCUnInstallNameSpace (
__in LPGUID lpProviderId _In_ LPGUID lpProviderId
); );
typedef typedef
INT INT
(WSPAPI * LPWSCUNINSTALLNAMESPACE)( (WSPAPI * LPWSCUNINSTALLNAMESPACE)(
__in LPGUID lpProviderId _In_ LPGUID lpProviderId
); );
#if (_WIN32_WINNT >= 0x0600 ) #if (_WIN32_WINNT >= 0x0600 )
INT INT
WSPAPI WSPAPI
WSCInstallNameSpaceEx( WSCInstallNameSpaceEx(
__in LPWSTR lpszIdentifier, _In_ LPWSTR lpszIdentifier,
__in LPWSTR lpszPathName, _In_ LPWSTR lpszPathName,
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in DWORD dwVersion, _In_ DWORD dwVersion,
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPBLOB lpProviderSpecific _In_ LPBLOB lpProviderSpecific
); );
#endif //(defined(_WIN32_WINNT >= 0x0600) #endif //(defined(_WIN32_WINNT >= 0x0600)
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0600)) #if(defined(_WIN64) && (_WIN32_WINNT >= 0x0600))
INT INT
WSPAPI WSPAPI
WSCInstallNameSpaceEx32( WSCInstallNameSpaceEx32(
__in LPWSTR lpszIdentifier, _In_ LPWSTR lpszIdentifier,
__in LPWSTR lpszPathName, _In_ LPWSTR lpszPathName,
__in DWORD dwNameSpace, _In_ DWORD dwNameSpace,
__in DWORD dwVersion, _In_ DWORD dwVersion,
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPBLOB lpProviderSpecific _In_ LPBLOB lpProviderSpecific
); );
#endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0600)) #endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0600))
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
INT INT
WSPAPI WSPAPI
WSCUnInstallNameSpace32 ( WSCUnInstallNameSpace32 (
__in LPGUID lpProviderId _In_ LPGUID lpProviderId
); );
#endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
INT INT
WSPAPI WSPAPI
WSCEnableNSProvider ( WSCEnableNSProvider (
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in BOOL fEnable _In_ BOOL fEnable
); );
typedef typedef
INT INT
(WSPAPI * LPWSCENABLENSPROVIDER)( (WSPAPI * LPWSCENABLENSPROVIDER)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in BOOL fEnable _In_ BOOL fEnable
); );
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
INT INT
WSPAPI WSPAPI
WSCEnableNSProvider32 ( WSCEnableNSProvider32 (
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in BOOL fEnable _In_ BOOL fEnable
); );
#endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501)) #endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
#if (_WIN32_WINNT >= 0x0600) #if (_WIN32_WINNT >= 0x0600)
#if defined(_WIN64) #if defined(_WIN64)
int WSPAPI WSCInstallProviderAndChains64_32( int WSPAPI WSCInstallProviderAndChains64_32(
#else #else
int WSPAPI WSCInstallProviderAndChains( int WSPAPI WSCInstallProviderAndChains(
#endif #endif
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in const LPWSTR lpszProviderDllPath, _In_ const LPWSTR lpszProviderDllPath,
#if defined(_WIN64) #if defined(_WIN64)
__in const LPWSTR lpszProviderDllPath32, _In_ const LPWSTR lpszProviderDllPath32,
#endif #endif
__in const LPWSTR lpszLspName, _In_ const LPWSTR lpszLspName,
__in DWORD dwServiceFlags, _In_ DWORD dwServiceFlags,
__inout_ecount(dwNumberOfEntries) LPWSAPROTOCOL_INFOW lpProtocolInfoList, _Inout_updates_(dwNumberOfEntries) LPWSAPROTOCOL_INFOW lpProtocolInfoList,
__in DWORD dwNumberOfEntries, _In_ DWORD dwNumberOfEntries,
__out_opt LPDWORD lpdwCatalogEntryId, _Out_opt_ LPDWORD lpdwCatalogEntryId,
__out LPINT lpErrno); _Out_ LPINT lpErrno);
#endif //(_WIN32_WINNT >= 0x0600) #endif //(_WIN32_WINNT >= 0x0600)
/* /*
* Pointers to the individual entries in the namespace proc table. * Pointers to the individual entries in the namespace proc table.
*/ */
typedef typedef
INT INT
(WSAAPI * LPNSPCLEANUP)( (WSAAPI * LPNSPCLEANUP)(
__in LPGUID lpProviderId _In_ LPGUID lpProviderId
); );
typedef typedef
INT INT
(WSAAPI * LPNSPLOOKUPSERVICEBEGIN)( (WSAAPI * LPNSPLOOKUPSERVICEBEGIN)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPWSAQUERYSETW lpqsRestrictions, _In_ LPWSAQUERYSETW lpqsRestrictions,
__in LPWSASERVICECLASSINFOW lpServiceClassInfo, _In_ LPWSASERVICECLASSINFOW lpServiceClassInfo,
__in DWORD dwControlFlags, _In_ DWORD dwControlFlags,
__out LPHANDLE lphLookup _Out_ LPHANDLE lphLookup
); );
typedef typedef
INT INT
(WSAAPI * LPNSPLOOKUPSERVICENEXT)( (WSAAPI * LPNSPLOOKUPSERVICENEXT)(
__in HANDLE hLookup, _In_ HANDLE hLookup,
__in DWORD dwControlFlags, _In_ DWORD dwControlFlags,
__inout LPDWORD lpdwBufferLength, _Inout_ LPDWORD lpdwBufferLength,
__out_bcount_part(*lpdwBufferLength, *lpdwBufferlength) LPWSAQUERYSETW lpqsR _Out_writes_bytes_to_(*lpdwBufferLength, *lpdwBufferLength) LPWSAQUERYSETW l
esults pqsResults
); );
#if(_WIN32_WINNT >= 0x0501) #if(_WIN32_WINNT >= 0x0501)
typedef typedef
INT INT
(WSAAPI * LPNSPIOCTL)( (WSAAPI * LPNSPIOCTL)(
__in HANDLE hLookup, _In_ HANDLE hLookup,
__in DWORD dwControlCode, _In_ DWORD dwControlCode,
__in_bcount(cbInBuffer) LPVOID lpvInBuffer, _In_reads_bytes_(cbInBuffer) LPVOID lpvInBuffer,
__in DWORD cbInBuffer, _In_ DWORD cbInBuffer,
__out_bcount_part(cbOutBuffer, *lpcbBytesreturned) LPVOID lpvOutBuf _Out_writes_bytes_to_(cbOutBuffer, *lpcbBytesReturned) LPVOID lpvOu
fer, tBuffer,
__in DWORD cbOutBuffer, _In_ DWORD cbOutBuffer,
__out LPDWORD lpcbBytesReturned, _Out_ LPDWORD lpcbBytesReturned,
__in_opt LPWSACOMPLETION lpCompletion, _In_opt_ LPWSACOMPLETION lpCompletion,
__in LPWSATHREADID lpThreadId _In_ LPWSATHREADID lpThreadId
); );
#endif //(_WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT >= 0x0501)
typedef typedef
INT INT
(WSAAPI * LPNSPLOOKUPSERVICEEND)( (WSAAPI * LPNSPLOOKUPSERVICEEND)(
__in HANDLE hLookup _In_ HANDLE hLookup
); );
typedef typedef
INT INT
(WSAAPI * LPNSPSETSERVICE)( (WSAAPI * LPNSPSETSERVICE)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPWSASERVICECLASSINFOW lpServiceClassInfo, _In_ LPWSASERVICECLASSINFOW lpServiceClassInfo,
__in LPWSAQUERYSETW lpqsRegInfo, _In_ LPWSAQUERYSETW lpqsRegInfo,
__in WSAESETSERVICEOP essOperation, _In_ WSAESETSERVICEOP essOperation,
__in DWORD dwControlFlags _In_ DWORD dwControlFlags
); );
typedef typedef
INT INT
(WSAAPI * LPNSPINSTALLSERVICECLASS)( (WSAAPI * LPNSPINSTALLSERVICECLASS)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPWSASERVICECLASSINFOW lpServiceClassInfo _In_ LPWSASERVICECLASSINFOW lpServiceClassInfo
); );
typedef typedef
INT INT
(WSAAPI * LPNSPREMOVESERVICECLASS)( (WSAAPI * LPNSPREMOVESERVICECLASS)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPGUID lpServiceClassId _In_ LPGUID lpServiceClassId
); );
typedef typedef
INT INT
(WSAAPI * LPNSPGETSERVICECLASSINFO)( (WSAAPI * LPNSPGETSERVICECLASSINFO)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPDWORD lpdwBufSize, _In_ LPDWORD lpdwBufSize,
__in LPWSASERVICECLASSINFOW lpServiceClassInfo _In_ LPWSASERVICECLASSINFOW lpServiceClassInfo
); );
/* /*
* The name space service provider procedure table. * The name space service provider procedure table.
*/ */
typedef struct _NSP_ROUTINE { typedef struct _NSP_ROUTINE {
/* Structure version information: */ /* Structure version information: */
DWORD cbSize; DWORD cbSize;
skipping to change at line 1387 skipping to change at line 1356
// to match the size of FIELD_OFFSET(NSP_ROUTINE, NSPIoctl). // to match the size of FIELD_OFFSET(NSP_ROUTINE, NSPIoctl).
LPNSPIOCTL NSPIoctl; LPNSPIOCTL NSPIoctl;
#endif //(_WIN32_WINNT >= 0x0501) #endif //(_WIN32_WINNT >= 0x0501)
} NSP_ROUTINE, FAR * LPNSP_ROUTINE; } NSP_ROUTINE, FAR * LPNSP_ROUTINE;
/* /*
* Startup procedures. * Startup procedures.
*/ */
__checkReturn _Must_inspect_result_
INT INT
WSAAPI WSAAPI
NSPStartup( NSPStartup(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__inout LPNSP_ROUTINE lpnspRoutines _Inout_ LPNSP_ROUTINE lpnspRoutines
); );
typedef typedef
__checkReturn _Must_inspect_result_
INT INT
(WSAAPI * LPNSPSTARTUP)( (WSAAPI * LPNSPSTARTUP)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__inout LPNSP_ROUTINE lpnspRoutines _Inout_ LPNSP_ROUTINE lpnspRoutines
); );
typedef typedef
__checkReturn _Must_inspect_result_
INT INT
(WSAAPI * LPNSPV2STARTUP)( (WSAAPI * LPNSPV2STARTUP)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__deref_out LPVOID * ppvClientSessionArg _Outptr_ LPVOID * ppvClientSessionArg
); );
typedef typedef
INT INT
(WSAAPI * LPNSPV2CLEANUP)( (WSAAPI * LPNSPV2CLEANUP)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPVOID pvClientSessionArg _In_ LPVOID pvClientSessionArg
); );
typedef typedef
INT INT
(WSAAPI * LPNSPV2LOOKUPSERVICEBEGIN)( (WSAAPI * LPNSPV2LOOKUPSERVICEBEGIN)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPWSAQUERYSET2W lpqsRestrictions, _In_ LPWSAQUERYSET2W lpqsRestrictions,
__in DWORD dwControlFlags, _In_ DWORD dwControlFlags,
__in LPVOID lpvClientSessionArg, _In_ LPVOID lpvClientSessionArg,
__out LPHANDLE lphLookup _Out_ LPHANDLE lphLookup
); );
typedef typedef
VOID VOID
(WSAAPI * LPNSPV2LOOKUPSERVICENEXTEX)( (WSAAPI * LPNSPV2LOOKUPSERVICENEXTEX)(
__in HANDLE hAsyncCall, _In_ HANDLE hAsyncCall,
__in HANDLE hLookup, _In_ HANDLE hLookup,
__in DWORD dwControlFlags, _In_ DWORD dwControlFlags,
__in LPDWORD lpdwBufferLength, _In_ LPDWORD lpdwBufferLength,
__out LPWSAQUERYSET2W lpqsResults _Out_ LPWSAQUERYSET2W lpqsResults
); );
typedef typedef
INT INT
(WSAAPI * LPNSPV2LOOKUPSERVICEEND)( (WSAAPI * LPNSPV2LOOKUPSERVICEEND)(
__in HANDLE hLookup _In_ HANDLE hLookup
); );
typedef typedef
VOID VOID
(WSAAPI * LPNSPV2SETSERVICEEX)( (WSAAPI * LPNSPV2SETSERVICEEX)(
__in HANDLE hAsyncCall, _In_ HANDLE hAsyncCall,
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPWSAQUERYSET2W lpqsRegInfo, _In_ LPWSAQUERYSET2W lpqsRegInfo,
__in WSAESETSERVICEOP essOperation, _In_ WSAESETSERVICEOP essOperation,
__in DWORD dwControlFlags, _In_ DWORD dwControlFlags,
__in LPVOID lpvClientSessionArg _In_ LPVOID lpvClientSessionArg
); );
typedef typedef
VOID VOID
(WSAAPI * LPNSPV2CLIENTSESSIONRUNDOWN)( (WSAAPI * LPNSPV2CLIENTSESSIONRUNDOWN)(
__in LPGUID lpProviderId, _In_ LPGUID lpProviderId,
__in LPVOID pvClientSessionArg _In_ LPVOID pvClientSessionArg
); );
typedef struct _NSPV2_ROUTINE { typedef struct _NSPV2_ROUTINE {
DWORD cbSize; DWORD cbSize;
DWORD dwMajorVersion; DWORD dwMajorVersion;
DWORD dwMinorVersion; DWORD dwMinorVersion;
LPNSPV2STARTUP NSPv2Startup; LPNSPV2STARTUP NSPv2Startup;
LPNSPV2CLEANUP NSPv2Cleanup; LPNSPV2CLEANUP NSPv2Cleanup;
LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin; LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin;
LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx; LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx;
LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd; LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd;
LPNSPV2SETSERVICEEX NSPv2SetServiceEx; LPNSPV2SETSERVICEEX NSPv2SetServiceEx;
LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown; LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown;
} NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPNSPV2_ROUTINE; } NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPNSPV2_ROUTINE;
typedef const NSPV2_ROUTINE * PCNSPV2_ROUTINE, * LPCNSPV2_ROUTINE; typedef const NSPV2_ROUTINE * PCNSPV2_ROUTINE, * LPCNSPV2_ROUTINE;
#if(_WIN32_WINNT >= 0x0600) #if(_WIN32_WINNT >= 0x0600)
INT WSAAPI WSAAdvertiseProvider( INT WSAAPI WSAAdvertiseProvider(
__in const GUID * puuidProviderId, _In_ const GUID * puuidProviderId,
__in const LPCNSPV2_ROUTINE pNSPv2Routine); _In_ const LPCNSPV2_ROUTINE pNSPv2Routine);
INT WSAAPI WSAUnadvertiseProvider( INT WSAAPI WSAUnadvertiseProvider(
__in const GUID * puuidProviderId); _In_ const GUID * puuidProviderId);
INT WSAAPI WSAProviderCompleteAsyncCall( INT WSAAPI WSAProviderCompleteAsyncCall(
__in HANDLE hAsyncCall, _In_ HANDLE hAsyncCall,
__in INT iRetCode); _In_ INT iRetCode);
#endif //(_WIN32_WINNT >= 0x0600) #endif //(_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#if !defined(_WIN64) #if !defined(_WIN64)
#include <poppack.h> #include <poppack.h>
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* _WINSOCK2SPI_ */ #endif /* _WINSOCK2SPI_ */
 End of changes. 159 change blocks. 
538 lines changed or deleted 513 lines changed or added

This html diff was produced by rfcdiff 1.41.