Share via


WSHGetSockaddrType function

[ This function is obsolete for Windows Server 2003, Windows Vista, and later, and is no longer supported. ]

The WSHGetSockaddrType function parses a socket address and returns information about it to Windows Sockets.

Syntax

INT WSHGetSockaddrType(
  _In_  PSOCKADDR      Sockaddr,
  _In_  DWORD          SockaddrLength,
  _Out_ PSOCKADDR_INFO SockaddrInfo
);

Parameters

  • Sockaddr [in]
    Pointer to the SOCKADDR structure to be evaluated.

  • SockaddrLength [in]
    Specifies the length, in bytes, of the structure at Sockaddr.

  • SockaddrInfo [out]
    Pointer to a buffer in which the helper DLL returns information about the socket address, formatted as a SOCKADDR_INFO structure.

Return value

WSHGetSockaddrType returns zero if the given socket address is valid for the address family supported by this helper DLL. Otherwise, it returns a Windows Sockets error code.

Remarks

Windows Sockets calls WSHGetSockaddrType when it needs information about a SOCKADDR. The helper DLL evaluates both the machine address and endpoint portions of the SOCKADDR. The machine-address portion specifies a particular machine, for example, the IP address in an internet address. The endpoint specifies a particular service on a machine, corresponding to the port number in an internet address.

The SOCKADDR_INFO structure is defined as follows:

typedef struct _SOCKADDR_INFO {
    SOCKADDR_ADDRESS_INFO AddressInfo;
    SOCKADDR_ENDPOINT_INFO EndpointInfo;
} SOCKADDR_INFO, *PSOCKADDR_INFO;

SOCKADDR_ADDRESS_INFO is an enumerated type, with the following possible values:

  • SockaddrAddressInfoNormal
    The address portion of the SOCKADDR has no unusual characteristics.

  • SockaddrAddressInfoWildcard
    The address portion of the SOCKADDR is a "wildcard," meaning that it does not specify a particular address. For example, this corresponds to INADDR_ANY (0.0.0.0) for IP addresses, which an application passes to bind when it has no particular requirements for the IP address used for a socket.

    Note   Beginning with Windows Vista, the wildcard IP address 0.0.0.0 is not available.

    Also beginning with Windows Vista, if the IPAutoconfigurationEnabled registry key is set to a value of 0, automatic IP address assignment is disabled, and no IP address is assigned. In this case, the ipconfig command line tool will not display an IP address. If the key is set to a nonzero value, an IP address is automatically assigned. This key can be located at the following paths in the registry:

    HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\IPAutoconfigurationEnabled

    HKEY_LOCAL_MACHINE\SYSTEM\Current Control Set\Services\Tcpip\Parameters\Interfaces\GUID\IPAutoconfigurationEnabled

     

  • SockaddrAddressInfoBroadcast
    The address portion of the SOCKADDR refers to the address family's broadcast address. For example, in IP addresses, this is INADDR_BROADCAST (255.255.255.255).

  • SockaddrAddressInfoLoopback
    The address portion of the SOCKADDR refers to the address family's loopback address. For example, in internet addresses, this is INADDR_LOOPBACK (127.0.0.1).

SOCKADDR_ENDPOINT_INFO also is an enumerated type, with the following possible values:

  • SockaddrEndpointInfoNormal
    The endpoint portion of the SOCKADDR has no unusual characteristics.

  • SockaddrEndpointInfoWildcard
    The endpoint portion of the SOCKADDR is a wildcard, meaning that it could refer to any endpoint. An application, typically a client, can pass a wildcard endpoint to bind when it has no particular requirements for the endpoint assigned. For example, in IP addresses, a port set to zero is a wildcard endpoint.

  • SockaddrEndpointInfoReserved
    The endpoint of the SOCKADDR is reserved, meaning that special privilege is required to bind to it. For example, in internet addresses, a port with a value less than IPPORT_RESERVED (1024) is a reserved endpoint.

Requirements

Target platform

Desktop

Header

Wsahelp.h (include Wsahelp.h)

Library

Wshisotp.lib

 

 

Send comments about this topic to Microsoft