Exemplo n.º 1
0
        internal static unsafe ResourceGovernancePolicyDescription CreateFromNative(IntPtr nativePtr)
        {
            ReleaseAssert.AssertIfNot(
                nativePtr != IntPtr.Zero,
                "ResourceGovernancePolicyDescription.CreateFromNative() has null pointer.");

            var nativeDescription = *((NativeTypes.FABRIC_RESOURCE_GOVERNANCE_POLICY_DESCRIPTION *)nativePtr);

            var resourceGovPolicyDesc = new ResourceGovernancePolicyDescription
            {
                CodePackageRef        = NativeTypes.FromNativeString(nativeDescription.CodePackageRef),
                MemoryInMB            = nativeDescription.MemoryInMB,
                MemorySwapInMB        = nativeDescription.MemorySwapInMB,
                MemoryReservationInMB = nativeDescription.MemoryReservationInMB,
                CpuShares             = nativeDescription.CpuShares,
                CpuPercent            = nativeDescription.CpuPercent,
                MaximumIOps           = nativeDescription.MaximumIOps,
                MaximumIOBytesps      = nativeDescription.MaximumIOBytesps,
                BlockIOWeight         = nativeDescription.BlockIOWeight,
                CpusetCpus            = NativeTypes.FromNativeString(nativeDescription.CpusetCpus),
                NanoCpus = nativeDescription.NanoCpus,
                CpuQuota = nativeDescription.CpuQuota
            };

            if (nativeDescription.Reserved != null)
            {
                var nativeParametersEx1 = *((NativeTypes.FABRIC_RESOURCE_GOVERNANCE_POLICY_DESCRIPTION_EX1 *)nativeDescription.Reserved);
                resourceGovPolicyDesc.DiskQuotaInMB    = nativeParametersEx1.DiskQuotaInMB;
                resourceGovPolicyDesc.KernelMemoryInMB = nativeParametersEx1.KernelMemoryInMB;
                resourceGovPolicyDesc.ShmSizeInMB      = nativeParametersEx1.ShmSizeInMB;
            }

            return(resourceGovPolicyDesc);
        }
Exemplo n.º 2
0
        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
            });
        }