Question

J'ai un code C # qui appelle CreateFile sur un chemin de périphérique physique différent à chaque fois par une boucle (ie \. \ PhysicalDrive1, puis \. \ PhysicalDrive2, ...) via Pinvoke puis en utilisant la poignée retourné faire un peu d'autres fenêtres à faible niveau des choses. A la fin de la boucle, il appelle CloseHandle sur la poignée.

Lors du débogage je remarquai que la valeur int de la poignée a été le même à chaque passage dans la boucle. Je peux voir ceci étant soit prévu (fenêtres est juste réutilisent la poignée) ou inattendu (la poignée n'a pas été libéré la dernière passe).

Je veux juste vérifier si cela est prévu (ou du moins pas incorrect) le comportement.

Était-ce utile?

La solution

Une poignée est juste un index pour une entrée dans une table dans le noyau. Si vous ouvrez et la fermeture d'une poignée à plusieurs reprises, il est tout à fait possible pour elle d'obtenir l'entrée exacte même dans le tableau et donc le même indice.

Sachez que cette mise en œuvre est spécifique et peut changer avec une nouvelle version, service pack, ou QFE.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top