7 Appendix B: Product Behavior

The information in this specification is applicable to the following Microsoft products or supplemental software. References to product versions include updates to those products.

The terms "earlier" and "later", when used with a product version, refer to either all preceding versions or all subsequent versions, respectively. The term "through" refers to the inclusive range of versions. Applicable Microsoft products are listed chronologically in this section.

Windows Client

  • Windows NT 3.51 operating system

  • Windows NT 4.0 operating system

  • Windows 2000 Professional operating system

  • Windows XP operating system

  • Windows Vista operating system

  • Windows 7 operating system

  • Windows 8 operating system

  • Windows 8.1 operating system

  • Windows 10 operating system

  • Windows 11 operating system

Windows Server

  • Windows NT 3.51

  • Windows NT 4.0

  • Windows 2000 Server operating system

  • Windows Server 2003 operating system

  • Windows Server 2008 operating system

  • Windows Server 2008 R2 operating system

  • Windows Server 2012 operating system

  • Windows Server 2012 R2 operating system

  • Windows Server 2016 operating system

  • Windows Server operating system

  • Windows Server 2019 operating system

  • Windows Server 2022 operating system

  • Windows Server 2025 operating system

Exceptions, if any, are noted in this section. If an update version, service pack or Knowledge Base (KB) number appears with a product name, the behavior changed in that update. The new behavior also applies to subsequent updates unless otherwise specified. If a product edition appears with the product version, behavior is different in that product edition.

Unless otherwise specified, any statement of optional behavior in this specification that is prescribed using the terms "SHOULD" or "SHOULD NOT" implies product behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term "MAY" implies that the product does not follow the prescription.

<1> Section 1.4: The NAP functionality was removed in Windows 10, Remote Server Administration Tools for Windows 10 operating system (RSAT), and in Windows Server 2016.

<2> Section 1.4: The NAP functionality of [MS-DHCPN] was removed in Windows Server 2016.

<3> Section 2.1: In Windows Server 2008 and Windows Server 2008 R2 DHCPM does not support RPC over named pipes as a transport.

<4> Section 2.1: In Windows Server 2008 and Windows Server 2008 R2 DHCPM does not support RPC over local procedure call (LPC) as a transport.

<5> Section 2.1.2: In Windows Server 2008 DHCPM requires the RPC_C_AUTHN_LEVEL_PKT_PRIVACY authentication level.

<6> Section 2.2.1.1.9: The DhcpFailoverForce enumeration value is not available on applicable Windows clients and on Windows Server 2012 and earlier.

<7> Section 2.2.1.1.11: The QuarantineStatus enumeration is defined only for Windows Server 2008; the value remains the same. In Windows Server 2016 NAP was deprecated, therefore, the value of the QuarantineStatus enumeration will be NOQUARANTINE in all respective ADM object elements.

<8> Section 2.2.1.1.21: The DhcpUpdatePolicyDNSSuffix value is only available in Windows Server 2012 R2 and later.

<9> Section 2.2.1.1.22: The DhcpCompEndsWith and DhcpCompNotEndWith enumeration values are only available in Windows Server 2012 R2 and later.

<10> Section 2.2.1.1.23: The DhcpAttrFdn and DhcpAttrFqdnSingleLabel enumeration values are only available in Windows Server 2012 R2 and later.

<11> Section 2.2.1.2.9: In Windows, the size of binary data depends on the various kinds of data that is represented. When referenced in the DHCP_CLIENT_UID (section 2.2.1.2.5), the maximum size is limited by the DHCPv4 server database where the data is of type binary and can be up to 255 bytes in length. When referenced in DHCP_OPTION_DATA_ELEMENT (section 2.2.1.2.23), the maximum size is limited by the DHCPv4 server database where the data is of type long binary and can be up to 2147483647 bytes in length.

<12> Section 2.2.1.2.53: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, and Windows Server 2003 DHCPM supports registration using RPC over TCP/IP, RPC over named pipes, and over local procedure call (LPC).

<13> Section 2.2.1.2.54: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, and Windows Server 2003 DHCPM supports registration using RPC over TCP/IP, RPC over named pipes, and RPC over LPC.

<14> Section 2.2.1.2.55: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, and Windows Server 2003 DHCPM supports registration using RPC over TCP/IP, RPC over named pipes, and RPC over LPC.

<15> Section 2.2.1.2.62: In Windows Server 2008, the PreferredLifetimeIATA field of this structure is stored on the DHCPv6 server and will contain the stored value when called from a method to retrieve.

<16> Section 2.2.1.2.62: In Windows Server 2008, the ValidLifetimeIATA field of this structure is stored on the DHCPv6 server and will contain the stored value when called from a method to retrieve.

<17> Section 3: For the dhcpsrv interface:

  • Windows NT 3.51 supports opnums 0 through 28.

  • Windows NT 4.0 through Windows Server 2003 supports opnums 0 through 40.

  • Windows Server 2008 and Windows Server 2008 R2 supports opnums 0 through 50.

<18> Section 3: For the dhcpsrv2 interface:

  • Windows NT 3.51 does not support any opnums.

  • Windows NT 4.0 does not support any opnums.

  • Windows 2000 Server supports opnums 0 through 41.

  • Windows 2000 Server operating system Service Pack 4 (SP4) supports opnums 0 through 43.

  • Windows Server 2003 supports opnums 0 through 45.

  • Windows Server 2008 supports opnums 0 through 78.

  • Windows Server 2008 R2 supports opnums 0 through 88.

  • Windows Server 2012 supports opnums 0 through 125.

  • Windows Server 2012 R2 and later supports opnums 0 through 132. 

<19> Section 3: The Microsoft .NET Framework 2.0 and .NET Framework 3.0 provide the RpcExceptionCode function to retrieve error codes. The function description for RpcExceptionCode is available with other RPC functions in [MSDN-RPCF]. The function prototype is located in Rpc.h.

<20> Section 3.1.1.8: The ClassName strings indicated correspond to built-in classes on English language builds of the Windows operating system. The values vary for localized builds. The exact values can be queried using the R_DhcpEnumClasses (section 3.2.4.29) method. The ClassData field will remain invariant across languages for built-in classes.

<21> Section 3.1.1.8: The ClassComment strings indicated correspond to built-in classes on English language builds of the Windows operating system. The values vary for localized builds. The exact values can be queried using the R_DhcpEnumClasses (section 3.2.4.29) method. The ClassData field will remain invariant across languages for built-in classes.

<22> Section 3.1.1.19: The ClassName strings indicated correspond to built-in classes on English language builds of the Windows operating system. The values vary for localized builds. The exact values can be queried using the R_DhcpEnumClassesV6 (section 3.2.4.78) method. The ClassData field will remain invariant across languages for built-in classes.

<23> Section 3.1.1.19: The ClassComment strings indicated correspond to built-in classes on English language builds of the Windows operating system. The values vary for localized builds. The exact values can be queried using the R_DhcpEnumClassesV6 (section 3.2.4.78) method. The ClassData field will remain invariant across languages for built-in classes.

<24> Section 3.1.4: For the dhcpsrv interface:

  • Windows NT 3.51 supports opnums 0 through 28.

  • Windows NT 4.0 through Windows Server 2003 supports opnums 0 through 40.

  • Windows Server 2008 and Windows Server 2008 R2 supports opnums 0 through 50.

<25> Section 3.1.4.5: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<26> Section 3.1.4.5: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<27> Section 3.1.4.5: In Windows NT Server 4.0 operating system with Service Pack 2 (SP2), Windows 2000 Server, Windows Server 2003, and Windows Server 2008, if the ElementType member is set to DhcpReservedIps, and ReservedIpAddress specified in the ReservedIp member field in the Element union does not fall within the range of the IPv4 subnet and is not an existing reserved address, add the IPv4 reservation and return ERROR_SUCCESS.

<28> Section 3.1.4.7: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<29> Section 3.1.4.8: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<30> Section 3.1.4.16: If the OptionID parameter is not present, then the Windows DHCPv4 server will return ERROR_DHCP_OPTION_NOT_PRESENT provided the OptionClass is removed. But, if the OptionClass is not removed, then the return value would be ERROR_DHCP_CLASS_NOT_FOUND.

Note  If the OptionID parameter is removed it does not necessarily remove the OptionClass, OptionClass is only removed if you restart the service and hence if you just remove the OptionID parameter and try to remove it again then the error returned by the server is ERROR_DHCP_CLASS_NOT_FOUND. If you remove the OptionID parameter and restart the service and then try to remove the OptionID parameter again then the error returned by the server is ERROR_DHCP_OPTION_NOT_PRESENT.

<31> Section 3.1.4.21: In Windows, this value is set to the correct value during the final R_DhcpEnumSubnetClients enumeration call or when the API call returns all the parameters. In calls where the API does not return all parameters and returns error code ERROR_MORE_DATA, the API sets this value as 0x7FFFFFFF.

<32> Section 3.1.4.29: The following table shows the major and minor versions reported by the R_DhcpGetVersion method, in addition to the opnums supported by the RPC interfaces on Applicable Windows Server releases.

Windows Server release

Major version

Minor version

dhcpsrv opnums

dhcpsrv2 opnums

Windows Server operating system

10

0

0 - 50

0 - 132

Windows Server 2016

10

0

0 - 50

0 - 132

Windows Server 2012 R2

6

3

0 - 50

0 - 132

Windows Server 2012

6

2

0 - 50

0 - 125

Windows Server 2008 R2

6

1

0 - 50

0 - 88

Windows Server 2008

5

7

0 - 50

0 - 78

Windows Server 2003

5

6

0 - 40

0 - 45

Windows 2000 Server SP4

5

5

0 - 40

0 - 43

Windows 2000 Server

5

0

0 - 40

0 - 41

Windows NT 4.0

4

1

0 - 40

NA

Windows NT 3.51

1

1

0 – 28

NA

Note Windows Server 2008 R2 returns the OS version as returned by the GetVersionEx() API specified in [MSDN-GetVersionEx].

<33> Section 3.1.4.30: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<34> Section 3.1.4.30: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<35> Section 3.1.4.30: In Windows NT Server 4.0 SP2, Windows 2000 Server, Windows Server 2003, and Windows Server 2008, if the ElementType member is set to DhcpReservedIps, and ReservedIpAddress member specified in ReservedIp member in the Element parameter does not fall within the range of the IPv4 subnet and is not an existing reserved address, add the IPv4 reservation and return ERROR_SUCCESS.

<36> Section 3.1.4.32: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<37> Section 3.1.4.36: In Windows, this value is set to the correct value during the final R_DhcpEnumSubnetClientsV4 (section 3.1.4.36) enumeration call or when the API call returns all the parameters. In calls where the API does not return all parameters and returns error code ERROR_MORE_DATA, the API sets this value as 0x7FFFFFFF.

<38> Section 3.1.4.42: In Windows Server 2016 and later if the Set_QuarantineON bit is set to TRUE in the FieldsToSet parameter, the API will return ERROR_DHCP_NAP_NOT_SUPPORTED.

<39> Section 3.1.4.42: In Windows Server 2016 and later if the Set_QuarantineDefFail bit is not set to NOQUARANTINE in the FieldsToSet parameter, the API will return ERROR_DHCP_NAP_NOT_SUPPORTED.

<40> Section 3.1.4.45: DHCPM in Windows Server 2016 and later will ignore the QuarantineStatus, QuarantineCapable, and ProbationEnds members specified in the ClientInfo input parameter and initialize those fields in the newly created DHCPv4Client ADM element object as follows:

  • DHCPv4Client.Status ADM element is set to NOQUARANTINE.

  • DHCPv4Client.QuarantineCapable ADM element is set to FALSE.

  • DHCPv4Client.ProbationEnds ADM element is set to 0.

<41> Section 3.1.4.46: DHCPM in Windows Server 2016 and later will ignore the QuarantineStatus, QuarantineCapable, and ProbationEnds members specified in the ClientInfo input parameter and initialize those fields in the newly created DHCPv4Client ADM element object as follows:

  • DHCPv4Client.Status ADM element is set to NOQUARANTINE.

  • DHCPv4Client.QuarantineCapable ADM element is set to FALSE.

  • DHCPv4Client.ProbationEnds ADM element is set to 0.

<42> Section 3.1.4.48: In Windows, this value is set to the correct value during the final R_DhcpEnumSubnetClientsVQ (section 3.1.4.48) enumeration call or when the API call returns all the parameters. In calls where the API does not return all parameters and returns error code ERROR_MORE_DATA, the API sets this value as 0x7FFFFFFF.

<43> Section 3.1.4.51: In Windows Server 2016 and later if the QuarantineON field in the SubnetInfoVQ input parameter is set to TRUE, the API will return ERROR_DHCP_NAP_NOT_SUPPORTED.

<44> Section 3.2.4: For the dhcpsrv2 interface:

  • Windows NT 3.51 does not support any opnums.

  • Windows NT 4.0 does not support any opnums.

  • Windows 2000 Server supports opnums 0 through 41.

  • Windows 2000 Server SP4 supports opnums 0 through 43.

  • Windows Server 2003 supports opnums 0 through 45.

  • Windows Server 2008 supports opnums 0 through 78.

  • Windows Server 2008 R2 supports opnums 0 through 88.

  • Windows Server 2012 supports opnums 0 through 125.

  • Windows Server 2012 R2 and later supports opnums 0 through 132.

<45> Section 3.2.4.1: In Windows, this value is set to the correct value during the final R_DhcpEnumSubnetClientsV5 (section 3.2.4.1) enumeration call or when the API call returns all the parameters. In calls where the API does not return all parameters and returns error code ERROR_MORE_DATA, the API sets this value as 0x7FFFFFFF.

<46> Section 3.2.4.1: In Windows 2000 Server, Windows Server 2003, and Windows Server 2008, the Dynamic Host Configuration Protocol (DHCP) Server Management Protocol returns ERROR_SUCCESS, if the ResumeHandle parameter points to 0x00000000 and there are no DHCPv4 client leases for the specified SubnetAddress on the DHCPv4 server database, but there are DHCPv4 client leases for other configured subnets.

<47> Section 3.2.4.14: In Windows, this value is set to the correct value during the final R_DhcpEnumMScopeClients (section 3.2.4.14) enumeration call or when the API call returns all the parameters. In calls where the API does not return all parameters and returns ERROR_MORE_DATA, the API sets this value as "0x7FFFFFFF".

<48> Section 3.2.4.24: If the OptionID is not present, then the Windows DHCPv4 server will return ERROR_DHCP_OPTION_NOT_PRESENT provided the OptionClass is removed, but if the OptionClass is not removed, then the return value would be ERROR_DHCP_CLASS_NOT_FOUND.

Note If OptionID is removed, it does not necessarily remove the OptionClass. OptionClass is only removed if you restart the service. Therefore, if you just remove the OptionID and try to remove it again, then the error returned by the server is ERROR_DHCP_CLASS_NOT_FOUND. If you remove the OptionID and restart the service and then try to remove the OptionID again, then the error returned by the server is ERROR_DHCP_OPTION_NOT_PRESENT.

<49> Section 3.2.4.38: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<50> Section 3.2.4.38: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<51> Section 3.2.4.38: In Windows NT Server 4.0 SP2, Windows 2000 Server, Windows Server 2003, and Windows Server 2008, if the ElementType member is set to DhcpReservedIps, and ReservedIpAddress specified in the ReservedIp field in Element does not fall within the range of the IPv4 subnet and it is not an existing reserved address, then add the IPv4 reservation and return ERROR_SUCCESS.

<52> Section 3.2.4.40: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, Windows Server 2003, Windows Server 2008, and Windows Server 2008 R2 DHCPM does not perform this check.

<53> Section 3.2.4.44: In Windows, the run-encoding changes the character values to appear somewhat random and typically not printable. This is useful for transforming passwords into characters that are not easily distinguishable by visually scanning a paging file or memory dump. The algorithm performs an XOR run-encoding of a Unicode string with a constant called a SEED. The SEED value is 0xA5.

Details of the run-encoding algorithm follow:

  • Perform a bitwise XOR operation on the first byte of the input string with the result of a bitwise OR operation of the SEED and the constant value 0x43.

  • Run through the remaining string one byte at a time and perform a running bitwise XOR operation of the previous byte and the SEED value.

<54> Section 3.2.4.44: In Windows, the run-decoding algorithm is the inverse of the run-encoding algorithm. The run-decoding algorithm regenerates the clear-text string encoded with the run-encoding algorithm. The run-decoding algorithm also needs the input SEED value used during encoding.

Details of the run-decoding algorithm follow:

  • Run through the encoded string from the last byte to the second byte and perform a running bitwise XOR operation with the previous byte and the SEED value.

  • Perform a bitwise XOR operation on the first byte with the result of a bitwise OR operation of the SEED and the constant value 0x43.

<55> Section 3.2.4.51: DHCPM in Windows Server 2008 returns ERROR_NO_MORE_ITEMS when the user specifies any vendor class name, even though options are configured specifically to that vendor class.

<56> Section 3.2.4.53: In Windows Server 2008, if no IPv6 reservation exists on the DHCPv6 server and R_DhcpSetOptionValueV6 method is called to set an option value, the DHCPv6 server becomes unavailable. In addition, RPC will throw exception RPC_S_CALL_FAILED (0x000006BE) on the RPC client.

<57> Section 3.2.4.54: In Windows Server 2008, if the IPv6 prefix is not present on the DHCP server ERROR_FILE_NOT_FOUND is returned. If the IPv6 reservation is not present on the DHCP server ERROR_NO_MORE_ITEMS is returned.

<58> Section 3.2.4.55: In Windows Server 2008 and Windows Server 2008 R2 operating system if R_DhcpRemoveOptionValueV6 method is called with enumeration DhcpDefaultOptions6, the behavior is undefined.

<59> Section 3.2.4.55: In Windows Server 2008, if R_DhcpRemoveOptionValueV6 method is called with enumeration DhcpGlobalOptions6, the DHCPv6 Server returns ERROR_INVALID_PARAMETER.

<60> Section 3.2.4.58: In Windows Server 2008, DHCPM does not validate the prefix specified in the SubnetAddress parameter. Rather, it treats all specified prefixes as valid.

<61> Section 3.2.4.60: Windows Server 2008 adds a reservation and deletes the lease when the method is called to add a reservation for which the lease already exists in the database. In case the method is called to add a reservation when there is no lease entry in the database, Windows Server 2008 only adds the reservation and not the corresponding lease record.

<62> Section 3.2.4.60: In Windows Server 2008 if ElementType is Dhcpv6ReservedIp, and the reservation for the IPv6 address already exists, return ERROR_INVALID_PARAMETER.

<63> Section 3.2.4.60: Windows Server 2008 adds a reservation and deletes the lease when the method is called to add a reservation for which the lease already exists in the database. In case the method is called to add a reservation when there is no lease entry in the database, Windows Server 2008 adds only the reservation and not the corresponding lease record.

<64> Section 3.2.4.60: Windows Server 2008 adds a reservation and deletes the lease when the method is called to add a reservation for which the lease already exists in the database. In case the method is called to add a reservation when there is no lease entry in the database, Windows Server 2008 only adds the reservation and not the corresponding lease record.

<65> Section 3.2.4.63: In Windows Server 2008, DHCPM does not check ForceFlag. Whether the scope is in use, it will be deleted.

<66> Section 3.2.4.65: In Windows, this value is set to the correct value during the final R_DhcpEnumSubnetClientsV6 (section 3.2.4.65) enumeration call or when the API call returns all the parameters. In calls where the API does not return all parameters and returns error code ERROR_MORE_DATA, the API sets this value as "0x7FFFFFFF".

<67> Section 3.2.4.65: In Windows Server 2008, DHCPM returns ERROR_DHCP_JET_ERROR when the value of ResumeHandle parameter matches an IPv6 prefix configured on a DHCPv6 server but does not match any DHCPv6 client lease record.

<68> Section 3.2.4.66: In Windows Server 2008 DHCPM requires that only one value be set in the FieldsToSet parameter on each call to this method and that the DHCP server service be restarted after modifying PreferredLifetime, ValidLifetime, T1, or T2.

<69> Section 3.2.4.72: In Windows Server 2008 and Windows Server 2008 R2 the R_DhcpSetClientInfoV6 method cannot be used to update the ClientDUID and IAID of the reserved DHCPv6 client lease record properly. To modify an existing reserved DHCPv6 client lease record, delete the record by calling R_DhcpRemoveSubnetElementV6 (section 3.2.4.62) method and then add the record using R_DhcpAddSubnetElementV6 (section 3.2.4.60) method.

<70> Section 3.2.4.74: In Windows Server 2008 DHCPM returns ERROR_DHCP_JET_ERROR if the method is called to delete a lease for which a reservation exists.

<71> Section 3.2.4.79: In Windows Server 2008, if no IPv6 reservation exists on the DHCPv6 server and the R_DhcpSetOptionValueV6 method is called to set an option value, the DHCPv6 server becomes unavailable. In addition, RPC will throw exception RPC_S_CALL_FAILED (0x000006BE) on the RPC client.

<72> Section 3.2.4.89: In Windows, this value is set to the correct value during the final R_DhcpEnumSubnetClientsFilterStatusInfo (section 3.2.4.89) enumeration call or when the API call returns all the parameters. In calls where the API does not return all parameters and returns error code ERROR_MORE_DATA, the API sets this value as "0x7FFFFFFF".

<73> Section 3.2.4.102: In Windows Server 2012 this validation is not performed, and the ERROR_DHCP_POLICY_FQDN_OPTION_UNSUPPORTED error is never returned.

<74> Section 3.2.4.103: In Windows Server 2012 this validation is not performed, and the ERROR_DHCP_POLICY_FQDN_OPTION_UNSUPPORTED error is never returned.

<75> Section 3.2.4.109: In Windows Server 2012 additional validation is performed for each condition element in the Conditions member in the pPolicy structure. The value of the Operator member is validated for equality with either the DhcpCompBeginsWith or DhcpCompNotBeginsWith enumeration value, and the value of the OptionID member is validated for equality with the relay agent information option (82).

<76> Section 3.2.4.109: In Windows Server 2012 the value of the Type member is validated for equality with the DhcpAttrHWAddr enumeration value, and the value of the Operator member is validated for equality with the DhcpCompBeginsWith or DhcpCompNotBeginWith enumeration values, and the value of the ValueLength member is validated to be equal to or greater than 6.

<77> Section 3.2.4.109: In Windows Server 2012 the value of the Operator member for the condition is validated for equality with the DhcpCompEqual enumeration value, and the operator of all other conditions (with the same ParentExpr member) is validated to not be equal with either the DhcpCompEqual or DhcpCompBeginsWith enumeration value.

<78> Section 3.2.4.109: In Windows Server 2012 the value of the Operator member for the condition is validated for equality with the DhcpCompNotEqual enumeration value, and the operator of all other conditions (with the same ParentExpr member) is validated to not be equal with either the DhcpCompNotEqual or DhcpCompNotBeginWith enumeration value.

<79> Section 3.2.4.109: In Windows Server 2012 this validation is not performed and ERROR_DHCP_POLICY_FQDN_RANGE_UNSUPPORTED is never returned.

<80> Section 3.2.4.111: In Windows Server 2012 this validation is not performed, and ERROR_DHCP_POLICY_EDIT_FQDN_UNSUPPORTED is never returned.

<81> Section 3.2.4.111: In Windows Server 2012 this validation is not performed, and ERROR_DHCP_POLICY_EDIT_FQDN_UNSUPPORTED is never returned.

<82> Section 3.2.4.111: In Windows Server 2012 additional validation is performed for each condition element in the Conditions member in the pPolicy structure. The value of the Operator member is validated for equality with either the DhcpCompBeginsWith or DhcpCompNotBeginsWith enumeration value, and the value of the OptionID member is validated for equality with the relay agent information option (82).

<83> Section 3.2.4.111: In Windows Server 2012 the value of the Type member is validated for equality with the DhcpAttrHWAddr enumeration value, and the value of the Operator member is validated for equality with either the DhcpCompBeginsWith or DhcpCompNotBeginWith enumeration value, and the value of the ValueLength member is validated to be equal to or greater than 6.

<84> Section 3.2.4.111: In Windows Server 2012 the value of the Operator member for the condition is validated for equality with the DhcpCompEqual enumeration value, the operator of all other conditions (with the same ParentExpr member) is validated to not be equal with either the DhcpCompEqual or DhcpCompBeginsWith enumeration value.

<85> Section 3.2.4.111: In Windows Server 2012 the value of the Operator member for the condition is validated for equality with the DhcpCompNotEqual enumeration value, the operator of all other conditions (with the same ParentExpr member) is validated to not be equal with either the DhcpCompNotEqual or DhcpCompNotBeginWith enumeration value.

<86> Section 3.2.4.113: In Windows Server 2012 this filtering is not present, and all of the policies present are returned.

<87> Section 3.2.4.114: In Windows Server 2012 this validation is not performed.

<88> Section 3.2.4.123: In Windows Server 2016 and later DHCPM will ignore the QuarantineStatus, QuarantineCapable, and ProbationEnds members specified in the ClientInfo input parameter and initialize those fields in the newly created DHCPv4Client ADM element object as follows:

  • DHCPv4Client.Status ADM element is set to NOQUARANTINE.

  • DHCPv4Client.QuarantineCapable ADM element is set to FALSE.

  • HCPv4Client.ProbationEnds ADM element is set to 0.

<89> Section 3.2.4.132: In Windows Server 2016 and Windows Server operating system DHCPM will ignore the QuarantineStatus, QuarantineCapable, and ProbationEnds members specified in the ClientInfo input parameter and initialize those fields in the newly created DHCPv4Client ADM element object as follows:

  • DHCPv4Client.Status ADM element is set to NOQUARANTINE.

  • DHCPv4Client.QuarantineCapable ADM element is set to FALSE.

  • HCPv4Client.ProbationEnds ADM element is set to 0.

<90> Section 3.3.1: The name protection feature is only available in Windows Server 2008 R2.

<91> Section 3.3.2: The Dynamic DNS update settings for DHCPv6 server configuration are only supported in Windows Server 2008.

<92> Section 3.3.2: The name protection feature is only available in Windows Server 2008 R2.

<93> Section 3.3.3: Enforcing Name Protection will result in following behavioral changes:

  • DHCP server honors request for A/AAAA and PTR records registration for Windows DHCP clients.

  • DHCP server dynamically updates A/AAAA and PTR records for non-Windows DHCP clients.

  • DHCP server discards A/AAAA and PTR records when lease is deleted.

<94> Section 3.5.6: In Windows NT 3.51, Windows NT 4.0, Windows 2000 Server, and Windows Server 2003 DHCPM does not mandate DHCP clients request a specific authentication level. In Windows Server 2008 and Windows Server 2008 R2 DHCPM mandates the DHCP clients request an authentication level greater than or equal to RPC_C_AUTHN_LEVEL_PKT_PRIVACY.