mirror of
https://github.com/reactos/reactos.git
synced 2024-07-09 06:05:11 +00:00
[WINSOCK]
- Add winsock headers required for the new mswsock code svn path=/trunk/; revision=48009
This commit is contained in:
commit
525e7111c4
52
reactos/include/reactos/winsock/msafd.h
Normal file
52
reactos/include/reactos/winsock/msafd.h
Normal file
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Ancillary Function Driver DLL
|
||||
* FILE: include/msafd.h
|
||||
* PURPOSE: Ancillary Function Driver DLL header
|
||||
*/
|
||||
|
||||
#define NTOS_MODE_USER
|
||||
#define WIN32_NO_STATUS
|
||||
#define _CRT_SECURE_NO_DEPRECATE
|
||||
#define _WIN32_WINNT 0x502
|
||||
|
||||
/* Winsock Headers */
|
||||
#include <winsock2.h>
|
||||
#include <mswsock.h>
|
||||
#include <ws2spi.h>
|
||||
#include <ws2tcpip.h>
|
||||
#include <windns.h>
|
||||
#include <nspapi.h>
|
||||
#include <ws2atm.h>
|
||||
|
||||
/* NDK */
|
||||
#include <rtlfuncs.h>
|
||||
#include <obfuncs.h>
|
||||
#include <exfuncs.h>
|
||||
#include <iofuncs.h>
|
||||
#include <kefuncs.h>
|
||||
|
||||
/* Shared NSP Header */
|
||||
#include <nsp_dns.h>
|
||||
|
||||
/* Winsock 2 API Helper Header */
|
||||
#include <ws2help.h>
|
||||
|
||||
/* Winsock Helper Header */
|
||||
#include <wsahelp.h>
|
||||
|
||||
/* AFD/TDI Headers */
|
||||
#include <tdi.h>
|
||||
#include <afd/shared.h>
|
||||
|
||||
/* DNSLIB/API Header */
|
||||
#include <dnslib.h>
|
||||
#include <windnsp.h>
|
||||
|
||||
/* Library Headers */
|
||||
#include "msafdlib.h"
|
||||
#include "rnr20lib.h"
|
||||
#include "wsmobile.h"
|
||||
#include "mswinsock.h"
|
||||
|
||||
/* EOF */
|
828
reactos/include/reactos/winsock/msafdlib.h
Normal file
828
reactos/include/reactos/winsock/msafdlib.h
Normal file
|
@ -0,0 +1,828 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS WinSock 2 NSP
|
||||
* FILE: lib/mswsock/sock.h
|
||||
* PURPOSE: Winsock 2 SPI Utility Header
|
||||
*/
|
||||
|
||||
#define NO_BLOCKING_HOOK 0
|
||||
#define MAYBE_BLOCKING_HOOK 1
|
||||
#define ALWAYS_BLOCKING_HOOK 2
|
||||
|
||||
#define NO_TIMEOUT 0
|
||||
#define SEND_TIMEOUT 1
|
||||
#define RECV_TIMEOUT 2
|
||||
|
||||
#define MAX_TDI_ADDRESS_LENGTH 32
|
||||
|
||||
#define WSA_FLAG_MULTIPOINT_ALL (WSA_FLAG_MULTIPOINT_C_ROOT |\
|
||||
WSA_FLAG_MULTIPOINT_C_LEAF |\
|
||||
WSA_FLAG_MULTIPOINT_D_ROOT |\
|
||||
WSA_FLAG_MULTIPOINT_D_LEAF)
|
||||
|
||||
|
||||
/* Socket State */
|
||||
typedef enum _SOCKET_STATE
|
||||
{
|
||||
SocketUndefined = -1,
|
||||
SocketOpen,
|
||||
SocketBound,
|
||||
SocketBoundUdp,
|
||||
SocketConnected,
|
||||
SocketClosed
|
||||
} SOCKET_STATE, *PSOCKET_STATE;
|
||||
|
||||
/*
|
||||
* Shared Socket Information.
|
||||
* It's called shared because we send it to Kernel-Mode for safekeeping
|
||||
*/
|
||||
typedef struct _SOCK_SHARED_INFO {
|
||||
SOCKET_STATE State;
|
||||
INT AddressFamily;
|
||||
INT SocketType;
|
||||
INT Protocol;
|
||||
INT SizeOfLocalAddress;
|
||||
INT SizeOfRemoteAddress;
|
||||
struct linger LingerData;
|
||||
ULONG SendTimeout;
|
||||
ULONG RecvTimeout;
|
||||
ULONG SizeOfRecvBuffer;
|
||||
ULONG SizeOfSendBuffer;
|
||||
struct {
|
||||
BOOLEAN Listening:1;
|
||||
BOOLEAN Broadcast:1;
|
||||
BOOLEAN Debug:1;
|
||||
BOOLEAN OobInline:1;
|
||||
BOOLEAN ReuseAddresses:1;
|
||||
BOOLEAN ExclusiveAddressUse:1;
|
||||
BOOLEAN NonBlocking:1;
|
||||
BOOLEAN DontUseWildcard:1;
|
||||
BOOLEAN ReceiveShutdown:1;
|
||||
BOOLEAN SendShutdown:1;
|
||||
BOOLEAN UseDelayedAcceptance:1;
|
||||
BOOLEAN UseSAN:1;
|
||||
}; // Flags
|
||||
DWORD CreateFlags;
|
||||
DWORD CatalogEntryId;
|
||||
DWORD ServiceFlags1;
|
||||
DWORD ProviderFlags;
|
||||
GROUP GroupID;
|
||||
DWORD GroupType;
|
||||
INT GroupPriority;
|
||||
INT SocketLastError;
|
||||
HWND hWnd;
|
||||
LONG Unknown;
|
||||
DWORD SequenceNumber;
|
||||
UINT wMsg;
|
||||
LONG AsyncEvents;
|
||||
LONG AsyncDisabledEvents;
|
||||
} SOCK_SHARED_INFO, *PSOCK_SHARED_INFO;
|
||||
|
||||
/* Socket Helper Data. Holds information about the WSH Libraries */
|
||||
typedef struct _HELPER_DATA {
|
||||
LIST_ENTRY Helpers;
|
||||
LONG RefCount;
|
||||
HANDLE hInstance;
|
||||
INT MinWSAddressLength;
|
||||
INT MaxWSAddressLength;
|
||||
INT MinTDIAddressLength;
|
||||
INT MaxTDIAddressLength;
|
||||
BOOLEAN UseDelayedAcceptance;
|
||||
PWINSOCK_MAPPING Mapping;
|
||||
PWSH_OPEN_SOCKET WSHOpenSocket;
|
||||
PWSH_OPEN_SOCKET2 WSHOpenSocket2;
|
||||
PWSH_JOIN_LEAF WSHJoinLeaf;
|
||||
PWSH_NOTIFY WSHNotify;
|
||||
PWSH_GET_SOCKET_INFORMATION WSHGetSocketInformation;
|
||||
PWSH_SET_SOCKET_INFORMATION WSHSetSocketInformation;
|
||||
PWSH_GET_SOCKADDR_TYPE WSHGetSockaddrType;
|
||||
PWSH_GET_WILDCARD_SOCKADDR WSHGetWildcardSockaddr;
|
||||
PWSH_GET_BROADCAST_SOCKADDR WSHGetBroadcastSockaddr;
|
||||
PWSH_ADDRESS_TO_STRING WSHAddressToString;
|
||||
PWSH_STRING_TO_ADDRESS WSHStringToAddress;
|
||||
PWSH_IOCTL WSHIoctl;
|
||||
WCHAR TransportName[1];
|
||||
} HELPER_DATA, *PHELPER_DATA;
|
||||
|
||||
typedef struct _ASYNC_DATA
|
||||
{
|
||||
struct _SOCKET_INFORMATION *ParentSocket;
|
||||
DWORD SequenceNumber;
|
||||
IO_STATUS_BLOCK IoStatusBlock;
|
||||
AFD_POLL_INFO AsyncSelectInfo;
|
||||
} ASYNC_DATA, *PASYNC_DATA;
|
||||
|
||||
/* The actual Socket Structure represented by a handle. Internal to us */
|
||||
typedef struct _SOCKET_INFORMATION {
|
||||
union {
|
||||
WSH_HANDLE WshContext;
|
||||
struct {
|
||||
LONG RefCount;
|
||||
SOCKET Handle;
|
||||
};
|
||||
};
|
||||
SOCK_SHARED_INFO SharedData;
|
||||
GUID ProviderId;
|
||||
DWORD HelperEvents;
|
||||
PHELPER_DATA HelperData;
|
||||
PVOID HelperContext;
|
||||
PSOCKADDR LocalAddress;
|
||||
PSOCKADDR RemoteAddress;
|
||||
HANDLE TdiAddressHandle;
|
||||
HANDLE TdiConnectionHandle;
|
||||
PASYNC_DATA AsyncData;
|
||||
HANDLE EventObject;
|
||||
LONG NetworkEvents;
|
||||
CRITICAL_SECTION Lock;
|
||||
BOOL DontUseSan;
|
||||
PVOID SanData;
|
||||
} SOCKET_INFORMATION, *PSOCKET_INFORMATION;
|
||||
|
||||
/* The blob of data we send to Kernel-Mode for safekeeping */
|
||||
typedef struct _SOCKET_CONTEXT {
|
||||
SOCK_SHARED_INFO SharedData;
|
||||
ULONG SizeOfHelperData;
|
||||
ULONG Padding;
|
||||
SOCKADDR LocalAddress;
|
||||
SOCKADDR RemoteAddress;
|
||||
/* Plus Helper Data */
|
||||
} SOCKET_CONTEXT, *PSOCKET_CONTEXT;
|
||||
|
||||
typedef struct _SOCK_RW_LOCK
|
||||
{
|
||||
volatile LONG ReaderCount;
|
||||
HANDLE WriterWaitEvent;
|
||||
RTL_CRITICAL_SECTION Lock;
|
||||
} SOCK_RW_LOCK, *PSOCK_RW_LOCK;
|
||||
|
||||
typedef struct _WINSOCK_TEB_DATA
|
||||
{
|
||||
HANDLE EventHandle;
|
||||
SOCKET SocketHandle;
|
||||
PAFD_ACCEPT_DATA AcceptData;
|
||||
LONG PendingAPCs;
|
||||
BOOLEAN CancelIo;
|
||||
ULONG Unknown;
|
||||
PVOID RnrThreadData;
|
||||
} WINSOCK_TEB_DATA, *PWINSOCK_TEB_DATA;
|
||||
|
||||
typedef INT
|
||||
(WINAPI *PICF_CONNECT)(PVOID IcfData);
|
||||
|
||||
typedef struct _SOCK_ICF_DATA
|
||||
{
|
||||
HANDLE IcfHandle;
|
||||
PVOID IcfOpenDynamicFwPort;
|
||||
PICF_CONNECT IcfConnect;
|
||||
PVOID IcfDisconnect;
|
||||
HINSTANCE DllHandle;
|
||||
} SOCK_ICF_DATA, *PSOCK_ICF_DATA;
|
||||
|
||||
typedef PVOID
|
||||
(NTAPI *PRTL_HEAP_ALLOCATE)(
|
||||
IN HANDLE Heap,
|
||||
IN ULONG Flags,
|
||||
IN ULONG Size
|
||||
);
|
||||
|
||||
extern HANDLE SockPrivateHeap;
|
||||
extern PRTL_HEAP_ALLOCATE SockAllocateHeapRoutine;
|
||||
extern SOCK_RW_LOCK SocketGlobalLock;
|
||||
extern PWAH_HANDLE_TABLE SockContextTable;
|
||||
extern LPWSPUPCALLTABLE SockUpcallTable;
|
||||
extern BOOL SockProcessTerminating;
|
||||
extern LONG SockWspStartupCount;
|
||||
extern DWORD SockSendBufferWindow;
|
||||
extern DWORD SockReceiveBufferWindow;
|
||||
extern HANDLE SockAsyncQueuePort;
|
||||
extern BOOLEAN SockAsyncSelectCalled;
|
||||
extern LONG SockProcessPendingAPCCount;
|
||||
extern HINSTANCE SockModuleHandle;
|
||||
extern LONG gWSM_NSPStartupRef;
|
||||
extern LONG gWSM_NSPCallRef;
|
||||
extern LIST_ENTRY SockHelperDllListHead;
|
||||
extern CRITICAL_SECTION MSWSOCK_SocketLock;
|
||||
extern HINSTANCE NlsMsgSourcemModuleHandle;
|
||||
extern PVOID SockBufferKeyTable;
|
||||
extern ULONG SockBufferKeyTableSize;
|
||||
extern LONG SockAsyncThreadReferenceCount;
|
||||
extern BOOLEAN g_fRnrLockInit;
|
||||
extern CRITICAL_SECTION g_RnrLock;
|
||||
|
||||
BOOL
|
||||
WSPAPI
|
||||
MSWSOCK_Initialize(VOID);
|
||||
|
||||
BOOL
|
||||
WSPAPI
|
||||
MSAFD_SockThreadInitialize(VOID);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockCreateAsyncQueuePort(VOID);
|
||||
|
||||
PVOID
|
||||
WSPAPI
|
||||
SockInitializeHeap(IN HANDLE Heap,
|
||||
IN ULONG Flags,
|
||||
IN ULONG Size);
|
||||
|
||||
NTSTATUS
|
||||
WSPAPI
|
||||
SockInitializeRwLockAndSpinCount(
|
||||
IN PSOCK_RW_LOCK Lock,
|
||||
IN ULONG SpinCount
|
||||
);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockAcquireRwLockExclusive(IN PSOCK_RW_LOCK Lock);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockAcquireRwLockShared(IN PSOCK_RW_LOCK Lock);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockReleaseRwLockExclusive(IN PSOCK_RW_LOCK Lock);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockReleaseRwLockShared(IN PSOCK_RW_LOCK Lock);
|
||||
|
||||
NTSTATUS
|
||||
WSPAPI
|
||||
SockDeleteRwLock(IN PSOCK_RW_LOCK Lock);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockGetConnectData(IN PSOCKET_INFORMATION Socket,
|
||||
IN ULONG Ioctl,
|
||||
IN PVOID Buffer,
|
||||
IN ULONG BufferLength,
|
||||
OUT PULONG BufferReturned);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockIsAddressConsistentWithConstrainedGroup(IN PSOCKET_INFORMATION Socket,
|
||||
IN GROUP Group,
|
||||
IN PSOCKADDR SocketAddress,
|
||||
IN INT SocketAddressLength);
|
||||
|
||||
BOOL
|
||||
WSPAPI
|
||||
SockWaitForSingleObject(IN HANDLE Handle,
|
||||
IN SOCKET SocketHandle,
|
||||
IN DWORD BlockingFlags,
|
||||
IN DWORD TimeoutFlags);
|
||||
|
||||
BOOLEAN
|
||||
WSPAPI
|
||||
SockIsSocketConnected(IN PSOCKET_INFORMATION Socket);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockNotifyHelperDll(IN PSOCKET_INFORMATION Socket,
|
||||
IN DWORD Event);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockUpdateWindowSizes(IN PSOCKET_INFORMATION Socket,
|
||||
IN BOOLEAN Force);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockBuildTdiAddress(OUT PTRANSPORT_ADDRESS TdiAddress,
|
||||
IN PSOCKADDR Sockaddr,
|
||||
IN INT SockaddrLength);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockBuildSockaddr(OUT PSOCKADDR Sockaddr,
|
||||
OUT PINT SockaddrLength,
|
||||
IN PTRANSPORT_ADDRESS TdiAddress);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockGetTdiHandles(IN PSOCKET_INFORMATION Socket);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockIoCompletion(IN PVOID ApcContext,
|
||||
IN PIO_STATUS_BLOCK IoStatusBlock,
|
||||
DWORD Reserved);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockCancelIo(IN SOCKET Handle);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockGetInformation(IN PSOCKET_INFORMATION Socket,
|
||||
IN ULONG AfdInformationClass,
|
||||
IN PVOID ExtraData OPTIONAL,
|
||||
IN ULONG ExtraDataSize,
|
||||
IN OUT PBOOLEAN Boolean OPTIONAL,
|
||||
IN OUT PULONG Ulong OPTIONAL,
|
||||
IN OUT PLARGE_INTEGER LargeInteger OPTIONAL);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockSetInformation(IN PSOCKET_INFORMATION Socket,
|
||||
IN ULONG AfdInformationClass,
|
||||
IN PBOOLEAN Boolean OPTIONAL,
|
||||
IN PULONG Ulong OPTIONAL,
|
||||
IN PLARGE_INTEGER LargeInteger OPTIONAL);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockSetHandleContext(IN PSOCKET_INFORMATION Socket);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockDereferenceSocket(IN PSOCKET_INFORMATION Socket);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockFreeHelperDll(IN PHELPER_DATA Helper);
|
||||
|
||||
PSOCKET_INFORMATION
|
||||
WSPAPI
|
||||
SockFindAndReferenceSocket(IN SOCKET Handle,
|
||||
IN BOOLEAN Import);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockEnterApiSlow(OUT PWINSOCK_TEB_DATA *ThreadData);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockSanInitialize(VOID);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockSanGetTcpipCatalogId(VOID);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
CloseIcfConnection(IN PSOCK_ICF_DATA IcfData);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
InitializeIcfConnection(IN PSOCK_ICF_DATA IcfData);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
NewIcfConnection(IN PSOCK_ICF_DATA IcfData);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
NtStatusToSocketError(IN NTSTATUS Status);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockSocket(INT AddressFamily,
|
||||
INT SocketType,
|
||||
INT Protocol,
|
||||
LPGUID ProviderId,
|
||||
GROUP g,
|
||||
DWORD dwFlags,
|
||||
DWORD ProviderFlags,
|
||||
DWORD ServiceFlags,
|
||||
DWORD CatalogEntryId,
|
||||
PSOCKET_INFORMATION *NewSocket);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockCloseSocket(IN PSOCKET_INFORMATION Socket);
|
||||
|
||||
FORCEINLINE
|
||||
INT
|
||||
WSPAPI
|
||||
SockEnterApiFast(OUT PWINSOCK_TEB_DATA *ThreadData)
|
||||
{
|
||||
/* Make sure we aren't terminating and get our thread data */
|
||||
if (!(SockProcessTerminating) &&
|
||||
(SockWspStartupCount > 0) &&
|
||||
((*ThreadData == NtCurrentTeb()->WinSockData)))
|
||||
{
|
||||
/* Everything is good, return */
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
/* Something didn't work out, use the slow path */
|
||||
return SockEnterApiSlow(ThreadData);
|
||||
}
|
||||
|
||||
FORCEINLINE
|
||||
VOID
|
||||
WSPAPI
|
||||
SockDereferenceHelperDll(IN PHELPER_DATA Helper)
|
||||
{
|
||||
/* Dereference and see if it's the last count */
|
||||
if (!InterlockedDecrement(&Helper->RefCount))
|
||||
{
|
||||
/* Destroy the Helper DLL */
|
||||
SockFreeHelperDll(Helper);
|
||||
}
|
||||
}
|
||||
|
||||
#define MSAFD_IS_DGRAM_SOCK(s) \
|
||||
(s->SharedData.ServiceFlags1 & XP1_CONNECTIONLESS)
|
||||
|
||||
/* Global data that we want to share access with */
|
||||
extern HANDLE SockSanCleanUpCompleteEvent;
|
||||
extern BOOLEAN SockSanEnabled;
|
||||
extern WSAPROTOCOL_INFOW SockTcpProviderInfo;
|
||||
|
||||
typedef VOID
|
||||
(WSPAPI *PASYNC_COMPLETION_ROUTINE)(
|
||||
PVOID Context,
|
||||
PIO_STATUS_BLOCK IoStatusBlock
|
||||
);
|
||||
|
||||
/* Internal Helper Functions */
|
||||
INT
|
||||
WSPAPI
|
||||
SockLoadHelperDll(
|
||||
PWSTR TransportName,
|
||||
PWINSOCK_MAPPING Mapping,
|
||||
PHELPER_DATA *HelperDllData
|
||||
);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockLoadTransportMapping(
|
||||
PWSTR TransportName,
|
||||
PWINSOCK_MAPPING *Mapping
|
||||
);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockLoadTransportList(
|
||||
PWSTR *TransportList
|
||||
);
|
||||
|
||||
BOOL
|
||||
WSPAPI
|
||||
SockIsTripleInMapping(IN PWINSOCK_MAPPING Mapping,
|
||||
IN INT AddressFamily,
|
||||
OUT PBOOLEAN AfMatch,
|
||||
IN INT SocketType,
|
||||
OUT PBOOLEAN SockMatch,
|
||||
IN INT Protocol,
|
||||
OUT PBOOLEAN ProtoMatch);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockAsyncSelectHelper(IN PSOCKET_INFORMATION Socket,
|
||||
IN HWND hWnd,
|
||||
IN UINT wMsg,
|
||||
IN LONG Events);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockEventSelectHelper(IN PSOCKET_INFORMATION Socket,
|
||||
IN WSAEVENT EventObject,
|
||||
IN LONG Events);
|
||||
|
||||
BOOLEAN
|
||||
WSPAPI
|
||||
SockCheckAndReferenceAsyncThread(VOID);
|
||||
|
||||
BOOLEAN
|
||||
WSPAPI
|
||||
SockCheckAndInitAsyncSelectHelper(VOID);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockGetTdiName(PINT AddressFamily,
|
||||
PINT SocketType,
|
||||
PINT Protocol,
|
||||
LPGUID ProviderId,
|
||||
GROUP Group,
|
||||
DWORD Flags,
|
||||
PUNICODE_STRING TransportName,
|
||||
PVOID *HelperDllContext,
|
||||
PHELPER_DATA *HelperDllData,
|
||||
PDWORD Events);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockAsyncThread(
|
||||
PVOID ThreadParam
|
||||
);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockProcessAsyncSelect(PSOCKET_INFORMATION Socket,
|
||||
PASYNC_DATA AsyncData);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockHandleAsyncIndication(IN PASYNC_COMPLETION_ROUTINE Callback,
|
||||
IN PVOID Context,
|
||||
IN PIO_STATUS_BLOCK IoStatusBlock);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
SockReenableAsyncSelectEvent(IN PSOCKET_INFORMATION Socket,
|
||||
IN ULONG Event);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockProcessQueuedAsyncSelect(PVOID Context,
|
||||
PIO_STATUS_BLOCK IoStatusBlock);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
SockAsyncSelectCompletion(
|
||||
PVOID Context,
|
||||
PIO_STATUS_BLOCK IoStatusBlock
|
||||
);
|
||||
|
||||
/* Public functions, but not exported! */
|
||||
SOCKET
|
||||
WSPAPI
|
||||
WSPAccept(
|
||||
IN SOCKET s,
|
||||
OUT LPSOCKADDR addr,
|
||||
IN OUT LPINT addrlen,
|
||||
IN LPCONDITIONPROC lpfnCondition,
|
||||
IN DWORD dwCallbackData,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPAddressToString(
|
||||
IN LPSOCKADDR lpsaAddress,
|
||||
IN DWORD dwAddressLength,
|
||||
IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
||||
OUT LPWSTR lpszAddressString,
|
||||
IN OUT LPDWORD lpdwAddressStringLength,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPAsyncSelect(
|
||||
IN SOCKET s,
|
||||
IN HWND hWnd,
|
||||
IN UINT wMsg,
|
||||
IN LONG lEvent,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI WSPBind(
|
||||
IN SOCKET s,
|
||||
IN CONST SOCKADDR *name,
|
||||
IN INT namelen,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPCancelBlockingCall(
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPCleanup(
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPCloseSocket(
|
||||
IN SOCKET s,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPConnect(
|
||||
IN SOCKET s,
|
||||
IN CONST SOCKADDR *name,
|
||||
IN INT namelen,
|
||||
IN LPWSABUF lpCallerData,
|
||||
OUT LPWSABUF lpCalleeData,
|
||||
IN LPQOS lpSQOS,
|
||||
IN LPQOS lpGQOS,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPDuplicateSocket(
|
||||
IN SOCKET s,
|
||||
IN DWORD dwProcessId,
|
||||
OUT LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPEnumNetworkEvents(
|
||||
IN SOCKET s,
|
||||
IN WSAEVENT hEventObject,
|
||||
OUT LPWSANETWORKEVENTS lpNetworkEvents,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPEventSelect(
|
||||
IN SOCKET s,
|
||||
IN WSAEVENT hEventObject,
|
||||
IN LONG lNetworkEvents,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
BOOL
|
||||
WSPAPI
|
||||
WSPGetOverlappedResult(
|
||||
IN SOCKET s,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
OUT LPDWORD lpcbTransfer,
|
||||
IN BOOL fWait,
|
||||
OUT LPDWORD lpdwFlags,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPGetPeerName(
|
||||
IN SOCKET s,
|
||||
OUT LPSOCKADDR name,
|
||||
IN OUT LPINT namelen,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
BOOL
|
||||
WSPAPI
|
||||
WSPGetQOSByName(
|
||||
IN SOCKET s,
|
||||
IN OUT LPWSABUF lpQOSName,
|
||||
OUT LPQOS lpQOS,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPGetSockName(
|
||||
IN SOCKET s,
|
||||
OUT LPSOCKADDR name,
|
||||
IN OUT LPINT namelen,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPGetSockOpt(
|
||||
IN SOCKET s,
|
||||
IN INT level,
|
||||
IN INT optname,
|
||||
OUT CHAR FAR* optval,
|
||||
IN OUT LPINT optlen,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPIoctl(
|
||||
IN SOCKET s,
|
||||
IN DWORD dwIoControlCode,
|
||||
IN LPVOID lpvInBuffer,
|
||||
IN DWORD cbInBuffer,
|
||||
OUT LPVOID lpvOutBuffer,
|
||||
IN DWORD cbOutBuffer,
|
||||
OUT LPDWORD lpcbBytesReturned,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
||||
IN LPWSATHREADID lpThreadId,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
SOCKET
|
||||
WSPAPI
|
||||
WSPJoinLeaf(
|
||||
IN SOCKET s,
|
||||
IN CONST SOCKADDR *name,
|
||||
IN INT namelen,
|
||||
IN LPWSABUF lpCallerData,
|
||||
OUT LPWSABUF lpCalleeData,
|
||||
IN LPQOS lpSQOS,
|
||||
IN LPQOS lpGQOS,
|
||||
IN DWORD dwFlags,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPListen(
|
||||
IN SOCKET s,
|
||||
IN INT backlog,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPRecv(
|
||||
IN SOCKET s,
|
||||
IN OUT LPWSABUF lpBuffers,
|
||||
IN DWORD dwBufferCount,
|
||||
OUT LPDWORD lpNumberOfBytesRecvd,
|
||||
IN OUT LPDWORD lpFlags,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
||||
IN LPWSATHREADID lpThreadId,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPRecvDisconnect(
|
||||
IN SOCKET s,
|
||||
OUT LPWSABUF lpInboundDisconnectData,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPRecvFrom(
|
||||
IN SOCKET s,
|
||||
IN OUT LPWSABUF lpBuffers,
|
||||
IN DWORD dwBufferCount,
|
||||
OUT LPDWORD lpNumberOfBytesRecvd,
|
||||
IN OUT LPDWORD lpFlags,
|
||||
OUT LPSOCKADDR lpFrom,
|
||||
IN OUT LPINT lpFromlen,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
||||
IN LPWSATHREADID lpThreadId,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPSelect(
|
||||
IN INT nfds,
|
||||
IN OUT LPFD_SET readfds,
|
||||
IN OUT LPFD_SET writefds,
|
||||
IN OUT LPFD_SET exceptfds,
|
||||
IN CONST LPTIMEVAL timeout,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPSend(
|
||||
IN SOCKET s,
|
||||
IN LPWSABUF lpBuffers,
|
||||
IN DWORD dwBufferCount,
|
||||
OUT LPDWORD lpNumberOfBytesSent,
|
||||
IN DWORD dwFlags,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
||||
IN LPWSATHREADID lpThreadId,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPSendDisconnect(
|
||||
IN SOCKET s,
|
||||
IN LPWSABUF lpOutboundDisconnectData,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPSendTo(
|
||||
IN SOCKET s,
|
||||
IN LPWSABUF lpBuffers,
|
||||
IN DWORD dwBufferCount,
|
||||
OUT LPDWORD lpNumberOfBytesSent,
|
||||
IN DWORD dwFlags,
|
||||
IN CONST SOCKADDR *lpTo,
|
||||
IN INT iTolen,
|
||||
IN LPWSAOVERLAPPED lpOverlapped,
|
||||
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,
|
||||
IN LPWSATHREADID lpThreadId,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPSetSockOpt(
|
||||
IN SOCKET s,
|
||||
IN INT level,
|
||||
IN INT optname,
|
||||
IN CONST CHAR FAR* optval,
|
||||
IN INT optlen,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPShutdown(
|
||||
IN SOCKET s,
|
||||
IN INT how,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
SOCKET
|
||||
WSPAPI
|
||||
WSPSocket(
|
||||
IN INT af,
|
||||
IN INT type,
|
||||
IN INT protocol,
|
||||
IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
||||
IN GROUP g,
|
||||
IN DWORD dwFlags,
|
||||
OUT LPINT lpErrno);
|
||||
|
||||
INT
|
||||
WSPAPI
|
||||
WSPStringToAddress(
|
||||
IN LPWSTR AddressString,
|
||||
IN INT AddressFamily,
|
||||
IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
|
||||
OUT LPSOCKADDR lpAddress,
|
||||
IN OUT LPINT lpAddressLength,
|
||||
OUT LPINT lpErrno);
|
19
reactos/include/reactos/winsock/mswinsock.h
Normal file
19
reactos/include/reactos/winsock/mswinsock.h
Normal file
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Ancillary Function Driver DLL
|
||||
* FILE: include/mswsock.h
|
||||
* PURPOSE: Ancillary Function Driver DLL header
|
||||
*/
|
||||
#ifndef __MSWINSOCK_H
|
||||
#define __MSWINSOCK_H
|
||||
|
||||
typedef DWORD (* LPFN_NSPAPI)(VOID);
|
||||
typedef struct _NS_ROUTINE {
|
||||
DWORD dwFunctionCount;
|
||||
LPFN_NSPAPI *alpfnFunctions;
|
||||
DWORD dwNameSpace;
|
||||
DWORD dwPriority;
|
||||
} NS_ROUTINE, *PNS_ROUTINE, * FAR LPNS_ROUTINE;
|
||||
|
||||
#endif
|
||||
|
265
reactos/include/reactos/winsock/rnr20lib.h
Normal file
265
reactos/include/reactos/winsock/rnr20lib.h
Normal file
|
@ -0,0 +1,265 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS WinSock 2 NSP
|
||||
* FILE: include/nsp_dns.h
|
||||
* PURPOSE: WinSock 2 NSP Header
|
||||
*/
|
||||
|
||||
#ifndef __NSP_H
|
||||
#define __NSP_H
|
||||
|
||||
/* DEFINES *******************************************************************/
|
||||
|
||||
/* Lookup Flags */
|
||||
#define DONE 0x01
|
||||
#define REVERSE 0x02
|
||||
#define LOCAL 0x04
|
||||
#define IANA 0x10
|
||||
#define LOOPBACK 0x20
|
||||
|
||||
/* Protocol Flags */
|
||||
#define UDP 0x01
|
||||
#define TCP 0x02
|
||||
#define ATM 0x04
|
||||
|
||||
/* GUID Masks */
|
||||
#define NBT_MASK 0x01
|
||||
#define DNS_MASK 0x02
|
||||
|
||||
/* TYPES *********************************************************************/
|
||||
|
||||
typedef struct _RNR_CONTEXT
|
||||
{
|
||||
LIST_ENTRY ListEntry;
|
||||
HANDLE Handle;
|
||||
PDNS_BLOB CachedSaBlob;
|
||||
DWORD Signature;
|
||||
DWORD RefCount;
|
||||
DWORD Instance;
|
||||
DWORD LookupFlags;
|
||||
DWORD RnrId;
|
||||
DWORD dwNameSpace;
|
||||
DWORD RrType;
|
||||
DWORD dwControlFlags;
|
||||
DWORD UdpPort;
|
||||
DWORD TcpPort;
|
||||
DWORD ProtocolFlags;
|
||||
BLOB CachedBlob;
|
||||
GUID lpServiceClassId;
|
||||
GUID lpProviderId;
|
||||
WCHAR ServiceName[1];
|
||||
} RNR_CONTEXT, *PRNR_CONTEXT;
|
||||
|
||||
typedef struct _RNR_TEB_DATA
|
||||
{
|
||||
ULONG Foo;
|
||||
} RNR_TEB_DATA, *PRNR_TEB_DATA;
|
||||
|
||||
/* PROTOTYPES ****************************************************************/
|
||||
|
||||
/*
|
||||
* proc.c
|
||||
*/
|
||||
BOOLEAN
|
||||
WINAPI
|
||||
RNRPROV_SockEnterApi(VOID);
|
||||
|
||||
/*
|
||||
* oldutil.c
|
||||
*/
|
||||
DWORD
|
||||
WINAPI
|
||||
GetServerAndProtocolsFromString(
|
||||
PWCHAR ServiceString,
|
||||
LPGUID ServiceType,
|
||||
PSERVENT *ReverseServent
|
||||
);
|
||||
|
||||
DWORD
|
||||
WINAPI
|
||||
FetchPortFromClassInfo(
|
||||
IN DWORD Type,
|
||||
IN LPGUID Guid,
|
||||
IN LPWSASERVICECLASSINFOW ServiceClassInfo
|
||||
);
|
||||
|
||||
PSERVENT
|
||||
WSPAPI
|
||||
CopyServEntry(
|
||||
IN PSERVENT Servent,
|
||||
IN OUT PULONG_PTR BufferPos,
|
||||
IN OUT PULONG BufferFreeSize,
|
||||
IN OUT PULONG BlobSize,
|
||||
IN BOOLEAN Relative
|
||||
);
|
||||
|
||||
WORD
|
||||
WINAPI
|
||||
GetDnsQueryTypeFromGuid(
|
||||
IN LPGUID Guid
|
||||
);
|
||||
|
||||
/*
|
||||
* context.c
|
||||
*/
|
||||
VOID
|
||||
WSPAPI
|
||||
RnrCtx_ListCleanup(VOID);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
RnrCtx_Release(PRNR_CONTEXT RnrContext);
|
||||
|
||||
PRNR_CONTEXT
|
||||
WSPAPI
|
||||
RnrCtx_Get(
|
||||
HANDLE LookupHandle,
|
||||
DWORD dwControlFlags,
|
||||
PLONG Instance
|
||||
);
|
||||
|
||||
PRNR_CONTEXT
|
||||
WSPAPI
|
||||
RnrCtx_Create(
|
||||
IN HANDLE LookupHandle,
|
||||
IN LPWSTR ServiceName
|
||||
);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
RnrCtx_DecInstance(IN PRNR_CONTEXT RnrContext);
|
||||
|
||||
/*
|
||||
* util.c
|
||||
*/
|
||||
PVOID
|
||||
WSPAPI
|
||||
Temp_AllocZero(IN DWORD Size);
|
||||
|
||||
/*
|
||||
* lookup.c
|
||||
*/
|
||||
PDNS_BLOB
|
||||
WSPAPI
|
||||
Rnr_DoHostnameLookup(IN PRNR_CONTEXT Context);
|
||||
|
||||
PDNS_BLOB
|
||||
WSPAPI
|
||||
Rnr_GetHostByAddr(IN PRNR_CONTEXT Context);
|
||||
|
||||
PDNS_BLOB
|
||||
WSPAPI
|
||||
Rnr_DoDnsLookup(IN PRNR_CONTEXT Context);
|
||||
|
||||
BOOLEAN
|
||||
WINAPI
|
||||
Rnr_CheckIfUseNbt(PRNR_CONTEXT RnrContext);
|
||||
|
||||
PDNS_BLOB
|
||||
WINAPI
|
||||
Rnr_NbtResolveAddr(IN IN_ADDR Address);
|
||||
|
||||
PDNS_BLOB
|
||||
WINAPI
|
||||
Rnr_NbtResolveName(IN LPWSTR Name);
|
||||
|
||||
/*
|
||||
* init.c
|
||||
*/
|
||||
VOID
|
||||
WSPAPI
|
||||
Rnr_ProcessInit(VOID);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
Rnr_ProcessCleanup(VOID);
|
||||
|
||||
BOOLEAN
|
||||
WSPAPI
|
||||
Rnr_ThreadInit(VOID);
|
||||
|
||||
VOID
|
||||
WSPAPI
|
||||
Rnr_ThreadCleanup(VOID);
|
||||
|
||||
/*
|
||||
* nsp.c
|
||||
*/
|
||||
VOID
|
||||
WSPAPI
|
||||
Nsp_GlobalCleanup(VOID);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPCleanup(IN LPGUID lpProviderId);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPSetService(
|
||||
IN LPGUID lpProviderId,
|
||||
IN LPWSASERVICECLASSINFOW lpServiceClassInfo,
|
||||
IN LPWSAQUERYSETW lpqsRegInfo,
|
||||
IN WSAESETSERVICEOP essOperation,
|
||||
IN DWORD dwControlFlags
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPInstallServiceClass(
|
||||
IN LPGUID lpProviderId,
|
||||
IN LPWSASERVICECLASSINFOW lpServiceClassInfo
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPRemoveServiceClass(
|
||||
IN LPGUID lpProviderId,
|
||||
IN LPGUID lpServiceCallId
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPGetServiceClassInfo(
|
||||
IN LPGUID lpProviderId,
|
||||
IN OUT LPDWORD lpdwBufSize,
|
||||
IN OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPLookupServiceBegin(
|
||||
LPGUID lpProviderId,
|
||||
LPWSAQUERYSETW lpqsRestrictions,
|
||||
LPWSASERVICECLASSINFOW lpServiceClassInfo,
|
||||
DWORD dwControlFlags,
|
||||
LPHANDLE lphLookup
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPLookupServiceNext(
|
||||
IN HANDLE hLookup,
|
||||
IN DWORD dwControlFlags,
|
||||
IN OUT LPDWORD lpdwBufferLength,
|
||||
OUT LPWSAQUERYSETW lpqsResults
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPLookupServiceEnd(IN HANDLE hLookup);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
Dns_NSPStartup(
|
||||
IN LPGUID lpProviderId,
|
||||
IN OUT LPNSP_ROUTINE lpsnpRoutines
|
||||
);
|
||||
|
||||
/* Unchecked yet */
|
||||
#define ATM_ADDRESS_LENGTH 20
|
||||
#define WS2_INTERNAL_MAX_ALIAS 16
|
||||
#define MAX_HOSTNAME_LEN 256
|
||||
#define MAXADDRS 16
|
||||
|
||||
#endif
|
||||
|
84
reactos/include/reactos/winsock/wsmobile.h
Normal file
84
reactos/include/reactos/winsock/wsmobile.h
Normal file
|
@ -0,0 +1,84 @@
|
|||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS WinSock 2 NSP
|
||||
* FILE: include/nsp_dns.h
|
||||
* PURPOSE: WinSock 2 NSP Header
|
||||
*/
|
||||
|
||||
#ifndef __WSM_H
|
||||
#define __WSM_H
|
||||
|
||||
/* nsp.cpp */
|
||||
extern GUID gNLANamespaceGuid;
|
||||
|
||||
/*
|
||||
* nsp.cpp
|
||||
*/
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPCleanup(IN LPGUID lpProviderId);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPSetService(
|
||||
IN LPGUID lpProviderId,
|
||||
IN LPWSASERVICECLASSINFOW lpServiceClassInfo,
|
||||
IN LPWSAQUERYSETW lpqsRegInfo,
|
||||
IN WSAESETSERVICEOP essOperation,
|
||||
IN DWORD dwControlFlags
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPInstallServiceClass(
|
||||
IN LPGUID lpProviderId,
|
||||
IN LPWSASERVICECLASSINFOW lpServiceClassInfo
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPRemoveServiceClass(
|
||||
IN LPGUID lpProviderId,
|
||||
IN LPGUID lpServiceCallId
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPGetServiceClassInfo(
|
||||
IN LPGUID lpProviderId,
|
||||
IN OUT LPDWORD lpdwBufSize,
|
||||
IN OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPLookupServiceBegin(
|
||||
LPGUID lpProviderId,
|
||||
LPWSAQUERYSETW lpqsRestrictions,
|
||||
LPWSASERVICECLASSINFOW lpServiceClassInfo,
|
||||
DWORD dwControlFlags,
|
||||
LPHANDLE lphLookup
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPLookupServiceNext(
|
||||
IN HANDLE hLookup,
|
||||
IN DWORD dwControlFlags,
|
||||
IN OUT LPDWORD lpdwBufferLength,
|
||||
OUT LPWSAQUERYSETW lpqsResults
|
||||
);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPLookupServiceEnd(IN HANDLE hLookup);
|
||||
|
||||
INT
|
||||
WINAPI
|
||||
WSM_NSPStartup(
|
||||
IN LPGUID lpProviderId,
|
||||
IN OUT LPNSP_ROUTINE lpsnpRoutines
|
||||
);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in a new issue