有没有办法确定CloseHandle()是否是命名对象的最后一个?

时间:2012-07-23 08:58:45

标签: windows resources

在Windows中创建命名对象时,可以通过调用GetLastError()并检查ERROR_ALREADY_EXISTS来确定对象是否已存在。

有没有办法提出双重问题:我的CloseHandle()最后关闭(句柄)命名资源?

2 个答案:

答案 0 :(得分:2)

不,kernel handles aren't reference-counted。当您致电CloseHandle时,会关闭句柄。

答案 1 :(得分:1)

直接,没有。

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

不,也不是间接,再考虑一下。这只会告诉您,您的句柄无效......自您关闭它以来就已经知道了。