enum VOLUMETYPE{ VTP_DRIVE_UNKNOWN = DRIVE_UNKNOWN, VTP_DRIVE_NO_ROOT_DIR = DRIVE_NO_ROOT_DIR, VTP_DRIVE_REMOVABLE = DRIVE_REMOVABLE, VTP_DRIVE_FIXED = DRIVE_FIXED, VTP_DRIVE_REMOTE = DRIVE_REMOTE, VTP_DRIVE_CDROM = DRIVE_CDROM, VTP_DRIVE_RAMDISK = DRIVE_RAMDISK,};struct VOLUME_DETAILS_A{ char PathName[MAX_PATH]; // Path the volume is mounted on, e.g "C:\" char GUID[100]; // Unique identifier of the volume (valid only on W2k and higher) char FSType[50]; // The type of the volume filesystem, e.g. FAT32 char VolumeName[100]; // The name assigned to the volume by the user VOLUMETYPE Type; // Type of the volume (fixed, removable etc.) QWORD BytesTotal; // The total size of the volume (may not be accurate if quota is in effect), QW_MAX if unknown QWORD BytesFree; // The total free space on the volume, QW_MAX if unknown};struct FILE_NAME_A{ char* Name; // file name, ANSI encoding char* DOSName; // short (DOS) name, NULL if not specified QWORD ParentRecord; // internal FILE_NAME_A* Next; // next filename, NULL if last};