如何在 Windows 中查找信号量对象的大小?
我尝试使用 sizeof()
但我们不能将信号量对象的名称作为 sizeof 的参数。它必须是 handle 。 sizeof(HANDLE)
为我们提供了句柄的大小,而不是信号量。
最佳答案
这就是所谓的“不透明句柄”。没有办法知道它到底有多大,它包含什么或者任何功能在内部是如何工作的。这使 Microsoft 能够在不担心破坏现有代码的情况下,完全重写每个新版本 Windows 的实现。这与具有类的公共(public)和私有(private)接口(interface)的概念类似。由于我们不在 Windows 内核上工作,所以我们只能看到公共(public)接口(interface)。
更新:
通过创建一堆并监控您在 Process Explorer 中的内存使用情况,可能可以大致了解它们有多大。 .但是,由于它们很有可能存在于内核中而不是用户空间中,因此它可能根本不会出现。在任何情况下,我们都不保证任何其他版本的 Windows,过去或将来,包括补丁/服务包。
关于windows - Windows信号量对象的大小是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7789652/