CX Framework
Cross-platform C utility framework
Loading...
Searching...
No Matches
win_sys_process.h
1#pragma once
2
3// Windows-internal declarations for the process backend. The platform contract itself lives in
4// cx/sys/process_private.h, which tail-includes this file.
5
6#include "cx/sys/process.h"
7
8// Vista and later. Succeeds against far more processes than PROCESS_QUERY_INFORMATION does,
9// and covers what the per-process statistics calls need, so procOpen asks for it first and
10// falls back only if it is refused. It is a plain constant rather than an import, so naming it
11// costs nothing on an OS that does not recognize it -- OpenProcess simply fails and the
12// fallback runs.
13//
14// Deliberately cx's own name rather than the SDK's. This header is reached through
15// process_private.h, whose public half must never include <Windows.h>, so anything defined here
16// lands before the SDK's own definition rather than after it -- an #ifndef guard cannot help,
17// and the SDK spells the value (0x1000) where this would spell it 0x1000, which is a different
18// token sequence and so a C4005 macro redefinition. Under /WX that fails the build, and only on
19// the SDK versions that declare it, which is why it survived one toolchain and broke another.
20#define CX_PROCESS_QUERY_LIMITED_INFORMATION 0x1000
Launching, inspecting and controlling operating system processes.