getprotobyname

The Windows Sockets getprotobyname function retrieves the protocol information corresponding to a protocol name.

struct PROTOENT FAR * getprotobyname (
  const char FAR * name  
);
 

Parameters

name
[in] A pointer to a null-terminated protocol name.

Remarks

The getprotobyname function returns a pointer to the PROTOENT structure containing the name(s) and protocol number that correspond to the protocol specified in the name parameter. All strings are null-terminated. The PROTOENT structure is allocated by the Windows Sockets library. An application must never attempt to modify this structure or to free any of its components. Furthermore, like HOSTENT, only one copy of this structure is allocated per thread, so the application should copy any information that it needs before issuing any other Windows Sockets function calls.

Return Values

If no error occurs, getprotobyname returns a pointer to the PROTOENT. Otherwise, it returns a NULL pointer and a specific error number can be retrieved by calling WSAGetLastError.

Error Codes

WSANOTINITIALISED A successful WSAStartup must occur before using this function.
WSAENETDOWN The network subsystem has failed.
WSAHOST_NOT_FOUND Authoritative Answer Protocol not found.
WSATRY_AGAIN Non-Authoritative Protocol not found, or server failure.
WSANO_RECOVERY Nonrecoverable errors, the protocols database is not accessible.
WSANO_DATA Valid name, no data record of requested type.
WSAEINPROGRESS A blocking Windows Sockets 1.1 call is in progress, or the service provider is still processing a callback function.
WSAEFAULT The name parameter is not a valid part of the user address space.
WSAEINTR A blocking Windows Socket 1.1 call was canceled through WSACancelBlockingCall.

QuickInfo

  Windows NT: Yes
  Windows: Yes
  Windows CE: Unsupported.
  Header: Declared in winsock2.h.
  Import Library: Link with ws2_32.lib.

See Also

getprotobynumber, WSAAsyncGetProtoByName