получить название диска

Тема в разделе "WASM.WIN32", создана пользователем nerezus, 6 июн 2007.

  1. nerezus

    nerezus New Member

    Публикаций:
    0
    Регистрация:
    23 сен 2006
    Сообщения:
    89
    Ну типа метку тома.
    Собственно как? =)
    Подскажите апи.
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    BOOL GetVolumeInformation(

    LPCTSTR lpRootPathName, // address of root directory of the file system
    LPTSTR lpVolumeNameBuffer, // address of name of the volume
    DWORD nVolumeNameSize, // length of lpVolumeNameBuffer
    LPDWORD lpVolumeSerialNumber, // address of volume serial number
    LPDWORD lpMaximumComponentLength, // address of system's maximum filename length
    LPDWORD lpFileSystemFlags, // address of file system flags
    LPTSTR lpFileSystemNameBuffer, // address of name of file system
    DWORD nFileSystemNameSize // length of lpFileSystemNameBuffer
    );
     
  3. nerezus

    nerezus New Member

    Публикаций:
    0
    Регистрация:
    23 сен 2006
    Сообщения:
    89
    Код (Text):
    1. #include <windows.h>
    2.  
    3.  
    4. int main(int argc, char* argv[])
    5. {
    6.     char buff[1024];
    7.     GetVolumeInformation("C:\\", buff, sizeof(buff)/sizeof(char), 0, 0, 0, 0, 0);
    8.     printf("%s", buff);
    9.     Sleep(5000);
    10.     return 0;
    11. }
    Пашет.

    На асме же на GetVolumeInformation падает =\

    Код (Text):
    1. .386
    2.       .model flat, stdcall
    3.       option casemap :none   ; case sensitive
    4.  
    5.       include \masm32\include\windows.inc
    6.       include \masm32\include\gdi32.inc
    7.       include \masm32\include\user32.inc
    8.       include \masm32\include\kernel32.inc
    9.  
    10.       includelib \masm32\lib\gdi32.lib
    11.       includelib \masm32\lib\user32.lib
    12.       includelib \masm32\lib\kernel32.lib
    13.      
    14.   .data
    15.     disk db "C:\\", 0
    16.    
    17.   .data?
    18.   buff db 1000h dup (?)
    19.  
    20.   .code
    21.   start:
    22.     ;GetVolumeInformation("C:\\", buff, sizeof(buff)/sizeof(char), 0, 0, 0, 0, 0);
    23.     invoke GetVolumeInformation, offset disk, offset buff, 1000h, 0, 0, 0, 0, 0
    24.     ;printf("%s", buff);
    25.     ;Sleep(5000);
    26.   end start
     
  4. nerezus

    nerezus New Member

    Публикаций:
    0
    Регистрация:
    23 сен 2006
    Сообщения:
    89
    invoke GetVolumeInformation, offset disk, 0, 0, 0, 0, 0, 0, 0
    и так даже падает
     
  5. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    нафиг \\ ?
     
  6. nerezus

    nerezus New Member

    Публикаций:
    0
    Регистрация:
    23 сен 2006
    Сообщения:
    89
    done =]