3.1.4.10 Data Validation
Data types defined in section 2.2 are subject to a set of validation rules, in addition to any already noted. For structures that contain other structures or sets of other structures, the validation for those structures MUST be enforced when validating the containing structure. All constraints in the following tables MUST be satisfied; on failure, an error NTSTATUS code MUST be returned.
Data type |
Validations |
---|---|
LSA_UNICODE_STRING RPC_UNICODE_STRING LSAPR_CR_CIPHER_VALUE |
|
RPC_SID |
Additionally, if the security identifier (SID) is a domain SID:
|
LSAPR_SR_SECURITY_DESCRIPTOR |
|
LSAPR_LUID_AND_ATTRIBUTES |
|
LSAPR_PRIVILEGE_SET |
|
LSAPR_OBJECT_ATTRIBUTES |
RootDirectory MUST be NULL. |
ACCESS_MASK |
SHOULD conform to the defined bits for ACCESS_MASK. |
POLICY_INFORMATION_CLASS |
MUST be greater than or equal to one and MUST be less than the PolicyLastEntry enumeration value (section 2.2.4.1). |
POLICY_AUDIT_LOG_INFO |
No additional validation. |
LSAPR_POLICY_AUDIT_EVENTS_INFO |
|
LSAPR_POLICY_ACCOUNT_DOM_INFO |
|
LSAPR_POLICY_PRIMARY_DOM_INFO |
|
LSAPR_POLICY_DNS_DOMAIN_INFO |
|
LSAPR_POLICY_PD_ACCOUNT_INFO |
Name MUST satisfy RPC_UNICODE_STRING validations. |
POLICY_LSA_SERVER_ROLE_INFO |
LsaServerRole MUST be 2 OR 3. |
LSAPR_POLICY_MACHINE_ACCT_INFO |
§ Rid MUST be 0 or greater than 0x000003E7. § If Rid is 0, Sid MUST be NULL. § If Rid is not 0, Sid MUST NOT be NULL. In this case, Rid MUST equal the last sub-authority of Sid. § If Sid is not NULL, it MUST satisfy RPC_SID validations, including those for domain SID. |
LSAPR_CR_CIPHER_VALUE |
MaximumLength MUST be greater than or equal to Length. |
LSAPR_POLICY_REPLICA_SRCE_INFO |
|
POLICY_MODIFICATION_INFO |
ModifiedId MUST not be 0. |
POLICY_AUDIT_FULL_SET_INFO |
No validation. |
LSAPR_POLICY_DOMAIN_EFS_INFO |
If InfoLength is not 0, EfsBlob MUST NOT be NULL. |
TRUSTED_INFORMATION_CLASS |
MUST be greater than or equal to 1 and less than or equal to 13. |
LSAPR_TRUSTED_DOMAIN_AUTH_INFORMATION |
|
LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION |
|
LSAPR_TRUSTED_DOMAIN_FULL_INFORMATION2 |
|
LSAPR_AUTH_INFORMATION |
If AuthInfoLength is not 0, AuthInfo MUST NOT be NULL. |
LSA_FOREST_TRUST_DOMAIN_INFO |
|
LSA_FOREST_TRUST_BINARY_DATA |
If Length is not 0, Buffer MUST NOT be NULL. |
LSA_FOREST_TRUST_RECORD |
|
LSA_FOREST_TRUST_INFORMATION |
|
LSA_FOREST_TRUST_COLLISION_RECORD |
Name MUST satisfy RPC_UNICODE_STRING validation. |
LSA_FOREST_TRUST_COLLISION_INFORMATION |
|
LSAPR_HANDLE |
MUST not be NULL. |
LSAPR_ACCOUNT_INFORMATION |
SID MUST satisfy RPC_SID validation. |
LSAPR_ACCOUNT_ENUM_BUFFER |
|
LSAPR_POLICY_PRIVILEGE_DEF |
Name MUST satisfy RPC_UNICODE_STRING validation. |
LSAPR_PRIVILEGE_ENUM_BUFFER |
|
LSAPR_TRUSTED_DOMAIN_INFORMATION_BASIC |
|
LSAPR_TRUSTED_ENUM_BUFFER |
|
LSAPR_TRUSTED_PASSWORD_INFO |
OldPassword and Password MUST satisfy LSAPR_CR_CIPHER_VALUE validation. |
LSAPR_TRUSTED_DOMAIN_NAME_INFO |
Name MUST satisfy RPC_UNICODE_STRING validation. |
LSAPR_USER_RIGHT_SET |
|
LSAPR_TRUSTED_DOMAIN_INFORMATION_EX |
|