2009-11-12 83 views
1

我有一些C#代碼每次通過一個循環在不同的物理設備路徑上調用CreateFile(即\。\ PhysicalDrive1,然後\ \ \ PhysicalDrive2,...)通過pInvoke,然後使用返回的句柄做一些其他低級別的窗口的東西。在循環結束時,它會在句柄上調用CloseHandle。在循環中的物理設備路徑上調用CreateFile

在調試過程中,我發現每次通過循環時句柄的int值都是相同的。我可以看到這是預期的(windows只是重用了句柄)或意外(句柄沒有發佈最後一遍)。

所以我只想驗證這是否是預期的(或至少不是不正確的)行爲。

回答

3

句柄只是一些進入內核某個表的入口。如果您重複打開和關閉句柄,則完全有可能在表格中獲得完全相同的條目,並因此獲得相同的索引。

請注意,這是特定於實現的,可以隨任何新版本,Service Pack或QFE進行更改。

+0

謝謝,那是我的直覺說的,但需要驗證。 – 2009-11-12 18:16:57