在循环中的物理设备路径上调用CreateFile

时间:2009-11-12 18:11:24

标签: c# winapi pinvoke createfile

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

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

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

1 个答案:

答案 0 :(得分:3)

句柄只是内核中某些表的某些入口的索引。如果您反复打开和关闭句柄,则完全可以在表中获得完全相同的条目,因此索引相同。

请注意,这是特定于实现的,可以随任何新版本,Service Pack或QFE更改。