¿Te funciona en Windows 2000 y no en XP? Que raro ... ¿Que es lo que hace exactamente ese codigo?
En Windows se utiliza CreateFile para abrir el puerto, en la descripcion de esa funcion (en la MSDN,
http://msdn.microsoft.com/library/en...createfile.asp) hay un link hacia un capitulo llamado Communications, eso es lo que necesitas para Windows:
http://msdn.microsoft.com/library/en..._resources.asp