The CERT_BASIC_CONSTRAINTS_INFO structure contains information indicating whether the certified subject may act as a CA, an end-entity, or both. If the subject may act as a CA, a certification path length constraint may also be specified, as may a set of subtrees within which all subject names in subsequent certificates in a certification path must be located. This extension can be used in validating certificates used to sign other certificates.
When the CryptDecodeObject or CryptDecodeObjectEx function is performed on a CERT_EXTENSION structure's Value member, and the structure's pszObjId member is set to "2.5.29.10", this CERT_BASIC_CONSTRAINTS_INFO is output from the function call.
typedef struct _CERT_BASIC_CONSTRAINTS_INFO {
CRYPT_BIT_BLOB SubjectType;
BOOL fPathLenConstraint;
DWORD dwPathLenConstraint;
DWORD cSubtreesConstraint;
CERT_NAME_BLOB* rgSubtreesConstraint;
} CERT_BASIC_CONSTRAINTS_INFO, *PCERT_BASIC_CONSTRAINTS_INFO;
BLOB Structure, CRYPT_BIT_BLOB