<div class="content" name="SAM_VALIDATE_PERSISTED_FIELDS" uuid="e0b2d21d-0b1c-4fc0-8f4a-895bef6ffc4e"><p>The SAM_VALIDATE_PERSISTED_FIELDS structure holds various
characteristics about password state.</p><dl>
<dd>
<div><pre> typedef struct _SAM_VALIDATE_PERSISTED_FIELDS {
   unsigned long PresentFields;
   LARGE_INTEGER PasswordLastSet;
   LARGE_INTEGER BadPasswordTime;
   LARGE_INTEGER LockoutTime;
   unsigned long BadPasswordCount;
   unsigned long PasswordHistoryLength;
   [unique, size_is(PasswordHistoryLength)] 
     PSAM_VALIDATE_PASSWORD_HASH PasswordHistory;
 } SAM_VALIDATE_PERSISTED_FIELDS,
  *PSAM_VALIDATE_PERSISTED_FIELDS;
</pre></div>
</dd></dl><p><b>PresentFields:</b>  A bitmask to
indicate which of the fields are valid. The following table shows the defined
values. If a bit is set, the corresponding field is valid; if a bit is not set,
the field is not valid.</p><dl>
<dd>
<table><thead>
  <tr>
   <th>
   <p>Value</p>
   </th>
   <th>
   <p>Meaning</p>
   </th>
  </tr>
 </thead><tbody><tr>
  <td>SAM_VALIDATE_PASSWORD_LAST_SET 0x00000001</td>
  <td>PasswordLastSet</td>
 </tr><tr>
  <td>SAM_VALIDATE_BAD_PASSWORD_TIME 0x00000002</td>
  <td>BadPasswordTime</td>
 </tr><tr>
  <td>SAM_VALIDATE_LOCKOUT_TIME 0x00000004</td>
  <td>LockoutTime</td>
 </tr><tr>
  <td>SAM_VALIDATE_BAD_PASSWORD_COUNT 0x00000008</td>
  <td>BadPasswordCount</td>
 </tr><tr>
  <td>SAM_VALIDATE_PASSWORD_HISTORY_LENGTH 0x00000010</td>
  <td>PasswordHistoryLength</td>
 </tr><tr>
  <td>SAM_VALIDATE_PASSWORD_HISTORY 0x00000020</td>
  <td>PasswordHistory</td>
 </tr></tbody></table>
</dd></dl><p><b>PasswordLastSet:</b>  This field
represents the time at which the password was last reset or changed. It uses <span><a href="../ms-dtyp/2c57429b-fdd4-488f-b5fc-9e4cf020fcdf" data-linktype="relative-path">FILETIME</a></span>
syntax.</p><p><b>BadPasswordTime:</b>  This field
represents the time at which an invalid password was presented to either a
password change request or an authentication request. It uses FILETIME syntax.</p><p><b>LockoutTime:</b>  This field represents
the time at which the owner of the password data was locked out. It uses
FILETIME syntax.</p><p><b>BadPasswordCount:</b>  Indicates how
many invalid passwords have accumulated (see message processing for details).</p><p><b>PasswordHistoryLength:</b>  Indicates
how many previous passwords are in the <b>PasswordHistory</b> field.</p><p><b>PasswordHistory:</b>  An array of hash
values representing the previous <b>PasswordHistoryLength</b> passwords.</p></div>