使用我自己的程序或其他程序,如果进程是使用 CreateProcessWithLogonW 或 CreateProcessAsUserW 创建的,则在调用时我无法运行 Winsock。当我创建套接字时它返回此错误:
WSAEPROVIDERFAILEDINIT 10106
服务提供者初始化失败。
The requested service provider could not be loaded or initialized.
如果出现以下任一情况,则返回此错误
服务提供商的 DLL 无法
已加载(LoadLibrary 失败)或
提供商的 WSPStartup 或 NSPStartup
功能失败
.
然而,WSAStartup
似乎没有错误。只需使用 WSASocket 创建套接字就会返回此值。
UPDATE:
Errors:
加载用户配置文件:错误代码 2。
找不到指定的文件
AdjustTokenPrivs:错误代码 5. 访问
被拒绝
我遇到了完全相同的问题,这是由于环境造成的(!):显然 WinSock 需要一个有效的SystemRoot
要设置的环境变量。就我而言,我打电话给CreateProcess()
通过仅指定一个特定于我的应用程序的环境变量(不继承调用者的环境),它失败了。
检查您是否通过传递创建了流程NULL
to lpEnvironment
继承调用者的环境,或指定一个有效的SystemRoot
环境变量。
完全没有记录,据我所知,但它对我有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)