进程控制参数的注册表值

本文介绍进程控制服务组件的参数。

适用于:  Windows Server 2012R2
原始 KB 编号:   296930

摘要

您可以手动操作用于管理功能或疑难解答的 Process Control Service 注册表值,这些值存储在以下注册表项中:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ProcCon\Parameters

本文介绍以下组件:

  • 进程别名规则
  • 进程执行规则
  • 处理组执行规则

默认进程执行规则字符串

DfltMgmt:REG_SZ:{F0x0,A0x0,P0x8,L0x0,H0x0,S0x0,T0x0,U0x0,C0x0,M0x0,N0x0}

其中:

  • F0x0 是指示此过程执行规则是否由组管理的默认设置。 如果规则在组管理下,则该值在所有情况下都显示为 F0X800。 设置此值时,将管理此过程的组的文本值名称写入以下注册表项:

    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ProcCon\Parameters\ProcessRules\your_process_execution_rule_alias_name\
    • MemberOf:
    • REG_SZ:
    • your_process_group_execution_rule_name
  • A0x0 是处理器相关性的默认设置。 0 值表示未应用任何关系,并且进程可以在系统的任何可用处理器上运行。 所有值都是十六进制格式。 若要手动配置这些值,必须编写使用 API 调用的代码,此过程不在本文的讨论范围之内。

  • P0x8 是进程优先级的默认值。 默认值为普通优先级。 以下优先级/值映射列出了可用的设置,并且所有值均以十六进制表示:

    • P0x18 实时
    • P0xd High
    • P0xa 高于正常
    • P0x8 Normal
    • P0x6 低于正常
    • P0x4 低
  • L0x0 是进程执行规则的最小工作集的默认设置。 值以十进制为单位,转换为十六进制。 例如,你可以将 GUI 接口设置为 10,000,在十进制中为 10,240,000。 相应的注册表项值为 L0x9c4000。 GUI 接口中等于或大于 9999999999 (或 9.31+TB) 的任何条目都将导致"最小工作集必须大于 0 但小于最大工作集"。 错误消息。 同样,等于或大于 0x2540BE3FF的十六进制注册表项在下次使用 GUI 接口时也会导致相同的错误消息。

  • H0x0 是进程执行规则的最大工作集的默认设置。 值以十进制为单位,转换为十六进制。 例如,你可以将 GUI 接口设置为 10,000,小数位数为 10,240,000。 相应的注册表项值为 L0x9c4000。

  • 进程执行规则说明中当前未使用 S0x0、T0x0、U0x0、C0x0、M0x0、N0x0。

默认进程组执行规则字符串

DfltMgmt:REG_SZ:{F0x0,A0x0,P0x8,L0x0,H0x0,S0x5,T0x0,U0x0,C0x0,M0x0,N0x0}

其中:

  • F0x0 涉及各种进程控制参数的几个不同配置。 若要手动配置此值,必须编写使用 API 调用的代码,此过程不在本文的讨论范围之内。

  • A0x0、P0x8、L0x0、H0x0。 这些参数的值的计算方式与本文前面"默认进程执行规则字符串"部分相同。

  • S0x5 是默认的计划类值。 可用值从 0 到 9。 有效值为 S0x0、S0x1、S0x2、....S0x9。

  • T0x0 是"按进程应用用户时间限制:"的默认值。 此值在 GUI 中以 hh:mm:ss 格式指定。 注册表值采用由操作系统计算的十六进制格式。 若要获取十六进制转换,必须创建一个基于代码的方法。 以下代码是示例代码,在编译后,将在以 0:00:00 格式提供输入时执行转换并输出所需的十六进制值。

    Microsoft 提供的编程示例仅用于进行说明,而不提供明示或默示担保。 这包括但不限于适销性或对特定用途的适用性的默示担保。 本文假设您熟悉正在演示的编程语言和用于创建和调试过程的工具。 Microsoft 支持工程师可以帮助解释特定过程的功能,但他们不会修改这些示例以提供新增功能或构建步骤以满足你的特定需要。

    有关可用支持选项以及如何联系 Microsoft 的详细信息,请访问以下 Microsoft 网站:

    全球客户服务电话号码

    输出:

    C:\Projects\timecv\Release>timecv
    Enter time in the following format (hh:mm:ss:) ->2:30:00
    
    Registry value should be 0x14f46b0400
    

    源:

    #include "stdio.h"
    
    int main(int argc, char* argv[])
    {
        __int64i64=0;
        intiHour=0,iMinute=0,iSecond=0;
    
        printf ("Enter time in the following format (hh:mm:ss:) ->");
        scanf ("%i:%i:%i", &iHour,&iMinute,&iSecond);
    
        iHour *= 3600;
        iMinute *= 60;
    
        i64=(iHour+iMinute+iSecond);
        i64*=10000000;
    
        printf ("\nRegistry value should be 0x%I64x\n", i64);
        return 0;
    }
    
  • U0x0 是"应用进程组用户时间限制:"的默认值。 此值的指定和计算方式与前面 T0x0 说明中的相同。

  • C0x0 是"应用进程计数限制"的默认值。 这些值由转换为十六进制的小数输入值的简单转换创建。 十进制数的最大数超过 10 亿个进程。

  • M0x0 是进程已提交内存限制的默认值。 此值是所需值的十六进制转换(以 KB 为单位)。 例如,如果要使用值 10,000,则 GUI 中的注册表值为 (10,000*1,024) 或 10,240,000 转换为 0x9c4000 的十六进制值。

  • N0x0 是进程组已提交内存限制的默认值,其计算方式与前面进程提交的内存限制相同。

备注

进程组执行规则提供四个高级设置选项:

  • 当组中没有进程时结束进程组。
  • 因未处理异常而生。
  • 无提示中断。
  • 断断的确定。

无法在注册表中手动编辑这些项目。 必须通过本文中未介绍的 API 编程调用操作这些值。