Question regarding SIO_GET_EXTENSION_FUNCTION_POINTER

Nicholas LaRoche nlaroche at vt.edu
Mon Sep 7 10:08:22 CDT 2009


Mike Kaplinskiy wrote:
> On Mon, Sep 7, 2009 at 2:45 AM, Nicholas LaRoche<nlaroche at vt.edu> wrote:
>> I ran into a bug last week regarding the lack of
>> SIO_GET_EXTENSION_FUNCTION_POINTER support in WSAIoctl.
>>
>> Are there any outstanding issues preventing it's implementation?
>>
>> Perhaps if anyone has worked in this area, are there any things I should
>> look out for when trying to implement it? At first glance it looks like
>> returning an arbitrary pointer may prove tricky since wine likes to relocate
>> DLLs to unpredictable addresses at runtime. (i.e. kernel32.dll is not
>> predictably mapped to a single address as with Windows XP; turning off ASR
>> for the current shell has no effect)
>>
>> -Nick
>>
>>
>>
> 
> There is nothing particularly hard about implementing it.
> SIO_GET_EXTENSION_FUNCTION_POINTER is microsoft's special "winsock
> extensions"; it is a way to call functions like AcceptEx,
> GetAcceptExSockaddrs, ConnectEx, DisconnectEx, and TransmitFile. Each
> of these functions has its own guid which you pass to wsaioctl to get
> a pointer to it (look at ws2_32 acceptex tests). It doesn't matter
> what the memory maps to, it's simply that they are not implemented.
> 
> For AcceptEx & GetAcceptExSockaddrs, there is a patch in the mailing
> list that implemented them, but Alexandre rejected the patch.
> 
> Mike.
> 

Those patches are exactly what I was looking for. Thanks!

What revision did you test on?

-Nick




More information about the wine-devel mailing list