PROCESS_EXTENDED_BASIC_INFORMATION结构中标志的含义?

时间:2017-11-15 06:18:02

标签: c windows winapi kernel

有人可以解释PROCESS_EXTENDED_BASIC_INFORMATION中所有这些位代表什么吗?

typedef struct _PROCESS_EXTENDED_BASIC_INFORMATION {
    SIZE_T Size;    // Ignored as input, written with structure size on output
    PROCESS_BASIC_INFORMATION BasicInfo;
    union {
        ULONG Flags;
        struct {
            ULONG IsProtectedProcess : 1;
            ULONG IsWow64Process : 1;
            ULONG IsProcessDeleting : 1;
            ULONG IsCrossSessionCreate : 1;
            ULONG IsFrozen : 1;
            ULONG IsBackground : 1;
            ULONG IsStronglyNamed : 1;
            ULONG IsSecureProcess : 1;
            ULONG IsSubsystemProcess : 1;
            ULONG SpareBits : 23;
        } DUMMYSTRUCTNAME;
    } DUMMYUNIONNAME;
} PROCESS_EXTENDED_BASIC_INFORMATION, *PPROCESS_EXTENDED_BASIC_INFORMATION;

Microsoft在this article中显示了此struct,但没有解释这些标记代表什么。

1 个答案:

答案 0 :(得分:1)

以下是Microsoft可能不希望您使用的高度未记录的内容。这样做需要您自担风险。

PS。但是,你实际上有一个有趣的问题。所以仅适用于普通教育:

  • IsProtectedProcess (0x001)受系统保护的进程:其他进程无法读取/写入其VM或将远程线程注入其中。 (旧式。如果我没有误会,它可以从XP SP3开始使用。)

  • IsWow64Process (0x002)WOW64进程,或在64位Windows上运行的32位进程。

  • IsProcessDeleting (0x004)进程已终止,但是有一个打开的句柄 - 一个非常短暂的阶段。 (只有当你是内核驱动程序时才应该对你感兴趣。)

  • IsCrossSessionCreate (0x008)跨终端会话创建了进程。 Ex:请阅读CreateProcessAsUser了解详情。

  • IsFrozen (0x010)Immersive process已暂停(仅适用于UWP进程。)例如,如果用户将其移至后台或最小化,则可暂停沉浸式进程它。主要用于省电。 More info

  • IsBackground (0x020)沉浸式处理处于后台任务模式。 UWP流程可能会暂时切换为执行background task。主要用于省电。

  • IsStronglyNamed (0x040)UWP强名称进程。 UWP包经过数字签名。可以跟踪对包内文件的任何修改。 这通常意味着如果包签名被破坏,UWP应用程序将无法启动。

  • IsSecureProcess (0x080)Isolated User Mode进程 - Windows 10中的新安全模式,对可以“点击”此过程的内容有更严格的限制。

  • IsSubsystemProcess (0x100)当进程子系统的类型不是Win32时设置(如* NIX,如Ubuntu)。是的,你读得对,你可以{{ 3}}本地在Windows 10上。(run LinuxRef1。)

PS2。我愿意接受更正,如果有的话......