Suppose our client application does as below:
WSADATA wsa_data;
int ret;
SOCKET sock;
ret = WSAStartup (MAKEWORD (2, 2), &wsa_data);
if (ret ==0) {
sock = socket (AF_INET6, SOCK_DGRAM, IPROTO_UDP);
}
When will it happen that sock == INVALID_SOCKET and WSAGetLastError() would return WSAEPROVIDERFAILEDINIT?
Microsoft's documentation for the socket() function says it can return WSAEPROVIDERFAILEDINIT when:
The service provider failed to initialize. This error is returned if a layered service provider (LSP) or namespace provider was improperly installed or the provider fails to operate correctly.
Can a TCP/IP transport service provider, that is not a custom service provider, fail to initialize during a socket() call? If yes, why? Under what circumstances? And how can it be remedied?