Здравствуйте, WM, Вы писали:
WM>Это не проблемма с памятью.
WM>Виснет следующим образом:
WM>- системный буфер, связанный с портом, информацию имеет, однако при считывании считывается ноль байт.
WM>Такие дела 
Попробуй побайтно принимать примерно вот так:
(на Делфях)
while(Status.CbInQue<>0) do
begin
ReadFile(HComm,B,1,BytesToRead,nil);
Buffer[CPosition]:=B[0];
end;