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

Windows 在哪里下载ws2_32.dll版本2.2以运行函数WSPRegisterMemory?,windows,dll,winsock,Windows,Dll,Winsock,在哪里下载ws2_32.dll版本2.2以运行函数WSPRegisterMemory?我有winxp sp3并安装了最新的平台SDK和Windows驱动程序工具包,但所有ws2_32.dll都有2.0版,我有 “错误LNK2019:未解析的外部符号_WSPRegisterMemory@20“在VS中,当我编译项目时。 但是,从系统中检查winsock版本的示例显示结果字符串“发现winsock 2.2 dll正常”我做错了什么?所有WSP*()函数都是winsock SPI的一部分,而不是WSA

在哪里下载ws2_32.dll版本2.2以运行函数WSPRegisterMemory?我有winxp sp3并安装了最新的平台SDK和Windows驱动程序工具包,但所有ws2_32.dll都有2.0版,我有 “错误LNK2019:未解析的外部符号_WSPRegisterMemory@20“在VS中,当我编译项目时。 但是,从系统中检查winsock版本的示例显示结果字符串“发现winsock 2.2 dll正常”我做错了什么?

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

链接到常规Winsock DLL的程序只能调用API-应用程序编程接口-函数,其中包括
WSA*()
函数和BSD兼容函数,如
recv()

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

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

链接到常规Winsock DLL的程序只能调用API-应用程序编程接口-函数,其中包括
WSA*()
函数和BSD兼容函数,如
recv()


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

谢谢您的快速回答!我写的LSP dll改变了所有的接收流量,我有一个问题,重新分配内存缓冲区,其中包含数据。此缓冲区使用WSPRegisterMemory进行分配,因此我需要使用此函数来分配所需的内存大小。也许你知道其他的方法来达到这个目的?有什么建议吗?那是另一个问题。请分开邮寄。谢谢您的快速回复!我写的LSP dll改变了所有的接收流量,我有一个问题,重新分配内存缓冲区,其中包含数据。此缓冲区使用WSPRegisterMemory进行分配,因此我需要使用此函数来分配所需的内存大小。也许你知道其他的方法来达到这个目的?有什么建议吗?那是另一个问题。请分开邮寄。