Frage

Ich habe einige C # -Code, die Createfile auf einem anderen physischen Gerätepfad jedes Mal durch eine Schleife ruft (dh \. \ PhysicalDrive1, dann \. \ PhysicalDrive2, ...) über PInvoke und dann die zurückgegebene Handle mit tun einige andere Low Level-Fenster stopfen. Am Ende der Schleife nennt es Closehandle auf dem Griff.

Während des Debuggen bemerkte ich, dass der int-Wert des Griffs das gleiche war jeder Durchlauf durch die Schleife. Ich kann dies entweder sehen wird erwartet (Fenster wird die Wiederverwendung nur den Griff) oder unerwartete (der Griff wurde nicht zuletzt Pass freigegeben).

Also ich will nur, um zu überprüfen, ob dies zu erwarten ist (oder zumindest nicht falsch) Verhalten.

War es hilfreich?

Lösung

Ein Handle ist nur ein Index zu einem gewissen Eintrag in eine Tabelle im Kernel. Wenn Sie das Öffnen und Schließen einen Griffes wiederholt sind, ist es durchaus möglich, dass es genau die gleichen Eintrag in der Tabelle zu erhalten und damit den gleichen Index.

Beachten Sie, dass diese Implementierung spezifisch ist, und kann mit jedem neuen Release, Service Pack ändern oder QFE.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top