2.2.2.6.2.1 VDS_IPADDRESS

The VDS_IPADDRESS structure defines an IP address and port.<41>

 typedef struct _VDS_IPADDRESS {
   VDS_IPADDRESS_TYPE type;
   unsigned long ipv4Address;
   unsigned char ipv6Address[16];
   unsigned long ulIpv6FlowInfo;
   unsigned long ulIpv6ScopeId;
   WCHAR wszTextAddress[256 + 1];
   unsigned long ulPort;
 } VDS_IPADDRESS;

type: The type of address as enumerated by VDS_IPADDRESS_TYPE.

ipv4Address: If the type member is VDS_IPT_IPV4, this member contains the binary IPv4 address in network byte order. The field 3 (last octet) byte value is contained in bits 0 through 7. The byte value for field 2 is contained in bits 8 through 15. The byte value for field 1 is contained in bits 16 through 23. The byte value for field 0 is contained in bits 24 through 31. Otherwise, this value is ignored.

ipv6Address: If the type member is VDS_IPT_IPV6, this member contains the binary IPv6 address in network byte order. Otherwise, this value is ignored.

ulIpv6FlowInfo: If the type member is VDS_IPT_IPV6, this member contains the flow information as defined in IPv6. Otherwise, this value is ignored.

ulIpv6ScopeId: If the type member is VDS_IPT_IPV6, this member contains the scope ID as defined in IPv6. Otherwise, this value is ignored.

wszTextAddress: If the type member is VDS_IPT_TEXT, this member contains the null-terminated Unicode text address, which is either a DNS address, an IPv4 dotted address, or an IPv6 hexadecimal address. Otherwise, this value is ignored.

ulPort: If the type member is VDS_IPT_IPV4, VDS_IPT_IPV6, or VDS_IPT_TEXT, this member contains the TCP port number. Otherwise, this value is ignored.