Как записать на дискету ее образ из файла под XP

Тема в разделе "WASM.WIN32", создана пользователем Recover, 2 окт 2004.

  1. Recover

    Recover New Member

    Публикаций:
    0
    Регистрация:
    2 окт 2004
    Сообщения:
    1
    В XP cчитать образ дискеты и записать его в файл очень просто:



    ___start:

    invoke VirtualAlloc,0,512*80*18*2,MEM_COMMIT,PAGE_READWRITE ; буфер обязательно должен быть выравнен на 512

    mov hmem,eax

    invoke CreateFile,offset device,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NOR MAL,0

    invoke ReadFile,eax,hmem,512*80*18*2,offset trash,0



    invoke CreateFile,offset outfile,GENERIC_WRITE,FILE_SHARE_WRITE,0,CREATE_ALWAYS,FILE_ATTRIBUTE_ NORMAL,0

    invoke WriteFile,eax,hmem,512*80*18*2,offset trash,0

    invoke ExitProcess,0



    end ___start



    А вот записать файл образа на дискету не получается.

    Этот код не работает:

    invoke CreateFile,offset device,GENERIC_WRITE,0,0,CREATE_NEW,FILE_ATTRIBUTE_NORMAL,0

    invoke WriteFile,eax,hmem,512*80*18*2,offset trash,0



    Может всезнающий ALL подскажет где грабли?
     
  2. dragon

    dragon New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2002
    Сообщения:
    84
    Адрес:
    Питер
    CREATE_NEW то зачем. Поставь OPEN_EXISTING.
     
  3. khv_test

    khv_test New Member

    Публикаций:
    0
    Регистрация:
    30 июн 2004
    Сообщения:
    135
    в аттаче прога я писал чтоб занулить дискеты под НТ.



    надо захвитить девайс..

    if(DeviceIoControl(hDisk,FSCTL_LOCK_VOLUME,NULL,NULL,NULL,NULL,&bytes,NULL))

    записать

    а потом освободить..

    DeviceIoControl(hDisk,FSCTL_UNLOCK_VOLUME,NULL,NULL,NULL,NULL,&bytes,NULL);



    [​IMG] _1841817105__zlop_v1.0.zip
     
  4. CARDINAL

    CARDINAL Member

    Публикаций:
    0
    Регистрация:
    23 янв 2004
    Сообщения:
    551
    Адрес:
    Moscow
    khv_test

    Слухай, чего то прикольный у тя ник, ты случаем не из Хабаровска ???