Usually ``++IntPtr++`` and ``++UIntPtr++`` fields are used to store pointers to unmanaged resources and the finalizer will free the unmanaged resource pointed to by the pointer fields. If the garbage collector finalises the object while the managed resources are still in use it could lead to serious, hard to diagnose bug. To prevent this from happening the object should be kept alive by calling ``++GC.KeepAlive(this)++`` in methods calling unmanaged code on this pointers.
We cannot find how to get the original FxCop to report any issue + the description is not precise enough so we cannot find what/how the rule should be implemented.