<div class="content"><p> </p><p>The <b>DNSSRV_DS_STATS</b> structure has DNS server
statistics related to <span><a href="a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_04fd0982-6bb6-44f1-817e-795715049c50" data-linktype="relative-path">directory server</a></span>
processing. The UpdateLists member through DsWriteType member refer to
statistical values, when the server is propagating changes from the in-memory
database to the directory server.</p><p>This structure MUST be formatted as follows:</p><table>
 <tbody><tr>
  <th><p><br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>1<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>2<br/>0</p></th>
  <th><p><br/>1</p></th>
  <th><p><br/>2</p></th>
  <th><p><br/>3</p></th>
  <th><p><br/>4</p></th>
  <th><p><br/>5</p></th>
  <th><p><br/>6</p></th>
  <th><p><br/>7</p></th>
  <th><p><br/>8</p></th>
  <th><p><br/>9</p></th>
  <th><p>3<br/>0</p></th>
  <th><p><br/>1</p></th>
 </tr>
 <tr>
  <td colspan="32">
  <p>Header</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>...</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsTotalNodesRead</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsTotalRecordsRead</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsNodesLoaded</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsRecordsLoaded</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsTombstonesRead</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsUpdateSearches</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsUpdateNodesRead</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsUpdateRecordsRead</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateLists</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateNodes</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateSuppressed</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateWrites</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateTombstones</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateRecordChange</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateAgingRefresh</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateAgingOn</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateAgingOff</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdatePacket</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdatePacketPrecon</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateAdmin</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateAutoConfig</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>UpdateScavenge</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsNodesAdded</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsNodesModified</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsNodesTombstoned</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsNodesDeleted</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsRecordsAdded</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsRecordsReplaced</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsWriteSuppressed</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsSerialWrites</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapTimedWrites</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteTimeTotal</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteAverage</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteMax</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteBucket0</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteBucket1</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteBucket2</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteBucket3</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteBucket4</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapWriteBucket5</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapSearchTime</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>FailedDeleteDsEntries</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>FailedReadRecords</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>FailedLdapModify</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>FailedLdapAdd</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>PollingPassesWithDsErrors
  (optional)</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>LdapReconnects
  (optional)</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>DsWriteType
  (160 bytes)</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>...</p>
  </td>
 </tr>
 <tr>
  <td colspan="32">
  <p>...</p>
  </td>
 </tr>
</tbody></table><p><b>Header (8 bytes): </b>A structure of type <b>DNSSRV_STAT_HEADER</b>
(section <span><a href="271b57b1-759c-4c5c-8238-912cd1b3be2a" data-linktype="relative-path">2.2.10.2.1</a></span>).</p><p><b>DsTotalNodesRead (4 bytes): </b>The total number
of DNS <span><a href="a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_762051d8-4fdc-437e-af9d-3f4da77c3c7d" data-linktype="relative-path">nodes</a></span> read from the
directory server.</p><p><b>DsTotalRecordsRead (4 bytes): </b>The total number
of resource records read from the directory server.</p><p><b>DsNodesLoaded (4 bytes): </b>The number of valid
DNS nodes found in the directory server and loaded in memory by the server.</p><p><b>DsRecordsLoaded (4 bytes): </b>The number of
resource records loaded in memory by the server.</p><p><b>DsTombstonesRead (4 bytes): </b>The number of
nodes read from the directory server and found in a tombstoned state.</p><p><b>DsUpdateSearches (4 bytes): </b>The number of zone
update searches performed on the directory server.</p><p><b>DsUpdateNodesRead (4 bytes): </b>The number of DNS
nodes that were read from the directory server and contained updated
information.</p><p><b>DsUpdateRecordsRead (4 bytes): </b>The number of
resource records that were read from the directory server and contained updated
information.</p><p><b>UpdateLists (4 bytes): </b>The number of in-memory
nodes with an updated list of record.</p><p><b>UpdateNodes (4 bytes): </b>The number of in-memory
nodes that required an update in the directory server.</p><p><b>UpdateSuppressed (4 bytes): </b>The number of
in-memory nodes that did not require any write to the directory server. </p><p><b>UpdateWrites (4 bytes): </b>The number of
in-memory nodes that required writing to the directory server.</p><p><b>UpdateTombstones (4 bytes): </b>The number of
in-memory nodes that required tombstoning.</p><p><b>UpdateRecordChange (4 bytes): </b>The number of
in-memory nodes that required record changes.</p><p><b>UpdateAgingRefresh (4 bytes): </b>The number of
in-memory nodes that required an <span><a href="a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_0288f9f1-b244-4551-8638-a2280001b531" data-linktype="relative-path">aging</a></span> information
refresh.</p><p><b>UpdateAgingOn (4 bytes): </b>The number of
in-memory nodes that required aging to be enabled.</p><p><b>UpdateAgingOff (4 bytes): </b>The number of
in-memory nodes that required aging to be disabled.</p><p><b>UpdatePacket (4 bytes): </b>The number of
in-memory nodes modified as a result of update packets being received.</p><p><b>UpdatePacketPrecon (4 bytes): </b>The number of
in-memory nodes modified as a result of update packets being received with
prerequisites (as discussed in <span><a href="https://go.microsoft.com/fwlink/?LinkId=107017" data-linktype="external">[RFC2136]</a></span>
section 2.4).</p><p><b>UpdateAdmin (4 bytes): </b>The number of in-memory
nodes modified as a result of administrator initiated changes.</p><p><b>UpdateAutoConfig (4 bytes): </b>The number of
in-memory nodes modified as a result of an auto-configure operation.</p><p><b>UpdateScavenge (4 bytes): </b>The number of
in-memory nodes modified as a result of a <span><a href="a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_345c3de7-adfa-4386-9ba5-f5f572af489c" data-linktype="relative-path">scavenging</a></span> cycle.</p><p><b>DsNodesAdded (4 bytes): </b>The number of new
nodes added to the directory server.</p><p><b>DsNodesModified (4 bytes): </b>The number of nodes
modified in the directory server.</p><p><b>DsNodesTombstoned (4 bytes): </b>The number of
nodes tombstoned in the directory server.</p><p><b>DsNodesDeleted (4 bytes): </b>The number of nodes
deleted from the directory server.</p><p><b>DsRecordsAdded (4 bytes): </b>The number of
records added to the directory server.</p><p><b>DsRecordsReplaced (4 bytes): </b>The number of
records modified or replaced in the directory server.</p><p><b>DsWriteSuppressed (4 bytes): </b>The number of
records added to the directory server.</p><p><b>DsSerialWrites (4 bytes): </b>The number of
records that had matching data and hence were not written to the directory
server.</p><p><b>LdapTimedWrites (4 bytes): </b>The number of times
the server performed a timed LDAP write operation.</p><p><b>LdapWriteTimeTotal (4 bytes): </b>The cumulative
time, in milliseconds, consumed by server-performed timed LDAP write
operations.</p><p><b>LdapWriteAverage (4 bytes): </b>The average time,
in milliseconds, for all server performed timed LDAP write operations since the
server was last restarted.</p><p><b>LdapWriteMax (4 bytes): </b>The longest duration
taken, in milliseconds, for any single server-performed timed LDAP
write-operation.</p><p><b>LdapWriteBucket0 (4 bytes): </b>The number of <span><a href="a95b05da-f1fd-4db3-94b4-817fdaa1f642#gt_45643bfb-b4c4-432c-a10f-b98790063f8d" data-linktype="relative-path">LDAP</a></span>
write-operations that took less than 10 milliseconds.</p><p><b>LdapWriteBucket1 (4 bytes): </b>The number of LDAP
write-operations that took between 10 and 100 milliseconds.</p><p><b>LdapWriteBucket2 (4 bytes): </b>The number of LDAP
write-operations that took between 100 milliseconds and 1 second.</p><p><b>LdapWriteBucket3 (4 bytes): </b>The number of LDAP
write-operations that took between 1 and 10 seconds.</p><p><b>LdapWriteBucket4 (4 bytes): </b>The number of LDAP
write-operations that took between 10 and 100 seconds.</p><p><b>LdapWriteBucket5 (4 bytes): </b>The number of LDAP
write-operations that took more than 100 seconds.</p><p><b>LdapSearchTime (4 bytes): </b>The cumulative time,
in milliseconds, consumed by server-performed LDAP searches.</p><p><b>FailedDeleteDsEntries (4 bytes): </b>The number of
times the server failed to delete entries from the directory server.</p><p><b>FailedReadRecords (4 bytes): </b>The number of
times the server failed to read records from the directory server.</p><p><b>FailedLdapModify (4 bytes): </b>The number of
times the server failed to modify records in the directory server.</p><p><b>FailedLdapAdd (4 bytes): </b>The number of times the
server failed to add entries to the directory server.</p><p><b>PollingPassesWithDsErrors (4 bytes): </b>The
number of times the server hit failure while polling zones in the directory
server. This field SHOULD<a id="Appendix_A_Target_75"></a><a aria-label="Product behavior note 75" href="4a9a3ba3-10eb-430e-b157-1fed0aaf85a5#Appendix_A_75" data-linktype="relative-path">&lt;75&gt;</a> be
present. A client can tell whether the field is present based on the size of
the buffer holding this structure.</p><p><b>LdapReconnects (4 bytes): </b>The number of times
the server attempted to reconnect to the directory server. This field MUST be
present if and only if PollingPassesWithDsErrors is present. A client can tell
whether the field is present based on the size of the buffer holding this
structure.</p><p><b>DsWriteType (160 bytes): </b>An array of 32-bit
unsigned integers that keeps track of update requests for different DNS record
types as specified DNS_RECORD_TYPE (section <span><a href="39b03b89-2264-4063-8198-d62f62a6441a" data-linktype="relative-path">2.2.2.1.1</a></span>). There
are a total of 40 entries each corresponding to the number of received update
requests for different record types in the order specified in DNS_RECORD_TYPE
(section 2.2.2.1.1), starting from DNS_TYPE_ZERO to DNS_TYPE_DNAME.</p></div>