On Mon, Sep 7, 2009 at 2:45 AM, Nicholas LaRoche<[email protected]> 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.
