Der Treiber für den seriellen Port ist sowas von egal - also selbst das
OS ist egal ob es 32 oder 64 Bit ist. Wenn er einen
COM Port öffnet mit \\.\COMxx und CreateFile(), dann kann er den öffnen. Dabei ist die
WinAPI immer die passende - bei einer 32 Bit Anwendung auf einem 64 Bit
OS halt der
Win32 Layer. Da gibt es grundlegend keine Unterschiede und keine Besonderheiten.
Ich nutze selbst die serielle Schnittstelle und entwickle sogar unter einem 64 Bit Windows mit 32 Bit Delphi eine 32 Bit Windows Anwendung und die läuft komplett ohne Admin Rechte. Selbst Delphi braucht für seinen Debugger bei seiner eigenen Tochterprozess die
UAC zu befragen, das geht so.
Grundlegend würde ich bei der Overlapped Methode vor allem alle Rückgabewerte der
WinAPI Funktionen beobachten und schauen ob du dort entsprechende Fehlerhinweise bekommst. Meine serielle Kommunikation ist simpel gehalten: In einem zentralen Thread wird die I/O gehandhabt Sleep und GetCommState() um zu schauen ob Daten anliegen. Da du bei OVERLAPPED ja Events und ähnliches anlegen musst, hast du schonmal deren Anlegung geprüft und verfolgt? Vor allem Rückgabewerte beachten...