/// <nodoc /> public SandboxConfiguration(ISandboxConfiguration template, PathRemapper pathRemapper) { Contract.Assume(template != null); m_unsafeSandboxConfig = new UnsafeSandboxConfiguration(template.UnsafeSandboxConfiguration); DebugInstantPipOutputs = template.DebugInstantPipOutputs; BreakOnUnexpectedFileAccess = template.BreakOnUnexpectedFileAccess; FileAccessIgnoreCodeCoverage = template.FileAccessIgnoreCodeCoverage; FailUnexpectedFileAccesses = template.FailUnexpectedFileAccesses; DefaultTimeout = template.DefaultTimeout; DefaultWarningTimeout = template.DefaultWarningTimeout; TimeoutMultiplier = template.TimeoutMultiplier; WarningTimeoutMultiplier = template.WarningTimeoutMultiplier; TimeoutDumpDirectory = pathRemapper.Remap(template.TimeoutDumpDirectory); LogObservedFileAccesses = template.LogObservedFileAccesses; LogProcesses = template.LogProcesses; LogProcessData = template.LogProcessData; LogFileAccessTables = template.LogFileAccessTables; OutputReportingMode = template.OutputReportingMode; FileSystemMode = template.FileSystemMode; ForceReadOnlyForRequestedReadWrite = template.ForceReadOnlyForRequestedReadWrite; FlushPageCacheToFileSystemOnStoringOutputsToCache = template.FlushPageCacheToFileSystemOnStoringOutputsToCache; NormalizeReadTimestamps = template.NormalizeReadTimestamps; UseLargeNtClosePreallocatedList = template.UseLargeNtClosePreallocatedList; UseExtraThreadToDrainNtClose = template.UseExtraThreadToDrainNtClose; MaskUntrackedAccesses = template.MaskUntrackedAccesses; LogProcessDetouringStatus = template.LogProcessDetouringStatus; HardExitOnErrorInDetours = template.HardExitOnErrorInDetours; CheckDetoursMessageCount = template.CheckDetoursMessageCount; AllowInternalDetoursErrorNotificationFile = template.AllowInternalDetoursErrorNotificationFile; CrashOnCBSSOOMError = template.CrashOnCBSSOOMError; EnforceAccessPoliciesOnDirectoryCreation = template.EnforceAccessPoliciesOnDirectoryCreation; NumberOfKextConnections = template.NumberOfKextConnections; ReportQueueSizeMb = template.ReportQueueSizeMb; }
/// <summary> /// Creates a context. All <see cref="Counters"/> are initially zero and will increase as accesses are reported. /// </summary> public FileAccessReportingContext(LoggingContext loggingContext, PipExecutionContext context, ISandboxConfiguration config, Process pip, bool reportWhitelistedAccesses, FileAccessWhitelist whitelist = null) { Contract.Requires(loggingContext != null); Contract.Requires(context != null); Contract.Requires(config != null); Contract.Requires(pip != null); m_loggingContext = loggingContext; m_context = context; m_config = config; m_pip = pip; m_reportWhitelistedAccesses = reportWhitelistedAccesses; m_fileAccessWhitelist = whitelist; }
/// <summary> /// Constructor. /// </summary> public LocalWorkerWithRemoting( IScheduleConfiguration scheduleConfig, ISandboxConfiguration sandboxConfig, IPipQueue pipQueue, IDetoursEventListener detoursListener, PipExecutionContext pipExecutionContext) : base(scheduleConfig, pipQueue, detoursListener, pipExecutionContext) { m_localExecutionSemaphore = new SemaphoreSlim(scheduleConfig.MaxProcesses, scheduleConfig.MaxProcesses); m_remotingThreshold = (int)(scheduleConfig.MaxProcesses * scheduleConfig.RemotingThresholdMultiplier); m_processCanRunRemoteTags = scheduleConfig.ProcessCanRunRemoteTags.Select(t => StringTable.AddString(t)).ToHashSet(); m_processMustRunLocalTags = scheduleConfig.ProcessMustRunLocalTags.Select(t => StringTable.AddString(t)).ToHashSet(); m_sandboxConfig = sandboxConfig; }
/// <nodoc /> public SandboxConfiguration(ISandboxConfiguration template, PathRemapper pathRemapper) { Contract.Assume(template != null); m_unsafeSandboxConfig = new UnsafeSandboxConfiguration(template.UnsafeSandboxConfiguration); BreakOnUnexpectedFileAccess = template.BreakOnUnexpectedFileAccess; FileAccessIgnoreCodeCoverage = template.FileAccessIgnoreCodeCoverage; FailUnexpectedFileAccesses = template.FailUnexpectedFileAccesses; DefaultTimeout = template.DefaultTimeout; DefaultWarningTimeout = template.DefaultWarningTimeout; TimeoutMultiplier = template.TimeoutMultiplier; WarningTimeoutMultiplier = template.WarningTimeoutMultiplier; TimeoutDumpDirectory = pathRemapper.Remap(template.TimeoutDumpDirectory); SurvivingPipProcessChildrenDumpDirectory = pathRemapper.Remap(template.SurvivingPipProcessChildrenDumpDirectory); LogObservedFileAccesses = template.LogObservedFileAccesses; LogProcesses = template.LogProcesses; LogProcessData = template.LogProcessData; LogFileAccessTables = template.LogFileAccessTables; OutputReportingMode = template.OutputReportingMode; FileSystemMode = template.FileSystemMode; ForceReadOnlyForRequestedReadWrite = template.ForceReadOnlyForRequestedReadWrite; FlushPageCacheToFileSystemOnStoringOutputsToCache = template.FlushPageCacheToFileSystemOnStoringOutputsToCache; NormalizeReadTimestamps = template.NormalizeReadTimestamps; UseLargeNtClosePreallocatedList = template.UseLargeNtClosePreallocatedList; UseExtraThreadToDrainNtClose = template.UseExtraThreadToDrainNtClose; MaskUntrackedAccesses = template.MaskUntrackedAccesses; LogProcessDetouringStatus = template.LogProcessDetouringStatus; HardExitOnErrorInDetours = template.HardExitOnErrorInDetours; CheckDetoursMessageCount = template.CheckDetoursMessageCount; AllowInternalDetoursErrorNotificationFile = template.AllowInternalDetoursErrorNotificationFile; EnforceAccessPoliciesOnDirectoryCreation = template.EnforceAccessPoliciesOnDirectoryCreation; MeasureProcessCpuTimes = template.MeasureProcessCpuTimes; KextReportQueueSizeMb = template.KextReportQueueSizeMb; KextEnableReportBatching = template.KextEnableReportBatching; KextThrottleCpuUsageBlockThresholdPercent = template.KextThrottleCpuUsageBlockThresholdPercent; KextThrottleCpuUsageWakeupThresholdPercent = template.KextThrottleCpuUsageWakeupThresholdPercent; KextThrottleMinAvailableRamMB = template.KextThrottleMinAvailableRamMB; ContainerConfiguration = new SandboxContainerConfiguration(template.ContainerConfiguration); AdminRequiredProcessExecutionMode = template.AdminRequiredProcessExecutionMode; RedirectedTempFolderRootForVmExecution = pathRemapper.Remap(template.RedirectedTempFolderRootForVmExecution); RetryOnAzureWatsonExitCode = template.RetryOnAzureWatsonExitCode; EnsureTempDirectoriesExistenceBeforePipExecution = template.EnsureTempDirectoriesExistenceBeforePipExecution; GlobalUnsafeUntrackedScopes = pathRemapper.Remap(template.GlobalUnsafeUntrackedScopes); PreserveOutputsForIncrementalTool = template.PreserveOutputsForIncrementalTool; GlobalUnsafePassthroughEnvironmentVariables = new List <string>(template.GlobalUnsafePassthroughEnvironmentVariables); VmConcurrencyLimit = template.VmConcurrencyLimit; DirectoriesToEnableFullReparsePointParsing = pathRemapper.Remap(template.DirectoriesToEnableFullReparsePointParsing); ExplicitlyReportDirectoryProbes = template.ExplicitlyReportDirectoryProbes; }
/// <nodoc /> public SandboxConfiguration(ISandboxConfiguration template, PathRemapper pathRemapper) { Contract.Assume(template != null); m_unsafeSandboxConfig = new UnsafeSandboxConfiguration(template.UnsafeSandboxConfiguration); DebugInstantPipOutputs = template.DebugInstantPipOutputs; BreakOnUnexpectedFileAccess = template.BreakOnUnexpectedFileAccess; FileAccessIgnoreCodeCoverage = template.FileAccessIgnoreCodeCoverage; FailUnexpectedFileAccesses = template.FailUnexpectedFileAccesses; DefaultTimeout = template.DefaultTimeout; DefaultWarningTimeout = template.DefaultWarningTimeout; TimeoutMultiplier = template.TimeoutMultiplier; WarningTimeoutMultiplier = template.WarningTimeoutMultiplier; TimeoutDumpDirectory = pathRemapper.Remap(template.TimeoutDumpDirectory); LogObservedFileAccesses = template.LogObservedFileAccesses; LogProcesses = template.LogProcesses; LogProcessData = template.LogProcessData; LogFileAccessTables = template.LogFileAccessTables; OutputReportingMode = template.OutputReportingMode; FileSystemMode = template.FileSystemMode; ForceReadOnlyForRequestedReadWrite = template.ForceReadOnlyForRequestedReadWrite; FlushPageCacheToFileSystemOnStoringOutputsToCache = template.FlushPageCacheToFileSystemOnStoringOutputsToCache; NormalizeReadTimestamps = template.NormalizeReadTimestamps; UseLargeNtClosePreallocatedList = template.UseLargeNtClosePreallocatedList; UseExtraThreadToDrainNtClose = template.UseExtraThreadToDrainNtClose; MaskUntrackedAccesses = template.MaskUntrackedAccesses; LogProcessDetouringStatus = template.LogProcessDetouringStatus; HardExitOnErrorInDetours = template.HardExitOnErrorInDetours; CheckDetoursMessageCount = template.CheckDetoursMessageCount; AllowInternalDetoursErrorNotificationFile = template.AllowInternalDetoursErrorNotificationFile; EnforceAccessPoliciesOnDirectoryCreation = template.EnforceAccessPoliciesOnDirectoryCreation; KextMeasureProcessCpuTimes = template.KextMeasureProcessCpuTimes; KextReportQueueSizeMb = template.KextReportQueueSizeMb; KextEnableReportBatching = template.KextEnableReportBatching; KextThrottleCpuUsageBlockThresholdPercent = template.KextThrottleCpuUsageBlockThresholdPercent; KextThrottleCpuUsageWakeupThresholdPercent = template.KextThrottleCpuUsageWakeupThresholdPercent; KextThrottleMinAvailableRamMB = template.KextThrottleMinAvailableRamMB; ContainerConfiguration = new SandboxContainerConfiguration(template.ContainerConfiguration); AdminRequiredProcessExecutionMode = template.AdminRequiredProcessExecutionMode; }
protected DatabaseSandboxHandler(ISandboxConfiguration configuration) { _configuration = configuration; }