2.2.2.8 DFS_TARGET_PRIORITY_CLASS

The DFS_TARGET_PRIORITY_CLASS enumeration relates to the NetrDfsSetInfo and NetrDfsSetInfo2 methods when used to set the priority of DFS targets in referrals from a server. For more information on prioritization, see section 2.2.2.7. The enumeration defines five possible DFS target priority class settings.

 typedef [v1_enum] enum _DFS_TARGET_PRIORITY_CLASS
 {
   DfsInvalidPriorityClass = -1,
   DfsSiteCostNormalPriorityClass = 0,
   DfsGlobalHighPriorityClass = 1,
   DfsSiteCostHighPriorityClass = 2,
   DfsSiteCostLowPriorityClass = 3,
   DfsGlobalLowPriorityClass = 4
 } DFS_TARGET_PRIORITY_CLASS;

DfsInvalidPriorityClass:  This is not a valid priority class.

DfsSiteCostNormalPriorityClass:  The default or "normal" site cost priority class for a DFS target.

DfsGlobalHighPriorityClass:  The highest priority class for a DFS target. Targets assigned to this class receive global preference.

DfsSiteCostHighPriorityClass:  The highest site cost priority class for a DFS target. Targets assigned to this class receive the highest preference among targets of the same site cost for a given DFS client.

DfsSiteCostLowPriorityClass:  The lowest site cost priority class for a DFS target. Targets assigned to this class receive the least preference among targets of the same site cost for a given DFS client.

DfsGlobalLowPriorityClass:  The lowest priority class level for a DFS target. Targets assigned to this class receive the least preference globally.

The underlying data type of this enumeration is long integer.

The order of priority classes, from highest to lowest, is as follows:

  • DfsGlobalHighPriorityClass

  • DfsSiteCostHighPriorityClass

  • DfsSiteCostNormalPriorityClass

  • DfsSiteCostLowPriorityClass

  • DfsGlobalLowPriorityClass

Server targets are initially grouped into global high-priority, normal-priority, and global low-priority classes. The normal-priority class is then subdivided, based on site cost, into site cost high-priority, site cost normal-priority, and site-cost low-priority classes.

For example, all server targets with a site cost value of 0 are grouped into site cost high-priority, normal-priority, and low-priority classes. Then, all server targets with higher site costs are likewise separated into site cost high-priority, normal-priority, and low-priority classes. Thus, a server target with a site cost value of 0 and a site cost low-priority class is still ranked higher than a server target with a site cost value of 1 and a site cost high-priority class.

Be aware that the value for a "normal-priority class" is set to 0 even though it is lower in priority than DfsGlobalHighPriorityClass and DfsSiteCostHighPriorityClass. This is the default priority class setting. For added granularity, priority rank can be used to discriminate within a priority class.