Headers diff for mswsock.dll between 5.2.3790.3959-Windows 5.0 and 6.0.6002.18005-Windows 6.0 versions



 mswsock.h (5.2.3790.3959-Windows 5.0)   mswsock.h (6.0.6002.18005-Windows 6.0) 
skipping to change at line 29 skipping to change at line 29
#define _MSWSOCK_ #define _MSWSOCK_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
#include <mswsockdef.h>
/* /*
* 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 57 skipping to change at line 59
#define SO_SYNCHRONOUS_ALERT 0x10 #define SO_SYNCHRONOUS_ALERT 0x10
#define SO_SYNCHRONOUS_NONALERT 0x20 #define SO_SYNCHRONOUS_NONALERT 0x20
/* /*
* 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)
#define SO_UPDATE_CONNECT_CONTEXT 0x7010 #define SO_UPDATE_CONNECT_CONTEXT 0x7010
#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), * Path 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)
#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.
*/ */
#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)
/*
* MS Transport Provider IOCTL to control
* reporting NET_UNREACHABLE (TTL expired) messages
* on UDP sockets via recv/WSARecv/Etc.
* Pass TRUE in input buffer to enabled (default if supported),
* FALSE to disable.
*/
#define SIO_UDP_NETRESET _WSAIOW(IOC_VENDOR,15)
/* /*
* Microsoft extended APIs. * Microsoft extended APIs.
*/ */
#if(_WIN32_WINNT < 0x0600)
int int
PASCAL FAR PASCAL FAR
WSARecvEx ( WSARecvEx(
SOCKET s, SOCKET s,
char FAR *buf, __out_bcount_part(len, return) char FAR *buf,
int len, int len,
int FAR *flags int FAR *flags
); );
#else //(_WIN32_WINNT < 0x0600)
INT
PASCAL FAR
WSARecvEx(
SOCKET s,
__out_bcount_part(len, return) CHAR FAR *buf,
INT len,
INT FAR *flags
);
#endif //(_WIN32_WINNT < 0x0600)
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
skipping to change at line 122 skipping to change at line 153
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,
IN LPOVERLAPPED lpOverlapped, IN LPOVERLAPPED lpOverlapped,
IN LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers, IN 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,
IN PVOID lpOutputBuffer, __out_bcount_part(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLe
ngth,
*lpdwBytesReceived) IN 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,
IN LPOVERLAPPED lpOverlapped IN LPOVERLAPPED lpOverlapped
); );
__control_entrypoint(DllExport)
VOID VOID
PASCAL FAR PASCAL FAR
GetAcceptExSockaddrs ( GetAcceptExSockaddrs (
IN PVOID lpOutputBuffer, __in_bcount(dwReceiveDataLength+dwLocalAddressLength+dwRemoteAddressLength) IN PVOID lpOutputBuffer,
IN DWORD dwReceiveDataLength, IN DWORD dwReceiveDataLength,
IN DWORD dwLocalAddressLength, IN DWORD dwLocalAddressLength,
IN DWORD dwRemoteAddressLength, IN DWORD dwRemoteAddressLength,
OUT struct sockaddr **LocalSockaddr, __deref_out_bcount(*LocalSockaddrLength) OUT struct sockaddr **LocalSockaddr ,
OUT LPINT LocalSockaddrLength, OUT LPINT LocalSockaddrLength,
OUT struct sockaddr **RemoteSockaddr, __deref_out_bcount(*RemoteSockaddrLength) OUT struct sockaddr **RemoteSockad dr,
OUT LPINT RemoteSockaddrLength 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)(
skipping to change at line 199 skipping to change at line 233
IN DWORD dwRemoteAddressLength, IN DWORD dwRemoteAddressLength,
OUT struct sockaddr **LocalSockaddr, OUT struct sockaddr **LocalSockaddr,
OUT LPINT LocalSockaddrLength, OUT LPINT LocalSockaddrLength,
OUT struct sockaddr **RemoteSockaddr, OUT struct sockaddr **RemoteSockaddr,
OUT LPINT RemoteSockaddrLength 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 _MSC_VER >= 1200 #if _MSC_VER >= 1200
#pragma warning(push) #pragma warning(push)
#endif #endif
#pragma warning(disable:4201) /* Nonstandard extension, nameless struct/union */ #pragma warning(disable:4201) /* Nonstandard extension, nameless struct/union */
typedef struct _TRANSMIT_PACKETS_ELEMENT { typedef struct _TRANSMIT_PACKETS_ELEMENT {
ULONG dwElFlags; ULONG dwElFlags;
#define TP_ELEMENT_MEMORY 1 #define TP_ELEMENT_MEMORY 1
#define TP_ELEMENT_FILE 2 #define TP_ELEMENT_FILE 2
#define TP_ELEMENT_EOP 4 #define TP_ELEMENT_EOP 4
skipping to change at line 356 skipping to change at line 392
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;
typedef struct _WSAMSG {
LPSOCKADDR name; /* Remote address */
INT namelen; /* Remote address length */
LPWSABUF lpBuffers; /* Data buffer array */
DWORD dwBufferCount; /* Number of elements in the array */
WSABUF Control; /* Control buffer */
DWORD dwFlags; /* Flags */
} WSAMSG, *PWSAMSG, * FAR LPWSAMSG;
/* /*
* Layout of ancillary data objects in the control buffer * WSARecvMsg -- support for receiving ancilliary
* data/control information with a message.
*/ */
typedef struct _WSACMSGHDR { typedef
SIZE_T cmsg_len; INT
INT cmsg_level; (PASCAL FAR * LPFN_WSARECVMSG) (
INT cmsg_type; IN SOCKET s,
/* followed by UCHAR cmsg_data[] */ IN OUT LPWSAMSG lpMsg,
} WSACMSGHDR, *PWSACMSGHDR, FAR *LPWSACMSGHDR; __out_opt LPDWORD lpdwNumberOfBytesRecvd,
IN LPWSAOVERLAPPED lpOverlapped,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
#define WSAID_WSARECVMSG \
{0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}}
#endif //(_WIN32_WINNT >= 0x0501)
#if(_WIN32_WINNT >= 0x0600)
/* /*
* Alignment macros for header and data members of * Ioctl codes for translating socket handles to the base provider handle.
* the control buffer. * This is performed to prevent breaking non-IFS LSPs when new Winsock extension
* funtions are added.
*/ */
#define WSA_CMSGHDR_ALIGN(length) \ #define SIO_BSP_HANDLE _WSAIOR(IOC_WS2,27)
( ((length) + TYPE_ALIGNMENT(WSACMSGHDR)-1) & \ #define SIO_BSP_HANDLE_SELECT _WSAIOR(IOC_WS2,28)
(~(TYPE_ALIGNMENT(WSACMSGHDR)-1)) ) \ #define SIO_BSP_HANDLE_POLL _WSAIOR(IOC_WS2,29)
#define WSA_CMSGDATA_ALIGN(length) \
( ((length) + MAX_NATURAL_ALIGNMENT-1) & \
(~(MAX_NATURAL_ALIGNMENT-1)) )
/* /*
* WSA_CMSG_FIRSTHDR * 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
* Returns a pointer to the first ancillary data object, ted
* or a null pointer if there is no ancillary data in the * by Winsock LSPs.
* control buffer of the WSAMSG structure.
*
* LPCMSGHDR
* WSA_CMSG_FIRSTHDR (
* LPWSAMSG msg
* );
*/ */
#define WSA_CMSG_FIRSTHDR(msg) \ #define SIO_BASE_HANDLE _WSAIOR(IOC_WS2,34)
( ((msg)->Control.len >= sizeof(WSACMSGHDR)) \
? (LPWSACMSGHDR)(msg)->Control.buf \
: (LPWSACMSGHDR)NULL )
/* /*
* WSA_CMSG_NXTHDR * Ioctl codes for Winsock extension functions.
*
* Returns a pointer to the next ancillary data object,
* or a null if there are no more data objects.
*
* LPCMSGHDR
* WSA_CMSG_NEXTHDR (
* LPWSAMSG msg,
* LPWSACMSGHDR cmsg
* );
*/ */
#define WSA_CMSG_NXTHDR(msg, cmsg) \ #define SIO_EXT_SELECT _WSAIORW(IOC_WS2,30)
( ((cmsg) == NULL) \ #define SIO_EXT_POLL _WSAIORW(IOC_WS2,31)
? WSA_CMSG_FIRSTHDR(msg) \ #define SIO_EXT_SENDMSG _WSAIORW(IOC_WS2,32)
: ( ( ((u_char *)(cmsg) + \
WSA_CMSGHDR_ALIGN((cmsg)->cmsg_len) + \ #pragma warning(push)
sizeof(WSACMSGHDR) ) > \ #pragma warning(disable:4200) /* zero-sized array in struct/union */
(u_char *)((msg)->Control.buf) + \
(msg)->Control.len ) \
? (LPWSACMSGHDR)NULL \
: (LPWSACMSGHDR)((u_char *)(cmsg) + \
WSA_CMSGHDR_ALIGN((cmsg)->cmsg_len)) ) )
/* /*
* WSA_CMSG_DATA * Data structure for passing WSAPoll arugments through WSAIoctl
*
* Returns a pointer to the first byte of data (what is referred
* to as the cmsg_data member though it is not defined in
* the structure).
*
* u_char *
* WSA_CMSG_DATA (
* LPWSACMSGHDR pcmsg
* );
*/ */
#define WSA_CMSG_DATA(cmsg) \ typedef struct {
( (u_char *)(cmsg) + WSA_CMSGDATA_ALIGN(sizeof(WSACMSGHDR)) ) int result;
ULONG fds;
INT timeout;
WSAPOLLFD fdArray[0];
} WSAPOLLDATA, *LPWSAPOLLDATA;
#pragma warning(pop)
/* /*
* WSA_CMSG_SPACE * Data structure for passing WSASendMsg arguments through WSAIoctl
*
* Returns total size of an ancillary data object given
* the amount of data. Used to allocate the correct amount
* of space.
*
* SIZE_T
* WSA_CMSG_SPACE (
* SIZE_T length
* );
*/ */
#define WSA_CMSG_SPACE(length) \ typedef struct {
(WSA_CMSGDATA_ALIGN(sizeof(WSACMSGHDR) + WSA_CMSGHDR_ALIGN(length))) LPWSAMSG lpMsg;
DWORD dwFlags;
LPDWORD lpNumberOfBytesSent;
LPWSAOVERLAPPED lpOverlapped;
LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine;
} WSASENDMSG, *LPWSASENDMSG;
/* /*
* WSA_CMSG_LEN * WSASendMsg -- send data to a specific destination, with options, using
* overlapped I/O where applicable.
* *
* Returns the value to store in cmsg_len given the amount of data. * Valid flags for dwFlags parameter:
* MSG_DONTROUTE
* MSG_PARTIAL (a.k.a. MSG_EOR) (only for non-stream sockets)
* MSG_OOB (only for stream style sockets) (NYI)
* *
* SIZE_T * Caller must provide either lpOverlapped or lpCompletionRoutine
* WSA_CMSG_LEN ( * or neither (both NULL).
* SIZE_T length
* );
*/ */
#define WSA_CMSG_LEN(length) \ typedef
(WSA_CMSGDATA_ALIGN(sizeof(WSACMSGHDR)) + length) INT
(PASCAL FAR * LPFN_WSASENDMSG) (
IN SOCKET s,
IN LPWSAMSG lpMsg,
IN DWORD dwFlags,
__out_opt LPDWORD lpNumberOfBytesSent,
IN LPWSAOVERLAPPED lpOverlapped OPTIONAL,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine OPTIONAL
);
/* #define WSAID_WSASENDMSG /* a441e712-754f-43ca-84a7-0dee44cf606d */ \
* Definition for flags member of the WSAMSG structure {0xa441e712,0x754f,0x43ca,{0x84,0xa7,0x0d,0xee,0x44,0xcf,0x60,0x6d}}
* This is in addition to other MSG_xxx flags defined
* for recv/recvfrom/send/sendto.
*/
#define MSG_TRUNC 0x0100
#define MSG_CTRUNC 0x0200
#define MSG_BCAST 0x0400
#define MSG_MCAST 0x0800
//
// WSAPoll
//
typedef typedef
INT INT
(PASCAL FAR * LPFN_WSARECVMSG) ( (WSAAPI *LPFN_WSAPOLL)(
IN SOCKET s, IN OUT LPWSAPOLLFD fdarray,
IN OUT LPWSAMSG lpMsg, IN ULONG nfds,
OUT LPDWORD lpdwNumberOfBytesRecvd, IN INT timeout
IN LPWSAOVERLAPPED lpOverlapped,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
); );
#define WSAID_WSARECVMSG \ #define WSAID_WSAPOLL \
{0xf689d7c8,0x6f1f,0x436b,{0x8a,0x53,0xe5,0x4f,0xe3,0x51,0xc3,0x22}} {0x18C76F85,0xDC66,0x4964,{0x97,0x2E,0x23,0xC2,0x72,0x38,0x31,0x2B}}
#endif //(_WIN32_WINNT >= 0x0600)
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#endif /* _MSWSOCK_ */ #endif /* _MSWSOCK_ */
 End of changes. 38 change blocks. 
115 lines changed or deleted 127 lines changed or added


 ws2spi.h (5.2.3790.3959-Windows 5.0)   ws2spi.h (6.0.6002.18005-Windows 6.0) 
//$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
skipping to change at line 22 skipping to change at line 36
*/ */
#ifndef _WINSOCK2SPI_ #ifndef _WINSOCK2SPI_
#define _WINSOCK2SPI_ #define _WINSOCK2SPI_
#if _MSC_VER > 1000 #if _MSC_VER > 1000
#pragma once #pragma once
#endif #endif
/* /*
* Ensure structures are packed consistently.
*/
#if !defined(_WIN64)
#include <pshpack4.h>
#endif
/*
* 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_ */
/*
* Ensure structures are packed consistently.
*/
#if !defined(_WIN64)
#include <pshpack4.h>
#endif
#define WSPDESCRIPTION_LEN 255 #define WSPDESCRIPTION_LEN 255
#define WSS_OPERATION_IN_PROGRESS 0x00000103L #define WSS_OPERATION_IN_PROGRESS 0x00000103L
typedef struct WSPData { typedef struct WSPData {
WORD wVersion; WORD wVersion;
WORD wHighVersion; WORD wHighVersion;
WCHAR szDescription[WSPDESCRIPTION_LEN+1]; WCHAR szDescription[WSPDESCRIPTION_LEN+1];
} WSPDATA, FAR * LPWSPDATA; } WSPDATA, FAR * LPWSPDATA;
skipping to change at line 570 skipping to change at line 584
int int
(WSPAPI * LPWPUCLOSETHREAD)( (WSPAPI * LPWPUCLOSETHREAD)(
LPWSATHREADID lpThreadId, LPWSATHREADID lpThreadId,
LPINT lpErrno 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, SOCKET s,
LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED lpOverlapped,
DWORD dwError, DWORD dwError,
DWORD cbTransferred, DWORD cbTransferred,
LPINT lpErrno 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.
*/ */
skipping to change at line 606 skipping to change at line 620
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)
int int
WSPAPI WSPAPI
WSPStartup( WSPStartup(
IN WORD wVersionRequested, IN WORD wVersionRequested,
OUT LPWSPDATA lpWSPData, __in OUT LPWSPDATA lpWSPData,
IN LPWSAPROTOCOL_INFOW lpProtocolInfo, __in IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
IN WSPUPCALLTABLE UpcallTable, __in IN WSPUPCALLTABLE UpcallTable,
OUT LPWSPPROC_TABLE lpProcTable __inout OUT LPWSPPROC_TABLE lpProcTable
); );
typedef typedef
int int
(WSPAPI * LPWSPSTARTUP)( (WSPAPI * LPWSPSTARTUP)(
WORD wVersionRequested, WORD wVersionRequested,
LPWSPDATA lpWSPData, LPWSPDATA lpWSPData,
LPWSAPROTOCOL_INFOW lpProtocolInfo, LPWSAPROTOCOL_INFOW lpProtocolInfo,
WSPUPCALLTABLE UpcallTable, WSPUPCALLTABLE UpcallTable,
LPWSPPROC_TABLE lpProcTable LPWSPPROC_TABLE lpProcTable
); );
/* /*
* Installation and configuration entrypoints. * Installation and configuration entrypoints.
*/ */
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCEnumProtocols( WSCEnumProtocols(
IN LPINT lpiProtocols, IN LPINT lpiProtocols,
OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, __out_bcount_opt(*lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer,
IN OUT LPDWORD lpdwBufferLength, IN OUT LPDWORD lpdwBufferLength,
OUT LPINT lpErrno OUT LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSCENUMPROTOCOLS)( (WSPAPI * LPWSCENUMPROTOCOLS)(
LPINT lpiProtocols, LPINT lpiProtocols,
LPWSAPROTOCOL_INFOW lpProtocolBuffer, LPWSAPROTOCOL_INFOW lpProtocolBuffer,
LPDWORD lpdwBufferLength, LPDWORD lpdwBufferLength,
LPINT lpErrno LPINT lpErrno
); );
#if defined(_WIN64) #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 LPINT lpiProtocols, IN LPINT lpiProtocols,
OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer, __out_bcount(*lpdwBufferLength) LPWSAPROTOCOL_INFOW lpProtocolBuffer,
IN OUT LPDWORD lpdwBufferLength, IN OUT LPDWORD lpdwBufferLength,
OUT LPINT lpErrno OUT LPINT lpErrno
); );
#endif #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)(
LPGUID lpProviderId, LPGUID lpProviderId,
LPINT lpErrno LPINT lpErrno
); );
#if defined(_WIN64) #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 #endif //(defined(_WIN64) && _WIN32_WINNT >= 0x0501)
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCInstallProvider( WSCInstallProvider(
IN LPGUID lpProviderId, IN LPGUID lpProviderId,
IN const WCHAR FAR * lpszProviderDllPath, IN const WCHAR FAR * lpszProviderDllPath,
IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, __in_ecount(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)(
LPGUID lpProviderId, LPGUID lpProviderId,
const WCHAR FAR * lpszProviderDllPath, const WCHAR FAR * lpszProviderDllPath,
const LPWSAPROTOCOL_INFOW lpProtocolInfoList, const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
DWORD dwNumberOfEntries, DWORD dwNumberOfEntries,
LPINT lpErrno LPINT lpErrno
); );
#if defined(_WIN64) #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 const WCHAR FAR * lpszProviderDllPath, IN const WCHAR FAR * lpszProviderDllPath,
IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, __in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
IN DWORD dwNumberOfEntries, IN DWORD dwNumberOfEntries,
OUT LPINT lpErrno OUT LPINT lpErrno
); );
#endif #endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCGetProviderPath( WSCGetProviderPath(
IN LPGUID lpProviderId, IN LPGUID lpProviderId,
OUT WCHAR FAR * lpszProviderDllPath, __out_ecount(*lpProviderDllPathLen) WCHAR FAR * lpszProviderDllPath,
IN OUT LPINT lpProviderDllPathLen, IN OUT LPINT lpProviderDllPathLen,
OUT LPINT lpErrno OUT LPINT lpErrno
); );
typedef typedef
int int
(WSPAPI * LPWSCGETPROVIDERPATH)( (WSPAPI * LPWSCGETPROVIDERPATH)(
LPGUID lpProviderId, LPGUID lpProviderId,
WCHAR FAR * lpszProviderDllPath, WCHAR FAR * lpszProviderDllPath,
LPINT lpProviderDllPathLen, LPINT lpProviderDllPathLen,
LPINT lpErrno LPINT lpErrno
); );
#if(_WIN32_WINNT >= 0x0501)
#if defined(_WIN64) #if defined(_WIN64)
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCGetProviderPath32( WSCGetProviderPath32(
IN LPGUID lpProviderId, IN LPGUID lpProviderId,
OUT WCHAR FAR * lpszProviderDllPath, __out_ecount(*lpProviderDllPathLen) WCHAR FAR * lpszProviderDllPath,
IN OUT LPINT lpProviderDllPathLen, IN OUT 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 const WCHAR FAR * lpszProviderDllPath, IN const WCHAR FAR * lpszProviderDllPath,
IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, __in_ecount(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)(
LPGUID lpProviderId, LPGUID lpProviderId,
const WCHAR FAR * lpszProviderDllPath, const WCHAR FAR * lpszProviderDllPath,
const LPWSAPROTOCOL_INFOW lpProtocolInfoList, const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
DWORD dwNumberOfEntries, DWORD dwNumberOfEntries,
LPINT lpErrno LPINT lpErrno
); );
#if defined(_WIN64) #if defined(_WIN64)
__control_entrypoint(DllExport)
int int
WSPAPI WSPAPI
WSCUpdateProvider32( WSCUpdateProvider32(
IN LPGUID lpProviderId, IN LPGUID lpProviderId,
IN const WCHAR FAR * lpszProviderDllPath, IN const WCHAR FAR * lpszProviderDllPath,
IN const LPWSAPROTOCOL_INFOW lpProtocolInfoList, __in_ecount(dwNumberOfEntries) const LPWSAPROTOCOL_INFOW lpProtocolInfoList,
IN DWORD dwNumberOfEntries, IN DWORD dwNumberOfEntries,
OUT LPINT lpErrno OUT LPINT lpErrno
); );
#endif #endif
#endif //(_WIN32_WINNT >= 0x0501)
#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
skipping to change at line 815 skipping to change at line 846
IN LPWSABUF QosName IN LPWSABUF QosName
); );
typedef typedef
int int
(WSPAPI * LPWSCREMOVEQOSTEMPLATE)( (WSPAPI * LPWSCREMOVEQOSTEMPLATE)(
const LPGUID Guid, const LPGUID Guid,
LPWSABUF QosName LPWSABUF QosName
); );
#endif //(_WIN32_WINNT < 0x0600)
#if(_WIN32_WINNT >= 0x0600)
//
// LSP Categorization
//
#define LSP_SYSTEM 0x80000000
#define LSP_INSPECTOR 0x00000001
#define LSP_REDIRECTOR 0x00000002
#define LSP_PROXY 0x00000004
#define LSP_FIREWALL 0x00000008
#define LSP_INBOUND_MODIFY 0x00000010
#define LSP_OUTBOUND_MODIFY 0x00000020
#define LSP_CRYPTO_COMPRESS 0x00000040
#define LSP_LOCAL_CACHE 0x00000080
//
// Provider Information APIs
//
typedef enum _WSC_PROVIDER_INFO_TYPE {
// InfoType is: Info points to:
ProviderInfoLspCategories, // DWORD (LspCategories)
ProviderInfoAudit, // struct WSC_PROVIDER_AUDIT_INFO
} WSC_PROVIDER_INFO_TYPE ;
typedef struct _WSC_PROVIDER_AUDIT_INFO {
DWORD RecordSize; // Size of this audit record, in bytes (includes thi
s field)
PVOID Reserved; // Reserved
// Install Time (GMT)
// User SID of account performing install
// Length (in characters) of Full Path
// Full Path of EXE performing install
} WSC_PROVIDER_AUDIT_INFO;
__control_entrypoint(DllExport)
int
WSPAPI
WSCSetProviderInfo(
__in LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType,
__in_bcount(InfoSize) PBYTE Info,
__in size_t InfoSize,
__in DWORD Flags,
__out LPINT lpErrno
);
__control_entrypoint(DllExport)
int
WSPAPI
WSCGetProviderInfo(
__in LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType,
__out_bcount_part(*InfoSize, *InfoSize) PBYTE Info,
__inout size_t *InfoSize,
__in DWORD Flags,
__out LPINT lpErrno
);
#if defined(_WIN64)
__control_entrypoint(DllExport)
int
WSPAPI
WSCSetProviderInfo32(
__in LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType,
__in_bcount(InfoSize) PBYTE Info,
__in size_t InfoSize,
__in DWORD Flags,
__out LPINT lpErrno
);
__control_entrypoint(DllExport)
int
WSPAPI
WSCGetProviderInfo32(
__in LPGUID lpProviderId,
__in WSC_PROVIDER_INFO_TYPE InfoType,
__out_bcount_part(*InfoSize, *InfoSize) PBYTE Info,
__inout size_t *InfoSize,
__in DWORD Flags,
__out LPINT lpErrno
);
#endif // (_WIN64)
//
// App Permitted LSP Categorization APIs
//
__control_entrypoint(DllExport)
int
WSPAPI
WSCSetApplicationCategory(
__in_ecount(PathLength) LPCWSTR Path,
__in DWORD PathLength,
__in_ecount_opt(ExtraLength) LPCWSTR Extra,
__in DWORD ExtraLength,
__in DWORD PermittedLspCategories,
__out_opt DWORD * pPrevPermLspCat,
__out LPINT lpErrno
);
__control_entrypoint(DllExport)
int
WSPAPI
WSCGetApplicationCategory(
__in_ecount(PathLength) LPCWSTR Path,
__in DWORD PathLength,
__in_ecount_opt(ExtraLength) LPCWSTR Extra,
__in DWORD ExtraLength,
__out DWORD * pPermittedLspCategories,
__out LPINT lpErrno
);
#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
skipping to change at line 848 skipping to change at line 999
); );
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 WCHAR FAR * lpszProviderDllPath, __out_ecount(*lpProviderDllPathLen) WCHAR FAR * lpszProviderDllPath,
IN OUT 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
skipping to change at line 898 skipping to change at line 1051
); );
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
skipping to change at line 921 skipping to change at line 1075
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 (
SOCKET s, SOCKET s,
LPWSAOVERLAPPED lpOverlapped, LPWSAOVERLAPPED lpOverlapped,
DWORD dwError, DWORD dwError,
DWORD cbTransferred, DWORD cbTransferred,
LPINT lpErrno LPINT lpErrno
); );
#if(_WIN32_WINNT >= 0x0501)
__control_entrypoint(DispatchTable)
int int
WSPAPI WSPAPI
WPUOpenCurrentThread( WPUOpenCurrentThread(
LPWSATHREADID lpThreadId, LPWSATHREADID lpThreadId,
LPINT lpErrno LPINT lpErrno
); );
__control_entrypoint(DispatchTable)
int int
WSPAPI WSPAPI
WPUCloseThread( WPUCloseThread(
LPWSATHREADID lpThreadId, LPWSATHREADID lpThreadId,
LPINT lpErrno LPINT lpErrno
); );
#endif //(_WIN32_WINNT >= 0x0501)
/* /*
* Installing and uninstalling name space providers. * Installing and uninstalling name space providers.
*/ */
#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(
IN OUT LPDWORD lpdwBufferLength, __inout LPDWORD lpdwBufferLength,
OUT LPWSANAMESPACE_INFOW lpnspBuffer __out_bcount(*lpdwBufferLength) LPWSANAMESPACE_INFOW lpnspBuffer
); );
#endif #endif
#endif //(_WIN32_WINNT >= 0x0501)
#if(_WIN32_WINNT >= 0x0600)
#define WSCEnumNameSpaceProvidersEx WSAEnumNameSpaceProvidersExW
#define LPFN_WSCENUMNAMESPACEPROVIDERSEX LPFN_WSAENUMNAMESPACEPROVIDERSEXW
#if defined(_WIN64)
INT
WSAAPI
WSCEnumNameSpaceProvidersEx32(
__inout LPDWORD lpdwBufferLength,
__out_bcount(*lpdwBufferLength) LPWSANAMESPACE_INFOEXW lpnspBuffer
);
#endif //(_WIN64)
#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 IN LPGUID lpProviderId
); );
typedef typedef
INT INT
(WSPAPI * LPWSCINSTALLNAMESPACE)( (WSPAPI * LPWSCINSTALLNAMESPACE)(
LPWSTR lpszIdentifier, LPWSTR lpszIdentifier,
LPWSTR lpszPathName, LPWSTR lpszPathName,
DWORD dwNameSpace, DWORD dwNameSpace,
DWORD dwVersion, DWORD dwVersion,
LPGUID lpProviderId LPGUID lpProviderId
); );
#if defined(_WIN64) #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 #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)(
LPGUID lpProviderId LPGUID lpProviderId
); );
#if defined(_WIN64) #if (_WIN32_WINNT >= 0x0600 )
INT
WSPAPI
WSCInstallNameSpaceEx(
__in LPWSTR lpszIdentifier,
__in LPWSTR lpszPathName,
IN DWORD dwNameSpace,
IN DWORD dwVersion,
__in LPGUID lpProviderId,
__in LPBLOB lpProviderSpecific
);
#endif //(defined(_WIN32_WINNT >= 0x0600)
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0600))
INT
WSPAPI
WSCInstallNameSpaceEx32(
__in LPWSTR lpszIdentifier,
__in LPWSTR lpszPathName,
IN DWORD dwNameSpace,
IN DWORD dwVersion,
IN LPGUID lpProviderId,
IN LPBLOB lpProviderSpecific
);
#endif //(defined(_WIN64) && (_WIN32_WINNT >= 0x0600))
#if(defined(_WIN64) && (_WIN32_WINNT >= 0x0501))
INT INT
WSPAPI WSPAPI
WSCUnInstallNameSpace32 ( WSCUnInstallNameSpace32 (
IN LPGUID lpProviderId IN LPGUID lpProviderId
); );
#endif #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)(
LPGUID lpProviderId, LPGUID lpProviderId,
BOOL fEnable BOOL fEnable
); );
#if defined(_WIN64) #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))
#if (_WIN32_WINNT >= 0x0600)
#if defined(_WIN64)
int WSPAPI WSCInstallProviderAndChains64_32(
#else
int WSPAPI WSCInstallProviderAndChains(
#endif
IN LPGUID lpProviderId,
__in const LPWSTR lpszProviderDllPath,
#if defined(_WIN64)
__in const LPWSTR lpszProviderDllPath32,
#endif #endif
__in const LPWSTR lpszLspName,
IN DWORD dwServiceFlags,
__inout_ecount(dwNumberOfEntries) LPWSAPROTOCOL_INFOW lpProtocolInfoList,
IN DWORD dwNumberOfEntries,
OUT LPDWORD lpdwCatalogEntryId OPTIONAL,
OUT LPINT lpErrno);
#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)(
LPGUID lpProviderId LPGUID lpProviderId
); );
skipping to change at line 1070 skipping to change at line 1292
typedef typedef
INT INT
(WSAAPI * LPNSPLOOKUPSERVICENEXT)( (WSAAPI * LPNSPLOOKUPSERVICENEXT)(
HANDLE hLookup, HANDLE hLookup,
DWORD dwControlFlags, DWORD dwControlFlags,
LPDWORD lpdwBufferLength, LPDWORD lpdwBufferLength,
LPWSAQUERYSETW lpqsResults LPWSAQUERYSETW lpqsResults
); );
#if(_WIN32_WINNT >= 0x0501)
typedef typedef
INT INT
(WSAAPI * LPNSPIOCTL)( (WSAAPI * LPNSPIOCTL)(
HANDLE hLookup, HANDLE hLookup,
DWORD dwControlCode, DWORD dwControlCode,
LPVOID lpvInBuffer, LPVOID lpvInBuffer,
DWORD cbInBuffer, DWORD cbInBuffer,
LPVOID lpvOutBuffer, LPVOID lpvOutBuffer,
DWORD cbOutBuffer, DWORD cbOutBuffer,
LPDWORD lpcbBytesReturned, LPDWORD lpcbBytesReturned,
LPWSACOMPLETION lpCompletion, LPWSACOMPLETION lpCompletion,
LPWSATHREADID lpThreadId LPWSATHREADID lpThreadId
); );
#endif //(_WIN32_WINNT >= 0x0501)
typedef typedef
INT INT
(WSAAPI * LPNSPLOOKUPSERVICEEND)( (WSAAPI * LPNSPLOOKUPSERVICEEND)(
HANDLE hLookup HANDLE hLookup
); );
typedef typedef
INT INT
(WSAAPI * LPNSPSETSERVICE)( (WSAAPI * LPNSPSETSERVICE)(
skipping to change at line 1144 skipping to change at line 1368
LPNSPCLEANUP NSPCleanup; LPNSPCLEANUP NSPCleanup;
LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin; LPNSPLOOKUPSERVICEBEGIN NSPLookupServiceBegin;
LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext; LPNSPLOOKUPSERVICENEXT NSPLookupServiceNext;
LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd; LPNSPLOOKUPSERVICEEND NSPLookupServiceEnd;
LPNSPSETSERVICE NSPSetService; LPNSPSETSERVICE NSPSetService;
LPNSPINSTALLSERVICECLASS NSPInstallServiceClass; LPNSPINSTALLSERVICECLASS NSPInstallServiceClass;
LPNSPREMOVESERVICECLASS NSPRemoveServiceClass; LPNSPREMOVESERVICECLASS NSPRemoveServiceClass;
LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo; LPNSPGETSERVICECLASSINFO NSPGetServiceClassInfo;
#if(_WIN32_WINNT >= 0x0501)
// These APIs were added later, so must appear here // These APIs were added later, so must appear here
// to keep the pointers in the structure in order. // to keep the pointers in the structure in order.
// Namespaces unaware of these APIs will set cbSize // Namespaces unaware of these APIs will set cbSize
// 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)
} NSP_ROUTINE, FAR * LPNSP_ROUTINE; } NSP_ROUTINE, FAR * LPNSP_ROUTINE;
/* /*
* Startup procedures. * Startup procedures.
*/ */
INT INT
WSAAPI WSAAPI
NSPStartup( NSPStartup(
LPGUID lpProviderId, __in LPGUID lpProviderId,
LPNSP_ROUTINE lpnspRoutines __inout LPNSP_ROUTINE lpnspRoutines
); );
typedef typedef
INT INT
(WSAAPI * LPNSPSTARTUP)( (WSAAPI * LPNSPSTARTUP)(
LPGUID lpProviderId, LPGUID lpProviderId,
LPNSP_ROUTINE lpnspRoutines LPNSP_ROUTINE lpnspRoutines
); );
typedef
INT
(WSAAPI * LPNSPV2STARTUP)(
LPGUID lpProviderId,
LPVOID * ppvClientSessionArg
);
typedef
INT
(WSAAPI * LPNSPV2CLEANUP)(
LPGUID lpProviderId,
LPVOID pvClientSessionArg
);
typedef
INT
(WSAAPI * LPNSPV2LOOKUPSERVICEBEGIN)(
LPGUID lpProviderId,
LPWSAQUERYSET2W lpqsRestrictions,
DWORD dwControlFlags,
LPVOID lpvClientSessionArg,
LPHANDLE lphLookup
);
typedef
VOID
(WSAAPI * LPNSPV2LOOKUPSERVICENEXTEX)(
HANDLE hAsyncCall,
HANDLE hLookup,
DWORD dwControlFlags,
LPDWORD lpdwBufferLength,
LPWSAQUERYSET2W lpqsResults
);
typedef
INT
(WSAAPI * LPNSPV2LOOKUPSERVICEEND)(
HANDLE hLookup
);
typedef
VOID
(WSAAPI * LPNSPV2SETSERVICEEX)(
HANDLE hAsyncCall,
LPGUID lpProviderId,
LPWSAQUERYSET2W lpqsRegInfo,
WSAESETSERVICEOP essOperation,
DWORD dwControlFlags,
LPVOID lpvClientSessionArg
);
typedef
VOID
(WSAAPI * LPNSPV2CLIENTSESSIONRUNDOWN)(
LPGUID lpProviderId,
LPVOID pvClientSessionArg
);
typedef struct _NSPV2_ROUTINE {
DWORD cbSize;
DWORD dwMajorVersion;
DWORD dwMinorVersion;
LPNSPV2STARTUP NSPv2Startup;
LPNSPV2CLEANUP NSPv2Cleanup;
LPNSPV2LOOKUPSERVICEBEGIN NSPv2LookupServiceBegin;
LPNSPV2LOOKUPSERVICENEXTEX NSPv2LookupServiceNextEx;
LPNSPV2LOOKUPSERVICEEND NSPv2LookupServiceEnd;
LPNSPV2SETSERVICEEX NSPv2SetServiceEx;
LPNSPV2CLIENTSESSIONRUNDOWN NSPv2ClientSessionRundown;
} NSPV2_ROUTINE, *PNSPV2_ROUTINE, *LPNSPV2_ROUTINE;
typedef const NSPV2_ROUTINE * PCNSPV2_ROUTINE, * LPCNSPV2_ROUTINE;
#if(_WIN32_WINNT >= 0x0600)
INT WSAAPI WSAAdvertiseProvider(
__in const GUID * puuidProviderId,
__in const LPCNSPV2_ROUTINE pNSPv2Routine);
INT WSAAPI WSAUnadvertiseProvider(
__in const GUID * puuidProviderId);
INT WSAAPI WSAProviderCompleteAsyncCall(
__in HANDLE hAsyncCall,
__in INT iRetCode);
#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 /* _WINSOCK2SPI_ */ #endif /* _WINSOCK2SPI_ */
 End of changes. 60 change blocks. 
43 lines changed or deleted 357 lines changed or added

This html diff was produced by rfcdiff 1.41.