internal static unsafe RestartNodeDescriptionUsingNodeName CreateFromNative(IntPtr nativeRaw)
        {
            NativeTypes.FABRIC_RESTART_NODE_DESCRIPTION_USING_NODE_NAME native = *(NativeTypes.FABRIC_RESTART_NODE_DESCRIPTION_USING_NODE_NAME *)nativeRaw;

            string nodeName = NativeTypes.FromNativeString(native.NodeName);

            BigInteger nodeInstance = new BigInteger(native.NodeInstance);

            bool shouldCreateFabricDump = NativeTypes.FromBOOLEAN(native.ShouldCreateFabricDump);

            CompletionMode completionMode = CompletionMode.Invalid;

            switch (native.CompletionMode)
            {
            case NativeTypes.FABRIC_COMPLETION_MODE.FABRIC_COMPLETION_MODE_DO_NOT_VERIFY:
                completionMode = CompletionMode.DoNotVerify;
                break;

            case NativeTypes.FABRIC_COMPLETION_MODE.FABRIC_COMPLETION_MODE_VERIFY:
                completionMode = CompletionMode.Verify;
                break;

            default:
                completionMode = CompletionMode.Invalid;
                break;
            }

            return(new RestartNodeDescriptionUsingNodeName(nodeName, nodeInstance, shouldCreateFabricDump, completionMode));
        }
        internal IntPtr ToNative(PinCollection pinCollection)
        {
            var nativeRestartNodeDescriptionUsingNodeName = new NativeTypes.FABRIC_RESTART_NODE_DESCRIPTION_USING_NODE_NAME();

            nativeRestartNodeDescriptionUsingNodeName.NodeName = pinCollection.AddObject(this.NodeName);

            // make it Utility.To...
            nativeRestartNodeDescriptionUsingNodeName.NodeInstance = (ulong)this.NodeInstance;

            nativeRestartNodeDescriptionUsingNodeName.ShouldCreateFabricDump =
                NativeTypes.ToBOOLEAN(this.ShouldCreateFabricDump);

            switch (this.CompletionMode)
            {
            case CompletionMode.DoNotVerify:
                nativeRestartNodeDescriptionUsingNodeName.CompletionMode = NativeTypes.FABRIC_COMPLETION_MODE.FABRIC_COMPLETION_MODE_DO_NOT_VERIFY;
                break;

            case CompletionMode.Verify:
                nativeRestartNodeDescriptionUsingNodeName.CompletionMode = NativeTypes.FABRIC_COMPLETION_MODE.FABRIC_COMPLETION_MODE_VERIFY;
                break;

            default:
                nativeRestartNodeDescriptionUsingNodeName.CompletionMode = NativeTypes.FABRIC_COMPLETION_MODE.FABRIC_COMPLETION_MODE_INVALID;
                break;
            }

            return(pinCollection.AddBlittable(nativeRestartNodeDescriptionUsingNodeName));
        }