Hmm..
Du hast doch gesagt, das dein Prozess die Handles verbraucht und zu deinem Prozess gehören. Also werden sie auch in deinem Prozess erzeugt. Und somit bist du auch für deren Freigabe zuständig. Also irgendwas stimmt da nicht.
Leider nicht immer...
Es gibt Windows-APIs welche manchmal ihre intern erzeugten Handles nicht wieder freigeben oder zu exceptions führen.
Dadurch, dass deine App diese
API aufruft, wird durch das Laden der zugehörigen
DLL diese in deinen Prozess verfrachtet und seitens Windows als deine Handles/Exceptions angenommen.
Dies ist bei Treibern nicht anders...