mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
Implemented TransmitFile (non-functional, depends on unimplemented features), added some missing definitions to mswsock.h
svn path=/trunk/; revision=13126
This commit is contained in:
parent
1454ac7d81
commit
5a3c9154cd
4 changed files with 64 additions and 20 deletions
|
@ -20,9 +20,9 @@ TARGET_CFLAGS = \
|
|||
|
||||
TARGET_LFLAGS = -nostartfiles -nostdlib
|
||||
|
||||
TARGET_SDKLIBS = kernel32.a
|
||||
TARGET_SDKLIBS = kernel32.a ws2_32.a
|
||||
|
||||
TARGET_OBJECTS = stubs.o
|
||||
TARGET_OBJECTS = stubs.o extensions.o
|
||||
|
||||
TARGET_CLEAN = $(DEP_FILES)
|
||||
|
||||
|
|
54
reactos/lib/mswsock/extensions.c
Normal file
54
reactos/lib/mswsock/extensions.c
Normal file
|
@ -0,0 +1,54 @@
|
|||
/* $Id: stubs.c 12852 2005-01-06 13:58:04Z mf $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS WinSock DLL
|
||||
* FILE: stubs.c
|
||||
* PURPOSE: WSAIoctl wrappers for Microsoft extensions to Winsock
|
||||
* PROGRAMMERS: KJK::Hyperion <hackbunny@reactos.com>
|
||||
* REVISIONS:
|
||||
*/
|
||||
|
||||
#include <windows.h>
|
||||
#include <winsock2.h>
|
||||
#include <mswsock.h>
|
||||
|
||||
/*
|
||||
* @implemented
|
||||
*/
|
||||
BOOL
|
||||
STDCALL
|
||||
TransmitFile(SOCKET Socket,
|
||||
HANDLE File,
|
||||
DWORD NumberOfBytesToWrite,
|
||||
DWORD NumberOfBytesPerSend,
|
||||
LPOVERLAPPED Overlapped,
|
||||
LPTRANSMIT_FILE_BUFFERS TransmitBuffers,
|
||||
DWORD Flags)
|
||||
{
|
||||
static GUID TransmitFileGUID = WSAID_TRANSMITFILE;
|
||||
LPFN_TRANSMITFILE pfnTransmitFile;
|
||||
DWORD cbBytesReturned;
|
||||
|
||||
if (WSAIoctl(Socket,
|
||||
SIO_GET_EXTENSION_FUNCTION_POINTER,
|
||||
&TransmitFileGUID,
|
||||
sizeof(TransmitFileGUID),
|
||||
&pfnTransmitFile,
|
||||
sizeof(pfnTransmitFile),
|
||||
&cbBytesReturned,
|
||||
NULL,
|
||||
NULL) == SOCKET_ERROR)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return pfnTransmitFile(Socket,
|
||||
File,
|
||||
NumberOfBytesToWrite,
|
||||
NumberOfBytesPerSend,
|
||||
Overlapped,
|
||||
TransmitBuffers,
|
||||
Flags);
|
||||
}
|
||||
|
||||
/* EOF */
|
|
@ -252,24 +252,6 @@ SetServiceW(DWORD NameSpace,
|
|||
}
|
||||
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
BOOL
|
||||
STDCALL
|
||||
TransmitFile(SOCKET Socket,
|
||||
HANDLE File,
|
||||
DWORD NumberOfBytesToWrite,
|
||||
DWORD NumberOfBytesPerSend,
|
||||
LPOVERLAPPED Overlapped,
|
||||
LPTRANSMIT_FILE_BUFFERS TransmitBuffers,
|
||||
DWORD Flags)
|
||||
{
|
||||
OutputDebugStringW(L"w32sock TransmitFile stub called\n");
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
* @unimplemented
|
||||
*/
|
||||
|
|
|
@ -54,6 +54,14 @@ BOOL PASCAL TransmitFile(SOCKET,HANDLE,DWORD,DWORD,LPOVERLAPPED,LPTRANSMIT_FILE_
|
|||
BOOL PASCAL AcceptEx(SOCKET,SOCKET,PVOID,DWORD,DWORD,DWORD,LPDWORD,LPOVERLAPPED);
|
||||
VOID PASCAL GetAcceptExSockaddrs(PVOID,DWORD,DWORD,DWORD,struct sockaddr**, LPINT, struct sockaddr**, LPINT);
|
||||
|
||||
#define WSAID_ACCEPTEX { 0xB5367DF0, 0xCBAC, 0x11CF, { 0x95, 0xCA, 0x00, 0x80, 0x5F, 0x48, 0xA1, 0x92 } }
|
||||
#define WSAID_TRANSMITFILE { 0xB5367DF1, 0xCBAC, 0x11CF, { 0x95, 0xCA, 0x00, 0x80, 0x5F, 0x48, 0xA1, 0x92 } }
|
||||
#define WSAID_GETACCEPTEXSOCKADDRS { 0xB5367DF2, 0xCBAC, 0x11CF, { 0x95, 0xCA, 0x00, 0x80, 0x5F, 0x48, 0xA1, 0x92 } }
|
||||
|
||||
typedef BOOL (PASCAL *LPFN_TRANSMITFILE)(SOCKET,HANDLE,DWORD,DWORD,LPOVERLAPPED,LPTRANSMIT_FILE_BUFFERS,DWORD);
|
||||
typedef BOOL (PASCAL *LPFN_ACCEPTEX)(SOCKET,SOCKET,PVOID,DWORD,DWORD,DWORD,LPDWORD,LPOVERLAPPED);
|
||||
typedef VOID (PASCAL *LPFN_GETACCEPTEXSOCKADDRS)(PVOID,DWORD,DWORD,DWORD,struct sockaddr**, LPINT, struct sockaddr**, LPINT);
|
||||
|
||||
#ifdef _WINSOCK2_H /* These require the winsock2 interface. */
|
||||
|
||||
#define TP_ELEMENT_FILE 1
|
||||
|
|
Loading…
Reference in a new issue