Привет господа-хорошие Посмотрите плиз код, есть ли тут ошибка? А то при отправке чексум портится. Код (Text): push buflen call _AllocateHeap mov esi,eax push 0 push 0 push buflen push esi lea eax,iosb push eax push 0 push 0 push 0 push hFile call ZwReadFile .while buflen != 0 mov edi,1460 .IF buflen < edi mov edi,buflen .ENDIF push 0 push edi push esi push sock call send .if eax == -1 .break .endif sub buflen,eax .endw push esi call _FreeHeap
Код (Text): push esi ; <--- сразу в стек, так как по ходу изменять значение будем. .while buflen != 0 mov edi,1460 .IF buflen < edi mov edi,buflen .ENDIF push 0 push edi push esi push sock call send .if eax == -1 .break .endif sub buflen,eax add esi, eax ; <--- сместим указатель на буфер, иначе одни и те же данные посылать будем .endw call _FreeHeap
n0name Правильно конечно подсказал..., но гдет ещё ошибка должна быть. Файл весит 21 969 байт а потом когда залитый файл скачиваю обратно - уже весит 21 946 байт Получаю размер файла вроде-бы правильно: Код (Text): push 00000020h;FILE_SYNCHRONOUS_IO_NONALERT push FILE_SHARE_READ lea eax,iosb push eax lea eax,oa push eax push FILE_READ_DATA + SYNCHRONIZE lea eax,hFile push eax call ZwOpenFile or eax,eax jnz _exit push 5;FileStandardInformation push sizeof fsi lea eax,fsi push eax lea ecx,iosb push ecx push hFile call ZwQueryInformationFile or eax,eax jnz _exit mov eax,fsi.EndOfFile.LowPart inc eax mov buflen,eax
Всё, разобрался господа. Одын совет, при работе с ftp всегда внимательно прочтите rfc, а то будите сидеть и тупить как я, из за того что TYPE I забыл отправить