Winsock2 WSA API
WinSock2のWSA関数一覧です。
int
WSAStartup(
IN WORD wVersionRequested,
OUT LPWSADATA lpWSAData
);
int
WSACleanup(
void
);
void
WSASetLastError(
IN int iError
);
int
WSAGetLastError(
void
);
BOOL
WSAIsBlocking(
void
);
int
WSAUnhookBlockingHook(
void
);
FARPROC
WSASetBlockingHook(
IN FARPROC lpBlockFunc
);
int
WSACancelBlockingCall(
void
);
HANDLE
WSAAsyncGetServByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
IN const char FAR * proto,
OUT char FAR * buf,
IN int buflen
);
HANDLE
WSAAsyncGetServByPort(
IN HWND hWnd,
IN u_int wMsg,
IN int port,
IN const char FAR * proto,
OUT char FAR * buf,
IN int buflen
);
HANDLE
WSAAsyncGetProtoByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
OUT char FAR * buf,
IN int buflen
);
HANDLE
WSAAsyncGetProtoByNumber(
IN HWND hWnd,
IN u_int wMsg,
IN int number,
OUT char FAR * buf,
IN int buflen
);
HANDLE
WSAAsyncGetHostByName(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * name,
OUT char FAR * buf,
IN int buflen
);
HANDLE
WSAAsyncGetHostByAddr(
IN HWND hWnd,
IN u_int wMsg,
IN const char FAR * addr,
IN int len,
IN int type,
OUT char FAR * buf,
IN int buflen
);
int
WSACancelAsyncRequest(
IN HANDLE hAsyncTaskHandle
);
int
WSAAsyncSelect(
IN SOCKET s,
IN HWND hWnd,
IN u_int wMsg,
IN long lEvent
);
/* WinSock 2 API で追加されたもの */
SOCKET
WSAAccept(
IN SOCKET s,
OUT struct sockaddr FAR * addr,
IN OUT LPINT addrlen,
IN LPCONDITIONPROC lpfnCondition,
IN DWORD_PTR dwCallbackData
);
BOOL
WSACloseEvent(
IN WSAEVENT hEvent
);
int
WSAConnect(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen,
IN LPWSABUF lpCallerData,
OUT LPWSABUF lpCalleeData,
IN LPQOS lpSQOS,
IN LPQOS lpGQOS
);
WSAEVENT
WSACreateEvent(
void
);
====
int
WSADuplicateSocketA(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOA lpProtocolInfo
);
int
WSADuplicateSocketW(
IN SOCKET s,
IN DWORD dwProcessId,
OUT LPWSAPROTOCOL_INFOW lpProtocolInfo
);
#ifdef UNICODE
#define WSADuplicateSocket WSADuplicateSocketW
#else
#define WSADuplicateSocket WSADuplicateSocketA
#endif /* !UNICODE */
====
int
WSAEnumNetworkEvents(
IN SOCKET s,
IN WSAEVENT hEventObject,
OUT LPWSANETWORKEVENTS lpNetworkEvents
);
====
int
WSAEnumProtocolsA(
IN LPINT lpiProtocols,
OUT LPWSAPROTOCOL_INFOA lpProtocolBuffer,
IN OUT LPDWORD lpdwBufferLength
);
int
WSAEnumProtocolsW(
IN LPINT lpiProtocols,
OUT LPWSAPROTOCOL_INFOW lpProtocolBuffer,
IN OUT LPDWORD lpdwBufferLength
);
#ifdef UNICODE
#define WSAEnumProtocols WSAEnumProtocolsW
#else
#define WSAEnumProtocols WSAEnumProtocolsA
#endif /* !UNICODE */
====
int
WSAEventSelect(
IN SOCKET s,
IN WSAEVENT hEventObject,
IN long lNetworkEvents
);
BOOL
WSAGetOverlappedResult(
IN SOCKET s,
IN LPWSAOVERLAPPED lpOverlapped,
OUT LPDWORD lpcbTransfer,
IN BOOL fWait,
OUT LPDWORD lpdwFlags
);
BOOL
WSAGetQOSByName(
IN SOCKET s,
IN LPWSABUF lpQOSName,
OUT LPQOS lpQOS
);
int
WSAHtonl(
IN SOCKET s,
IN u_long hostlong,
OUT u_long FAR * lpnetlong
);
int
WSAHtons(
IN SOCKET s,
IN u_short hostshort,
OUT u_short FAR * lpnetshort
);
int
WSAIoctl(
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
);
SOCKET
WSAJoinLeaf(
IN SOCKET s,
IN const struct sockaddr FAR * name,
IN int namelen,
IN LPWSABUF lpCallerData,
OUT LPWSABUF lpCalleeData,
IN LPQOS lpSQOS,
IN LPQOS lpGQOS,
IN DWORD dwFlags
);
int
WSANtohl(
IN SOCKET s,
IN u_long netlong,
OUT u_long FAR * lphostlong
);
int
WSANtohs(
IN SOCKET s,
IN u_short netshort,
OUT u_short FAR * lphostshort
);
int
WSARecv(
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
);
int
WSARecvDisconnect(
IN SOCKET s,
OUT LPWSABUF lpInboundDisconnectData
);
int
WSARecvFrom(
IN SOCKET s,
IN OUT LPWSABUF lpBuffers,
IN DWORD dwBufferCount,
OUT LPDWORD lpNumberOfBytesRecvd,
IN OUT LPDWORD lpFlags,
OUT struct sockaddr FAR * lpFrom,
IN OUT LPINT lpFromlen,
IN LPWSAOVERLAPPED lpOverlapped,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
BOOL
WSAResetEvent(
IN WSAEVENT hEvent
);
int
WSASend(
IN SOCKET s,
IN LPWSABUF lpBuffers,
IN DWORD dwBufferCount,
OUT LPDWORD lpNumberOfBytesSent,
IN DWORD dwFlags,
IN LPWSAOVERLAPPED lpOverlapped,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
int
WSASendDisconnect(
IN SOCKET s,
IN LPWSABUF lpOutboundDisconnectData
);
int
WSASendTo(
IN SOCKET s,
IN LPWSABUF lpBuffers,
IN DWORD dwBufferCount,
OUT LPDWORD lpNumberOfBytesSent,
IN DWORD dwFlags,
IN const struct sockaddr FAR * lpTo,
IN int iTolen,
IN LPWSAOVERLAPPED lpOverlapped,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
BOOL
WSASetEvent(
IN WSAEVENT hEvent
);
====
SOCKET
WSASocketA(
IN int af,
IN int type,
IN int protocol,
IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
IN GROUP g,
IN DWORD dwFlags
);
SOCKET
WSASocketW(
IN int af,
IN int type,
IN int protocol,
IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
IN GROUP g,
IN DWORD dwFlags
);
#ifdef UNICODE
#define WSASocket WSASocketW
#else
#define WSASocket WSASocketA
#endif /* !UNICODE */
====
DWORD
WSAWaitForMultipleEvents(
IN DWORD cEvents,
IN const WSAEVENT FAR * lphEvents,
IN BOOL fWaitAll,
IN DWORD dwTimeout,
IN BOOL fAlertable
);
====
INT
WSAAddressToStringA(
IN LPSOCKADDR lpsaAddress,
IN DWORD dwAddressLength,
IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
IN OUT LPSTR lpszAddressString,
IN OUT LPDWORD lpdwAddressStringLength
);
INT
WSAAddressToStringW(
IN LPSOCKADDR lpsaAddress,
IN DWORD dwAddressLength,
IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
IN OUT LPWSTR lpszAddressString,
IN OUT LPDWORD lpdwAddressStringLength
);
#ifdef UNICODE
#define WSAAddressToString WSAAddressToStringW
#else
#define WSAAddressToString WSAAddressToStringA
#endif /* !UNICODE */
====
INT
WSAStringToAddressA(
IN LPSTR AddressString,
IN INT AddressFamily,
IN LPWSAPROTOCOL_INFOA lpProtocolInfo,
OUT LPSOCKADDR lpAddress,
IN OUT LPINT lpAddressLength
);
INT
WSAStringToAddressW(
IN LPWSTR AddressString,
IN INT AddressFamily,
IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
OUT LPSOCKADDR lpAddress,
IN OUT LPINT lpAddressLength
);
#ifdef UNICODE
#define WSAStringToAddress WSAStringToAddressW
#else
#define WSAStringToAddress WSAStringToAddressA
#endif /* !UNICODE */
====
INT
WSALookupServiceBeginA(
IN LPWSAQUERYSETA lpqsRestrictions,
IN DWORD dwControlFlags,
OUT LPHANDLE lphLookup
);
INT
WSALookupServiceBeginW(
IN LPWSAQUERYSETW lpqsRestrictions,
IN DWORD dwControlFlags,
OUT LPHANDLE lphLookup
);
#ifdef UNICODE
#define WSALookupServiceBegin WSALookupServiceBeginW
#else
#define WSALookupServiceBegin WSALookupServiceBeginA
#endif /* !UNICODE */
====
INT
WSALookupServiceNextA(
IN HANDLE hLookup,
IN DWORD dwControlFlags,
IN OUT LPDWORD lpdwBufferLength,
OUT LPWSAQUERYSETA lpqsResults
);
INT
WSALookupServiceNextW(
IN HANDLE hLookup,
IN DWORD dwControlFlags,
IN OUT LPDWORD lpdwBufferLength,
OUT LPWSAQUERYSETW lpqsResults
);
#ifdef UNICODE
#define WSALookupServiceNext WSALookupServiceNextW
#else
#define WSALookupServiceNext WSALookupServiceNextA
#endif /* !UNICODE */
====
INT
WSANSPIoctl(
IN HANDLE hLookup,
IN DWORD dwControlCode,
IN LPVOID lpvInBuffer,
IN DWORD cbInBuffer,
OUT LPVOID lpvOutBuffer,
IN DWORD cbOutBuffer,
OUT LPDWORD lpcbBytesReturned,
IN LPWSACOMPLETION lpCompletion
);
INT
WSALookupServiceEnd(
IN HANDLE hLookup
);
====
INT
WSAInstallServiceClassA(
IN LPWSASERVICECLASSINFOA lpServiceClassInfo
);
INT
WSAInstallServiceClassW(
IN LPWSASERVICECLASSINFOW lpServiceClassInfo
);
#ifdef UNICODE
#define WSAInstallServiceClass WSAInstallServiceClassW
#else
#define WSAInstallServiceClass WSAInstallServiceClassA
#endif /* !UNICODE */
====
INT
WSARemoveServiceClass(
IN LPGUID lpServiceClassId
);
====
INT
WSAGetServiceClassInfoA(
IN LPGUID lpProviderId,
IN LPGUID lpServiceClassId,
IN OUT LPDWORD lpdwBufSize,
OUT LPWSASERVICECLASSINFOA lpServiceClassInfo
);
INT
WSAGetServiceClassInfoW(
IN LPGUID lpProviderId,
IN LPGUID lpServiceClassId,
IN OUT LPDWORD lpdwBufSize,
OUT LPWSASERVICECLASSINFOW lpServiceClassInfo
);
#ifdef UNICODE
#define WSAGetServiceClassInfo WSAGetServiceClassInfoW
#else
#define WSAGetServiceClassInfo WSAGetServiceClassInfoA
#endif /* !UNICODE */
====
INT
WSAEnumNameSpaceProvidersA(
IN OUT LPDWORD lpdwBufferLength,
OUT LPWSANAMESPACE_INFOA lpnspBuffer
);
INT
WSAEnumNameSpaceProvidersW(
IN OUT LPDWORD lpdwBufferLength,
OUT LPWSANAMESPACE_INFOW lpnspBuffer
);
#ifdef UNICODE
#define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersW
#else
#define WSAEnumNameSpaceProviders WSAEnumNameSpaceProvidersA
#endif /* !UNICODE */
====
INT
WSAGetServiceClassNameByClassIdA(
IN LPGUID lpServiceClassId,
OUT LPSTR lpszServiceClassName,
IN OUT LPDWORD lpdwBufferLength
);
INT
WSAGetServiceClassNameByClassIdW(
IN LPGUID lpServiceClassId,
OUT LPWSTR lpszServiceClassName,
IN OUT LPDWORD lpdwBufferLength
);
#ifdef UNICODE
#define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdW
#else
#define WSAGetServiceClassNameByClassId WSAGetServiceClassNameByClassIdA
#endif /* !UNICODE */
====
INT
WSASetServiceA(
IN LPWSAQUERYSETA lpqsRegInfo,
IN WSAESETSERVICEOP essoperation,
IN DWORD dwControlFlags
);
INT
WSASetServiceW(
IN LPWSAQUERYSETW lpqsRegInfo,
IN WSAESETSERVICEOP essoperation,
IN DWORD dwControlFlags
);
#ifdef UNICODE
#define WSASetService WSASetServiceW
#else
#define WSASetService WSASetServiceA
#endif /* !UNICODE */
====
INT
WSAProviderConfigChange(
IN OUT LPHANDLE lpNotificationHandle,
IN LPWSAOVERLAPPED lpOverlapped,
IN LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);