Consider SDK version when packing downcastable pointer
SDK version available in the target module might miss the final interface type provided by the source module or the interface might be unrelated to the base type of the downcastable interface. The kernel needs to check if this is the case and upcast the final interface until the target SDK is capable of receiving this data.