public NativeCommon.IFabricAsyncOperationContext BeginStartChaos(
            IntPtr startChaosDescription,
            uint timeoutMilliseconds,
            NativeCommon.IFabricAsyncOperationCallback callback)
        {
            var      managedStartChaosDescription = StartChaosDescription.CreateFromNative(startChaosDescription);
            TimeSpan managedTimeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

            return(Utility.WrapNativeAsyncMethodImplementation(
                       (cancellationToken) =>
                       this.StartChaosAsync(
                           managedStartChaosDescription,
                           managedTimeout,
                           cancellationToken),
                       callback,
                       "FaultAnalysisServiceBroker.StartChaosAsync",
                       ThreadErrorMessageSetter));
        }