Я хотел бы сгенерировать большой файл размером 250 мб,я планирую сделать с помощью цикличного использования функции WriteFile,но проблема втом что функция отрабатывает один раз,у функции есть последний аргумент указатель на структуру OVERLAPPED может с ним нужно что то сделать Код (ASM): format PE64 gui include 'win64a.inc' section '.text' code readable executable sub rsp,8 invoke CreateFileA,addr namef,GENERIC_ALL,FILE_SHARE_WRITE,0,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0 invoke,WriteFile,rax,addr bff,1024,addr sb,0 invoke,WriteFile,rax,addr bff,1024,addr sb,0 invoke ExitProcess,0 section '.data' data readable writeable bff db 1024 dup(0) namef db 'def.bin',0 sb dd 0 section '.idata' import data readable writeable library kernel32,'kernel32.dll',\ user32,'user32.dll' include 'api\kernel32.inc' include 'api\user32.inc'
Если нужен пустой файл с нулевыми байтами то не нужно писать в цикле, а нужно использовать SetEndOfFile: Код (ASM): invoke CreateFileA,addr namef,GENERIC_ALL,FILE_SHARE_WRITE,0,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0 mov r13, rax invoke SetFilePointer, rax, 0xFA00000, 0, 0 invoke SetEndOfFile, r13 invoke CloseHandle, r13