You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Windows 11中为Win32进程自定义任务管理器描述?

Windows 11进程自定义描述机制详解

一、实现原理

Windows 11 22H2及后续版本引入了进程描述覆盖机制,允许应用为同一可执行文件的不同进程设置专属描述,核心通过ntdll.dll导出的SetProcessInformation API实现:

关键细节

  • 需指定ProcessDescriptionInformation作为PROCESS_INFORMATION_CLASS枚举值(对应数值0x22,可通过winternl.h获取官方定义)
  • 传入PROCESS_DESCRIPTION_INFORMATION结构体,其中包含UNICODE_STRING类型的自定义描述字符串
  • 进程可自行调用该API设置自身描述,拥有PROCESS_SET_INFORMATION权限的进程也可为其他进程设置

代码示例(C++)

#include <windows.h>
#include <winternl.h>

typedef struct _PROCESS_DESCRIPTION_INFORMATION {
    UNICODE_STRING Description;
} PROCESS_DESCRIPTION_INFORMATION, *PPROCESS_DESCRIPTION_INFORMATION;

typedef NTSTATUS(NTAPI* pSetProcessInformation)(
    HANDLE ProcessHandle,
    PROCESS_INFORMATION_CLASS ProcessInformationClass,
    PVOID ProcessInformation,
    ULONG ProcessInformationLength
);

int wmain() {
    pSetProcessInformation SetProcessInfo = 
        (pSetProcessInformation)GetProcAddress(GetModuleHandle(L"ntdll.dll"), "SetProcessInformation");
    
    if (!SetProcessInfo) return 1;

    WCHAR customDesc[] = L"我的子进程专属描述";
    UNICODE_STRING descStr;
    RtlInitUnicodeString(&descStr, customDesc);

    PROCESS_DESCRIPTION_INFORMATION info = { descStr };

    NTSTATUS status = SetProcessInfo(
        GetCurrentProcess(),
        ProcessDescriptionInformation,
        &info,
        sizeof(PROCESS_DESCRIPTION_INFORMATION)
    );

    return NT_SUCCESS(status) ? 0 : 1;
}

二、对普通Win32应用的开放性

该机制完全对所有Win32应用开放,适配你的多进程/单可执行文件场景:

  • 子进程启动后可自行调用SetProcessInformation设置专属描述
  • 主进程也可在创建子进程后,通过子进程句柄调用该API为其设置描述
  • 仅Windows 11 22H2及以上版本的任务管理器会读取并显示该自定义描述,Process Explorer等工具暂未适配此信息读取逻辑

内容的提问来源于stack exchange,提问作者Timothy Fries

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 05:32:43