ループ内の物理デバイスパス上のCreateFileを呼び出します
-
19-09-2019 - |
質問
私は(つまり、\。\ PhysicalDrive1、その後、\。\ PhysicalDrive2、...)行うのPInvoke経由して、返されたハンドルを使用して、いくつかのループを別の物理デバイスのパスに毎回のCreateFileを呼び出しているいくつかのC#のコードを持っています他の低レベルのウィンドウのもの。ループの終わりには、ハンドルにCloseHandleをを呼び出します。
デバッグしている間、私は、ハンドルのint型の値は、それぞれ同じループを通過したことに気づきました。私は、または予期しない(ハンドルが最後のパスをリリースしていなかった)(Windowsはちょうどハンドルを再利用している)、これはどちらかと予想されて見ることができます。
だから、僕はこれは期待(あるいは、少なくともではない間違った)されているかどうかを検証したい行動ます。
解決
ハンドルは、カーネル内のいくつかのテーブルにいくつかのエントリにだけインデックスです。あなたが繰り返しハンドルを開閉している場合、それはテーブルの正確な同じエントリので、同じインデックスを取得するために、それは完全に可能です。
これは、実装固有のものであり、任意の新しいリリース、サービスパック、またはQFEを変更できることに注意してください。
所属していません StackOverflow