typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
DWORD ControlFlags;
union {
DWORD CpuRate;
DWORD Weight;
struct {
WORD MinRate;
WORD MaxRate;
};
};
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
https://msdn.microsoft.com/en-us/library/windows/desktop/hh448384.aspx
在上面的结构中,我如何访问/更改 MaxRate?我这样得到 ControlFlags:
JOBOBJECT_CPU_RATE_CONTROL_INFORMATION cpu;
cpu.ControlFlags = JOB_OBJECT_CPU_RATE_CONTROL_HARD_CAP;
最佳答案
在我复制的 winnt.h
头文件中,结构定义如下:
typedef struct _JOBOBJECT_CPU_RATE_CONTROL_INFORMATION {
DWORD ControlFlags;
union {
DWORD CpuRate;
DWORD Weight;
};
} JOBOBJECT_CPU_RATE_CONTROL_INFORMATION, *PJOBOBJECT_CPU_RATE_CONTROL_INFORMATION;
确实没有MinRate
或MaxRate
。我的猜测是,它们可能已添加到某些更高版本的 SDK 中(目前我手边只有 VC2013)。
考虑获取更新的 SDK 拷贝。同时,LOWORD(CpuRate)
和 HIWORD(CpuRate)
应该可以。
关于c++ - 在 union 中访问结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39181940/