internal static unsafe InvokeDataLossDescription CreateFromNative(IntPtr nativeRaw)
        {
            NativeTypes.FABRIC_START_PARTITON_DATA_LOSS_DESCRIPTION native = *(NativeTypes.FABRIC_START_PARTITON_DATA_LOSS_DESCRIPTION *)nativeRaw;

            Guid operationId = native.OperationId;

            NativeTypes.FABRIC_PARTITION_SELECTOR nativePartitionSelector = *(NativeTypes.FABRIC_PARTITION_SELECTOR *)native.PartitionSelector;

            PartitionSelector partitionSelector =
                PartitionSelector.CreateFromNative(nativePartitionSelector);

            return(new InvokeDataLossDescription(operationId, partitionSelector, (DataLossMode)native.DataLossMode));
        }
        internal static unsafe RestartPartitionDescription CreateFromNative(IntPtr nativeRaw)
        {
            NativeTypes.FABRIC_START_PARTITION_RESTART_DESCRIPTION native = *(NativeTypes.FABRIC_START_PARTITION_RESTART_DESCRIPTION *)nativeRaw;

            Guid operationId = native.OperationId;

            NativeTypes.FABRIC_PARTITION_SELECTOR nativePartitionSelector = *(NativeTypes.FABRIC_PARTITION_SELECTOR *)native.PartitionSelector;

            PartitionSelector partitionSelector =
                PartitionSelector.CreateFromNative(nativePartitionSelector);

            return(new RestartPartitionDescription(operationId, partitionSelector, (RestartPartitionMode)native.RestartPartitionMode));
        }
        internal static unsafe InvokeQuorumLossDescription CreateFromNative(IntPtr nativeRaw)
        {
            NativeTypes.FABRIC_START_PARTITION_QUORUM_LOSS_DESCRIPTION native = *(NativeTypes.FABRIC_START_PARTITION_QUORUM_LOSS_DESCRIPTION *)nativeRaw;

            Guid operationId = native.OperationId;

            NativeTypes.FABRIC_PARTITION_SELECTOR nativePartitionSelector = *(NativeTypes.FABRIC_PARTITION_SELECTOR *)native.PartitionSelector;

            PartitionSelector partitionSelector =
                PartitionSelector.CreateFromNative(nativePartitionSelector);

            TimeSpan quorumLossDuration = TimeSpan.FromMilliseconds(native.QuorumLossDurationInMilliSeconds);

            return(new InvokeQuorumLossDescription(operationId, partitionSelector, (QuorumLossMode)native.QuorumLossMode, quorumLossDuration));
        }