internal static unsafe ProcessDebugParameters CreateFromNative(IntPtr nativePtr) { ReleaseAssert.AssertIfNot(nativePtr != IntPtr.Zero, "ProcessDebugParameters.CreateFromNative() has null pointer."); var nativeParameters = *((NativeTypes.FABRIC_PROCESS_DEBUG_PARAMETERS *)nativePtr); var debugParams = new ProcessDebugParameters { ExePath = NativeTypes.FromNativeString(nativeParameters.ExePath), Arguments = NativeTypes.FromNativeString(nativeParameters.Arguments), LockFile = NativeTypes.FromNativeString(nativeParameters.LockFile), WorkingFolder = NativeTypes.FromNativeString(nativeParameters.WorkingFolder), DebugParametersFile = NativeTypes.FromNativeString(nativeParameters.DebugParametersFile), EnvVars = NativeTypes.FromNativeStringPairList(nativeParameters.EnvVars), ContainerEntryPoints = NativeTypes.FromNativeStringList(nativeParameters.ContainerEntryPoints), ContainerMountedVolumes = NativeTypes.FromNativeStringList(nativeParameters.ContainerMountedVolumes), ContainerEnvironmentBlock = NativeTypes.FromNativeStringList(nativeParameters.ContainerEnvironmentBlock) }; if (nativeParameters.Reserved != null) { var nativeParametersx1 = *((NativeTypes.FABRIC_PROCESS_DEBUG_PARAMETERS_EX1 *)nativeParameters.Reserved); debugParams.ContainerLabels = NativeTypes.FromNativeStringList(nativeParametersx1.ContainerLabels); } return(debugParams); }
internal static unsafe ProcessDescription CreateFromNative(IntPtr nativePtr) { ReleaseAssert.AssertIfNot(nativePtr != IntPtr.Zero, "ProcessDescription.CreateFromNative() has null pointer."); var nativeDescription = *((NativeTypes.FABRIC_PROCESS_DESCRIPTION *)nativePtr); IDictionary <string, string> encryptedEnvironmentVariables = new Dictionary <string, string>(); if (nativeDescription.Reserved != IntPtr.Zero) { var ex1 = (NativeTypes.FABRIC_PROCESS_DESCRIPTION_EX1 *)nativeDescription.Reserved; encryptedEnvironmentVariables = NativeTypes.FromNativeStringPairList(ex1->EncryptedEnvironmentVariables); } return(new ProcessDescription { ExePath = NativeTypes.FromNativeString(nativeDescription.ExePath), Arguments = NativeTypes.FromNativeString(nativeDescription.Arguments), StartInDirectory = NativeTypes.FromNativeString(nativeDescription.StartInDirectory), EnvVars = NativeTypes.FromNativeStringPairList(nativeDescription.EnvVars), AppDirectory = NativeTypes.FromNativeString(nativeDescription.AppDirectory), TempDirectory = NativeTypes.FromNativeString(nativeDescription.TempDirectory), WorkDirectory = NativeTypes.FromNativeString(nativeDescription.WorkDirectory), LogDirectory = NativeTypes.FromNativeString(nativeDescription.LogDirectory), RedirectConsole = NativeTypes.FromBOOLEAN(nativeDescription.RedirectConsole), RedirectedConsoleFileNamePrefix = NativeTypes.FromNativeString(nativeDescription.RedirectedConsoleFileNamePrefix), ConsoleRedirectionFileRetentionCount = nativeDescription.ConsoleRedirectionFileRetentionCount, ConsoleRedirectionFileMaxSizeInKb = nativeDescription.ConsoleRedirectionFileMaxSizeInKb, ShowNoWindow = NativeTypes.FromBOOLEAN(nativeDescription.ShowNoWindow), AllowChildProcessDetach = NativeTypes.FromBOOLEAN(nativeDescription.AllowChildProcessDetach), NotAttachedToJob = NativeTypes.FromBOOLEAN(nativeDescription.NotAttachedToJob), DebugParameters = ProcessDebugParameters.CreateFromNative(nativeDescription.DebugParameters), ResourceGovernancePolicy = ResourceGovernancePolicyDescription.CreateFromNative(nativeDescription.ResourceGovernancePolicy), ServicePackageResourceGovernance = ServicePackageResourceGovernanceDescription.CreateFromNative(nativeDescription.ServicePackageResourceGovernance), CgroupName = NativeTypes.FromNativeString(nativeDescription.CgroupName), IsHostedServiceProcess = NativeTypes.FromBOOLEAN(nativeDescription.IsHostedServiceProcess), EncryptedEnvironmentVariables = encryptedEnvironmentVariables }); }