有没有一种方法来确定一个CloseHandle()是否是最后一个命名对象?

Windows中创build一个命名对象时,通过调用GetLastError()并检查ERROR_ALREADY_EXISTS ,可以发现对象是否已经存在。

有没有办法去问这个双重的问题:我的CloseHandle()是最后一个closures(句柄)的命名资源吗?

直接,没有。

但是,您可以通过在CloseHandle之后调用GetHandleInformation来间接获取它。 如果句柄无效,则该函数将失败并将错误编号设置为ERROR_INVALID_HANDLE

不,也不是间接的,再想一想。 这只会告诉你,你的句柄是无效的,自从你关闭它之后你就​​已经知道了。

不, 内核句柄不是引用计数 。 当你调用CloseHandle时,关闭句柄。