The IsPropertyIndirection() and GetValueBaseAddress() allow a struct provider to expose data to be edited that is not supported by the property system. When IsPropertyIndirection() returns true, GetValueBaseAddress() is called relative to the parent property node to retrieve pointer to the data to be edited.