在哪里下载 ws2_32.dll 2.2 版的运行函数 WSPRegisterMemory?

Posted

技术标签:

【中文标题】在哪里下载 ws2_32.dll 2.2 版的运行函数 WSPRegisterMemory?【英文标题】:Where download ws2_32.dll version 2.2 for run function WSPRegisterMemory? 【发布时间】:2010-11-08 17:16:47 【问题描述】:

哪里下载ws2_32.dll 2.2版的运行函数WSPRegisterMemory?我有 winxp sp3 并安装了最新的平台 SDK 和 Windows 驱动程序工具包,但所有 ws2_32.dll 都有 2.0 版,我有 当我编译项目时,VS 中的“错误 LNK2019:无法解析的外部符号 _WSPRegisterMemory@20”。 但是从http://msdn.microsoft.com/en-us/library/ms742213(VS.85).aspx检查系统中的winsock版本的例子显示结果这个字符串“发现Winsock 2.2 dll没问题”我做错了什么?

【问题讨论】:

【参考方案1】:

所有WSP*() 函数都是Winsock SPI 的一部分,而WSA*() 是Winsock API 的一部分。 SPI — 服务提供者接口 — 用于驱动程序端代码,通常是实现 Winsock 分层服务提供者 (LSP) 的驱动程序。如果您没有编写驱动程序并将驱动程序链接到 Windows DDK 库,则不能调用 WSP*() 函数。

链接到常规 Winsock DLL 的程序只能调用 API — 应用程序编程接口 — 函数,其中包括 WSA*() 函数以及像 recv() 这样的 BSD 兼容函数。

此外,您永远不会将 Winsock DLL 从一个系统复制到另一个系统。您的操作系统附带的一个是您应该使用的唯一一个。 DLL 只是为操作系统的网络堆栈提供一个接口,因此用另一个来源的 DLL 替换该 DLL 可能会破坏该系统上的网络,因为另一个 DLL 将尝试与另一个操作系统的低级网络堆栈接口通信。

【讨论】:

感谢您的快速回答!我编写了更改所有接收流量的 LSP dll,并且我遇到了包含数据的重新分配内存缓冲区的问题。这个缓冲区使用 WSPRegisterMemory 分配,所以我需要使用这个函数来分配需要的内存大小。也许您知道其他一些方法来实现这一目标?有什么建议吗? 这是一个不同的问题。请单独发布。

以上是关于在哪里下载 ws2_32.dll 2.2 版的运行函数 WSPRegisterMemory?的主要内容,如果未能解决你的问题,请参考以下文章

使用托管 C++ 库时出现 WS2_32.dll_unloaded 异常

c++ hooking ws2_32.dll recv

使用基本的socket函数

xp系统出现wps.exe-DLL初始化失败,啥文件都打不开,杀毒软件也打不开用不了

电脑出现0xc00000ba程序失败怎么弄

开机时老出现初始化(0xc00000ba)失败