FLAG_ATTR_REQ_PARTIAL_SET_MEMBER vs isMemberOfPartialAttributeSet

A question was asked in the Directory Services TechNet forums the other day about some attributes having the following characteristics inconsistently set regarding the Partial Attribute Set (PAS).

SystemFlags bit (FLAG_ATTR_REQ_PARTIAL_SET_MEMBER = 0x00000002) and the attribute isMemberOfPartialAttributeSet set to “True”

So what applies here really and what is the difference between the two? Well you can get a since of the SystemFlags bit name (FLAG_ATTR_REQ_PARTIAL_SET_MEMBER = 0x00000002) that actually require that the particular attribute is being a member of the PAS (e.g. the system requires this and the code / DSA makes assumptions that this attribute is in the PAS) customers and end-users can’t set isMemberOfPartialAttributeSet to “False” of attributes that have this bit in the SystemFlags, and SystemFlags can’t be altered/modified from the outside in a supported manner.

So basically attributes with (FLAG_ATTR_REQ_PARTIAL_SET_MEMBER = 0x00000002) is a member of PAS regardless the value of attribute isMemberOfPartialAttributeSet. This is documented at: http://msdn.microsoft.com/en-us/library/cc223202.aspx

Additionally an attribute that has the bit (FLAG_ATTR_NOT_REPLICATED = 0x00000001) cannot be made a member of the PAS.