2.2.1.2.101 DHCPV4_FAILOVER_CLIENT_INFO
The DHCPV4_FAILOVER_CLIENT_INFO structure defines information about a DHCPv4 client leased out by an IPv4 subnet that is a part of failover relationship. This structure augments the DHCP_CLIENT_INFO_VQ structure (section 2.2.1.2.19) by including information related to DHCP failover and policy-related information. This structure is used by the R_DhcpV4FailoverGetClientInfo method specified in section 3.2.4.99.
-
typedef struct _DHCPV4_FAILOVER_CLIENT_INFO { DHCP_IP_ADDRESS ClientIpAddress; DHCP_IP_MASK SubnetMask; DHCP_CLIENT_UID ClientHardwareAddress; LPWSTR ClientName; LPWSTR ClientComment; DATE_TIME ClientLeaseExpires; DHCP_HOST_INFO OwnerHost; BYTE bClientType; BYTE AddressState; QuarantineStatus Status; DATE_TIME ProbationEnds; BOOL QuarantineCapable; DWORD SentPotExpTime; DWORD AckPotExpTime; DWORD RecvPotExpTime; DWORD StartTime; DWORD CltLastTransTime; DWORD LastBndUpdTime; DWORD bndMsgStatus; LPWSTR PolicyName; BYTE flags; } DHCPV4_FAILOVER_CLIENT_INFO, *LPDHCPV4_FAILOVER_CLIENT_INFO;
ClientIpAddress: This member is a structure of type DHCP_IP_ADDRESS (section 2.2.1.2.1), which is a DWORD containing the DHCPv4 client's IPv4 address.
SubnetMask: This member is a structure of type DHCP_IP_MASK (section 2.2.1.2.2), and is a DWORD containing the DHCPv4 client's IPv4 subnet mask address.
ClientHardwareAddress: This member is a structure of type DHCP_CLIENT_UID (section 2.2.1.2.5) that represents a DHCPv4 client-identifier (section 2.2.1.2.5.1) or a DHCPv4 client unique ID (section 2.2.1.2.5.2). Methods that accept DHCP_CLIENT_INFO_VQ (section 2.2.1.2.19) as a parameter specify which representations are acceptable.
ClientName: This member is a pointer to a null-terminated Unicode string that represents the DHCPv4 client's internet host name. There is no restriction on the length of this Unicode string.
ClientComment: This member is a pointer to a null-terminated Unicode string that represents the description given to the DHCPv4 client. There is no restriction on the length of this Unicode string.
ClientLeaseExpires: This member is a structure of type DATE_TIME (section 2.2.1.2.11) and contains the lease expiry time for the DHCPv4 client. This is UTC time represented in FILETIME format.
OwnerHost: This member is a structure of type DHCP_HOST_INFO (section 2.2.1.2.7) that contains information about the DHCPv4 Server machine that has provided a lease to the DHCPv4 client.
bClientType: This member is of type BYTE and identifies the type of the DHCPv4 client. Possible values are specified in the following table.
-
Value
Meaning
CLIENT_TYPE_UNSPECIFIED
0x00
A DHCPv4 client other than ones defined in this table.
CLIENT_TYPE_DHCP
0x01
The DHCPv4 client supports the DHCP protocol.
CLIENT_TYPE_BOOTP
0x02
The DHCPv4 client supports the BOOTP protocol ([RFC2132]).
CLIENT_TYPE_BOTH
0x03
The DHCPv4 client identifies both the DHCPv4 and the BOOTP protocols.
CLIENT_TYPE_RESERVATION_FLAG
0x04
There is an IPv4 reservation created for the DHCPv4 client.
CLIENT_TYPE_NONE
0x64
Backward compatibility for manual addressing.
AddressState: This member is of type BYTE, as shown by the following set of bits. This member represents the state of the IPv4 address given to the DHCPv4 client.
-
BIT 7
BIT 6
BIT 5
BIT 4
BIT 3
BIT 2
BIT 1
BIT 0
-
The following tables show various bit representation values and their meanings.
-
BIT 0 and BIT 1 signify the state of the leased IPv4 address, as shown in the following table.
-
Value
Meaning
ADDRESS_STATE_OFFERED
0x0
The DHCPv4 client is offered this IPv4 address.
ADDRESS_STATE_ACTIVE
0x1
The IPv4 address is active and has an active DHCPv4 client lease record.
ADDRESS_STATE_DECLINED
0x2
The IPv4 address request is declined by the DHCPv4 client; hence, it is a bad IPv4 address.
ADDRESS_STATE_DOOM
0x3
The IPv4 address is in DOOMED state and is due to be deleted.
-
BIT 2 and BIT 3 signify information related to Name Protection (section 3.3.3) for the leased IPv4 address, as shown in the following table.
-
Value
Meaning
ADDRESS_BIT_NO_DHCID
0x0
The address is leased to the DHCPv4 client without DHCID (sections 3 and 3.5 of [RFC4701]).
ADDRESS_BIT_DHCID_NO_CLIENTIDOPTION
0x1
The address is leased to the DHCPv4 client with DHCID.
ADDRESS_BIT_DHCID_WITH_CLIENTIDOPTION
0x2
The address is leased to the DHCPv4 client with DHCID.
ADDRESS_BIT_DHCID_WITH_DUID
0x3
The address is leased to the DHCPv4 client with DHCID.
-
BIT 4, BIT 5, BIT 6, and BIT 7 specify information related to DNS, as shown in the following table.
-
Value
Meaning
ADDRESS_BIT_CLEANUP
0x1
The DNS update for the DHCPv4 client lease record needs to be deleted from the DNS server when the lease is deleted.
ADDRESS_BIT_BOTH_REC
0x2
The DNS update needs to be sent for both A and PTR resource records ([RFC1034] section 3.6).
ADDRESS_BIT_UNREGISTERED
0x4
The DNS update is not completed for the lease record.
ADDRESS_BIT_DELETED
0x8
The address lease is expired, but the DNS updates for the lease record have not been deleted from the DNS server.
Status: This member is an enumeration of type QuarantineStatus (section 2.2.1.1.11) that contains the health status of the DHCPv4 client, as validated by the NAP server. The possible enumeration values that are validated by the NAP server are NOQUARANTINE, RESTRICTEDACCESS, DROPPACKET, and PROBATION.
ProbationEnds: This member is a structure of type DATE_TIME (section 2.2.1.2.11) that contains probation end time, assuming the DHCPv4 client is on probation. For this time period, the DHCPv4 client has full access to the network.
QuarantineCapable: This member is of type BOOL and takes on one of the meanings associated with the values in the following table.
-
Value
Meaning
TRUE
1
The DHCPv4 client machine is quarantine-enabled.
FALSE
0
The DHCPv4 client machine is not quarantine-enabled.
SentPotExpTime: This member is of type DWORD and contains the time sent to the partner server as potential-expiration-time. The time is specified in seconds elapsed since midnight, January 1, 1970, Coordinated Universal Time (UTC).
AckPotExpTime: This member is of type DWORD and contains the time that the partner server has acknowledged as potential-expiration-time. The time is specified in seconds elapsed since midnight, January 1, 1970, UTC.
RecvPotExpTime: This member is of type DWORD and contains the time that the server has received as a potential-expiration-time from its partner server. The time is specified in seconds elapsed since midnight, January 1, 1970, UTC.
StartTime: This member is of type DWORD and contains the time at which the client lease first went into the current state. The time is specified in seconds elapsed since midnight, January 1, 1970, UTC.
CltLastTransTime: This member is of type DWORD and contains the time for client-last-transaction-time. The time is specified in seconds elapsed since midnight, January 1, 1970, UTC.
LastBndUpdTime: This member is of type DWORD and contains the time when the partner server has updated the DHCPv4 client lease. The time is specified in seconds elapsed since midnight, January 1, 1970, UTC.
bndMsgStatus: This member is of type DWORD and MUST be ignored.
PolicyName: This member is a pointer to a null-terminated Unicode string that identifies the policy that determined the ClientIpAddress in the lease. The length of the Policy Name member is restricted to 64 characters.
flags: This member is of type BYTE and MUST be ignored.