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_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)
|
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
|
* @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);
|
BOOL PASCAL AcceptEx(SOCKET,SOCKET,PVOID,DWORD,DWORD,DWORD,LPDWORD,LPOVERLAPPED);
|
||||||
VOID PASCAL GetAcceptExSockaddrs(PVOID,DWORD,DWORD,DWORD,struct sockaddr**, LPINT, struct sockaddr**, LPINT);
|
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. */
|
#ifdef _WINSOCK2_H /* These require the winsock2 interface. */
|
||||||
|
|
||||||
#define TP_ELEMENT_FILE 1
|
#define TP_ELEMENT_FILE 1
|
||||||
|
|
Loading…
Reference in a new issue