2.2.9.2 SAM_VALIDATE_PERSISTED_FIELDS
The SAM_VALIDATE_PERSISTED_FIELDS structure holds various characteristics about password state.
-
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;
PresentFields: 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.
-
Value
Meaning
SAM_VALIDATE_PASSWORD_LAST_SET
0x00000001
PasswordLastSet
SAM_VALIDATE_BAD_PASSWORD_TIME
0x00000002
BadPasswordTime
SAM_VALIDATE_LOCKOUT_TIME
0x00000004
LockoutTime
SAM_VALIDATE_BAD_PASSWORD_COUNT
0x00000008
BadPasswordCount
SAM_VALIDATE_PASSWORD_HISTORY_LENGTH
0x00000010
PasswordHistoryLength
SAM_VALIDATE_PASSWORD_HISTORY
0x00000020
PasswordHistory
PasswordLastSet: This field represents the time at which the password was last reset or changed. It uses FILETIME syntax.
BadPasswordTime: 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.
LockoutTime: This field represents the time at which the owner of the password data was locked out. It uses FILETIME syntax.
BadPasswordCount: Indicates how many invalid passwords have accumulated (see message processing for details).
PasswordHistoryLength: Indicates how many previous passwords are in the PasswordHistory field.
PasswordHistory: An array of hash values representing the previous PasswordHistoryLength passwords.