【发布时间】:2016-05-20 20:32:22
【问题描述】:
here 描述的 WSARecvMsg 函数要求您检索指向它的函数指针,如以下引用所示:
注意 WSARecvMsg 函数的函数指针必须在运行时通过指定 SIO_GET_EXTENSION_FUNCTION_POINTER 操作码调用 WSAIoctl 函数来获取。
有什么具体原因吗? 在使用这个函数时,我打算在启动时检索函数指针,然后从那时起一直使用它。这种方法有什么问题吗?函数的任何变化都意味着我们需要重新获取这个指针吗?我们怎么知道是否是这种情况?
【问题讨论】:
-
似乎是 MSFT 的一个糟糕的设计理念。我看不出它有什么好处。
-
@SergeyA 我唯一的想法可能是硬件的变化或者某些东西可以改变这个功能???但是文档没有引用这样的内容,所以我不确定。
-
我唯一非常疯狂的猜测是,该功能是在库公共协议最终确定时添加的,没有人愿意冒险添加额外的功能。相反,他们决定利用已经存在的东西,而这个可怕的解决方案仍然存在。我很确定这个函数返回的值总是一样的。
-
@SergeyA 上帝,如果他们记录了这一点,那就太好了......
-
您可能想问他们?有一些场地,我想? (抱歉,我不是 MSFT 开发人员)