Es gibt keinen Grund, einen Zeiger auf das Timer-
Handle in TDescriptor zu speichern. Nimm das
Handle selbst.
Der letzte Parameter von DeleteTimerQueueTimer sollte wahrscheinlich 0 sein, INVALID_HANDLE_VALUE blockiert. Auf der anderen Seite weiß ich nicht, ob man aus dem Callback überhaupt seinen eigenen Timer löschen kann.