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

Discussion in 'WASM.WIN32' started by nerezus, Jun 6, 2007.

  1. nerezus

    nerezus New Member

    Blog Posts:
    0
    Joined:
    Sep 23, 2006
    Messages:
    89
    Ну типа метку тома.
    Собственно как? =)
    Подскажите апи.
     
  2. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    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

    Blog Posts:
    0
    Joined:
    Sep 23, 2006
    Messages:
    89
    Code (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 падает =\

    Code (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

    Blog Posts:
    0
    Joined:
    Sep 23, 2006
    Messages:
    89
    invoke GetVolumeInformation, offset disk, 0, 0, 0, 0, 0, 0, 0
    и так даже падает
     
  5. n0name

    n0name New Member

    Blog Posts:
    0
    Joined:
    Jun 5, 2004
    Messages:
    4,336
    Location:
    Russia
    нафиг \\ ?
     
  6. nerezus

    nerezus New Member

    Blog Posts:
    0
    Joined:
    Sep 23, 2006
    Messages:
    89
    done =]