Para voce ter a certeza de que o problema nao sao os parametros da CreatFile, etc.. faça o seguinte teste
* Coloque na funcao que voce esta chamando na "mao" a COM, coloque Hardcode mesmo, "COM1" sem variaveis. isso pra voce esta funcionando?
Minha duvida é se seu metodo de abertura de porta esta "ok" independente da leitura que voce faz do registro pra descobrir as portas seriais.
Claudenir C. Andrade