if (lpProtocolInfo && lpProtocolInfo->dwServiceFlags3 != 0 && lpProtocolInfo->dwServiceFlags4 != 0)
{
/* Duplpicating socket from different process */
- if ((HANDLE)lpProtocolInfo->dwServiceFlags3 == INVALID_HANDLE_VALUE)
+ if (UlongToPtr(lpProtocolInfo->dwServiceFlags3) == INVALID_HANDLE_VALUE)
{
Status = WSAEINVAL;
goto error;
}
- if ((HANDLE)lpProtocolInfo->dwServiceFlags4 == INVALID_HANDLE_VALUE)
+ if (UlongToPtr(lpProtocolInfo->dwServiceFlags4) == INVALID_HANDLE_VALUE)
{
Status = WSAEINVAL;
goto error;
}
- SharedData = MapViewOfFile((HANDLE)lpProtocolInfo->dwServiceFlags3,
+ SharedData = MapViewOfFile(UlongToPtr(lpProtocolInfo->dwServiceFlags3),
FILE_MAP_ALL_ACCESS,
0,
0,
if (SharedData)
{
Socket->SharedData = SharedData;
- Socket->SharedDataHandle = (HANDLE)lpProtocolInfo->dwServiceFlags3;
- Sock = (HANDLE)lpProtocolInfo->dwServiceFlags4;
+ Socket->SharedDataHandle = UlongToHandle(lpProtocolInfo->dwServiceFlags3);
+ Sock = UlongToHandle(lpProtocolInfo->dwServiceFlags4);
Socket->Handle = (SOCKET)lpProtocolInfo->dwServiceFlags4;
}
else
if( SharedData )
{
UnmapViewOfFile(SharedData);
- NtClose((HANDLE)lpProtocolInfo->dwServiceFlags3);
+ NtClose(UlongToHandle(lpProtocolInfo->dwServiceFlags3));
}
else
{
lpProtocolInfo->iAddressFamily = Socket->SharedData->AddressFamily;
lpProtocolInfo->iProtocol = Socket->SharedData->Protocol;
lpProtocolInfo->iSocketType = Socket->SharedData->SocketType;
- lpProtocolInfo->dwServiceFlags3 = (DWORD)hDuplicatedSharedData;
- lpProtocolInfo->dwServiceFlags4 = (DWORD)hDuplicatedHandle;
+ lpProtocolInfo->dwServiceFlags3 = HandleToUlong(hDuplicatedSharedData);
+ lpProtocolInfo->dwServiceFlags4 = HandleToUlong(hDuplicatedHandle);
if( lpErrno )
*lpErrno = NO_ERROR;
/* Set up Address in TDI Format */
BindData->Address.TAAddressCount = 1;
- BindData->Address.Address[0].AddressLength = SocketAddressLength - sizeof(SocketAddress->sa_family);
+ BindData->Address.Address[0].AddressLength = (USHORT)(SocketAddressLength - sizeof(SocketAddress->sa_family));
BindData->Address.Address[0].AddressType = SocketAddress->sa_family;
RtlCopyMemory (BindData->Address.Address[0].Address,
SocketAddress->sa_data,
return (DWORD)((Time.ll - u1970.ll) / 10000000ULL);
}
+_Must_inspect_result_
SOCKET
WSPAPI
-WSPAccept(SOCKET Handle,
- struct sockaddr *SocketAddress,
- int *SocketAddressLength,
- LPCONDITIONPROC lpfnCondition,
- DWORD dwCallbackData,
- LPINT lpErrno)
+WSPAccept(
+ _In_ SOCKET Handle,
+ _Out_writes_bytes_to_opt_(*addrlen, *addrlen) struct sockaddr FAR *SocketAddress,
+ _Inout_opt_ LPINT SocketAddressLength,
+ _In_opt_ LPCONDITIONPROC lpfnCondition,
+ _In_opt_ DWORD_PTR dwCallbackData,
+ _Out_ LPINT lpErrno)
{
IO_STATUS_BLOCK IOSB;
PAFD_RECEIVED_ACCEPT_DATA ListenReceiveData;
* RETURNS:
* Status of operation
*/
-INT
+_Must_inspect_result_
+int
WSPAPI
-WSPStartup(IN WORD wVersionRequested,
- OUT LPWSPDATA lpWSPData,
- IN LPWSAPROTOCOL_INFOW lpProtocolInfo,
- IN WSPUPCALLTABLE UpcallTable,
- OUT LPWSPPROC_TABLE lpProcTable)
-
+WSPStartup(
+ _In_ WORD wVersionRequested,
+ _In_ LPWSPDATA lpWSPData,
+ _In_ LPWSAPROTOCOL_INFOW lpProtocolInfo,
+ _In_ WSPUPCALLTABLE UpcallTable,
+ _Out_ LPWSPPROC_TABLE lpProcTable)
{
NTSTATUS Status;
IN OUT LPDWORD lpdwAddressStringLength,
OUT LPINT lpErrno)
{
- DWORD size;
+ SIZE_T size;
WCHAR buffer[54]; /* 32 digits + 7':' + '[' + '%" + 5 digits + ']:' + 5 digits + '\0' */
WCHAR *p;