我的问题:
我需要在指向对象的指针中编码有关对象的附加信息。我认为我可以做的是使用指针的一部分来做到这一点。也就是说,使用几位编码布尔标志。据我所知,Windows内核中某些类型的句柄也是如此。
背景:
我正在编写一个小型内存管理系统,可以垃圾收集未使用的对象。为了减少对象引用的内存消耗并加快复制速度,我想使用带有附加编码数据的指针,例如对象的状态(活动或准备好被收集)、锁定位和可由单个位表示的类似事物。
我的问题:
如何在不实际覆盖指针的重要位的情况下将此类信息编码为 64 位指针?
由于 x64 windows 的地址空间有限,我相信并不是指针的所有 64 位都被使用,所以我相信应该是可以的。但是,我无法找到哪些位窗口实际用于指针,哪些没有。为了澄清,这个问题是关于 64 位窗口上的用户模式。
提前致谢。