1

我有一些 C# 代码每次通过循环(即 \.\PhysicalDrive1,然后 \.\PhysicalDrive2,...)通过 pInvoke 调用不同物理设备路径上的 CreateFile,然后使用返回的句柄执行其他一些低级别窗户的东西。在循环结束时,它在句柄上调用 CloseHandle。

在调试时,我注意到句柄的 int 值在每次循环中都是相同的。我可以看到这是预期的(windows 只是重用句柄)或意外的(句柄未在最后一次释放)。

所以我只想验证这是否是预期的(或至少不是不正确的)行为。

4

1 回答 1

3

句柄只是内核中某个表的某个条目的索引。如果您反复打开和关闭一个句柄,它完全有可能在表中获得完全相同的条目,从而获得相同的索引。

请注意,这是特定于实现的,并且可以随任何新版本、服务包或 QFE 发生变化。

于 2009-11-12T18:15:56.053 回答