1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 SockaddrLength SubnetLength Flags Padding (20 bytes) ... ... SockaddrLength (4 bytes): The length of valid data in the socket address structure present above this field. SubnetLength (4 bytes): Senders MUST set this to 0x00000000 and receivers MUST ignore this value. Flags (4 bytes): Clients MUST set to 0x00000000. Senders will use this field to indicate the results of IP validation for this IP address, where it has a format as follows (in host byte order): 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 T Zero RTT validationStatus T (1 bit): If set, DNS over is available from the remote DNS server but DNS over TCP is not available. Zero (7 bits): Reserved. Senders MUST set these bits to zero and receivers MUST ignore them. RTT (12 bits): Round trip time to the remote DNS server for a UDP query, measured in units of 10 milliseconds. validationStatus (12 bits): The result of the DNS UDP validation attempt. This field MUST be set to one of the DNS_IP_VALIDATE_RETURN_FLAGS (section ). Padding (20 bytes): This can be any value and MUST be ignored. DNS_ADDR_ARRAY The DNS_ADDR_ARRAY structure is used to represent an array of DNS_ADDR (section ) structures. The DNS Server Management Protocol uses this structure to exchange lists of mixed IPv4 and IPv6 addresses between client and server. typedef struct _DnsAddrArray { DWORD MaxCount; DWORD AddrCount; DWORD Tag; WORD Family; WORD WordReserved; DWORD Flags; DWORD MatchFlag; DWORD Reserved1;
0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 SockaddrLength SubnetLength Flags Padding (20 bytes) ... ... SockaddrLength (4 bytes): The length of valid data in the socket address structure present above this field. SubnetLength (4 bytes): Senders MUST set this to 0x00000000 and receivers MUST ignore this value. Flags (4 bytes): Clients MUST set to 0x00000000. Senders will use this field to indicate the results of IP validation for this IP address, where it has a format as follows (in host byte order): 0 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 6 7 8 9 2 0 1 2 3 4 5 6 7 8 9 3 0 1 T Zero RTT validationStatus T (1 bit): If set, DNS over is available from the remote DNS server but DNS over TCP is not available. Zero (7 bits): Reserved. Senders MUST set these bits to zero and receivers MUST ignore them. RTT (12 bits): Round trip time to the remote DNS server for a UDP query, measured in units of 10 milliseconds. validationStatus (12 bits): The result of the DNS UDP validation attempt. This field MUST be set to one of the DNS_IP_VALIDATE_RETURN_FLAGS (section ). Padding (20 bytes): This can be any value and MUST be ignored. DNS_ADDR_ARRAY The DNS_ADDR_ARRAY structure is used to represent an array of DNS_ADDR (section ) structures. The DNS Server Management Protocol uses this structure to exchange lists of mixed IPv4 and IPv6 addresses between client and server. typedef struct _DnsAddrArray { DWORD MaxCount; DWORD AddrCount; DWORD Tag; WORD Family; WORD WordReserved; DWORD Flags; DWORD MatchFlag; DWORD Reserved1;
%5BMS-DNSP%5D-170601.docx