Реализация функций контроля и управления на базе Win32 API: Методические указания по выполнению лабораторного практикума, страница 26

Отчет должен быть выполнен чисто и аккуратно. При оформлении отчета рекомендуется использовать различные текстовые и графические редакторы. Студент, допустивший отклонения от требований, к защите работы не допускается.


ПРИЛОЖЕНИЕ

Описание функций WIN32 API

DWORD GetLogicalDrives(void)

Не имеет входных параметров и возвращает 32-битовое число, каждый бит которого, установленный в единицу, свидетельствует о наличии в системе соответствующего диска (0-ой бит -диск А, 1-ый бит -диск B и т.д.).

DWORD GetLogicalDriveStrings(dwBuffer, lpBuffer)  DWORD dwBuffer; // размер буфера для текстовой строки LPTSTR lpBuffer; // указатель на буфер 

позволяет получить массив символьных строк, представляющих собой имена дисков. Каждая строка заканчивается символом <null> также как и весь массив строк. Например: "a:\\<null>", "c:\\<null>", "d:\\<null>"<null>. Функция возвращает размер буфера, необходимый для хранения строк с именами дисков.

UINT GetDriveType(lpDiskName) LPCTSTR lpDiskName; // указатель на имя диска

предназначена для определения типа диска. Возвращается одно из следующих значений типа unsigned int:

0  Диск не может быть определен. 1  Корневая директория не существует. DRIVE_REMOVABLE Гибкий диск. DRIVE_FIXED Жесткий диск. DRIVE_REMOTE Удаленный (сетевой) диск. DRIVE_CDROM Компакт диск (CD-ROM).  DRIVE_RAMDISK Виртуальный диск.

BOOL GetVolumeInformation(lpDiskName, lpVolumeNameBuffer, nVolumeNameSize, lpVolumeSerialNumber, lpMaximumComponentLength, lpFileSystemFlags, lpFileSystemNameBuffer, nFileSystemNameSize) LPCTSTR lpDiskName;// указатель на имя диска LPTSTR lpVolumeNameBuffer;// указатель на метку диска DWORD nVolumeNameSize;// размер буфера для метки диска LPDWORD lpVolumeSerialNumber;// указатель на серийный номер диска LPDWORD lpMaximumComponentLength;//указатель на максимальную длину имени файла (вместе с путем) LPDWORD lpFileSystemFlags;// указатель на флаги системы LPTSTR lpFileSystemNameBuffer;// указатель на название системы DWORD nFileSystemNameSize;//размер буфера для названия системы

позволяет получить информацию о файловой системе выбранного диска и возвращает значение true при корректном завершении функции. Функции должны быть переданы указатели на переменные, для которых заранее выделена память и размеры буферов для получаемой информации. Пользователю необходимо определить имя диска и размеры буферов для метки диска и для названия системы, остальные переменные являются выходными.

BOOL GetDiskFreeSpaceExA(lpDirectoryName, lpFreeBytesAvailableToCaller, lpTotalNumberOfBytes, lpTotalNumberOfFreeBytes);

LPCTSTR lpDirectoryName, // указатель на имя диска 

PULARGE_INTEGER lpFreeBytesAvailableToCaller,// указатель на количество свободных байт на диске, доступных для записи

PULARGE_INTEGER lpTotalNumberOfBytes,// указатель на количество байт на диске

PULARGE_INTEGER lpTotalNumberOfFreeBytes // указатель на количество свободных байт на диске.

предназначена для получения информации об объеме диска и количестве хранимой информации. Необходимо задать имя диска и при успешном исполнении функция выдает значение true.

DWORD GetCurrentDirectory(dwCurDir, lpCurDir) DWORD dwCurDir;// размер буфера LPTSTR lpCurDir;// указатель на буфер для текущей директории

показывает текущую директорию, то есть ту директорию, в которой осуществляется обращение к файлу с "сокращенным именем" (без полного пути). Функция возвращает размер буфера необходимый для хранения текущей директории.

DWORD GetFullPathName(lpFile, dwPath, lpPath, ppFilePart) LPCTSTR lpFile;// указатель на имя файла DWORD dwPath;// длина буфера для полного пути к файлу  LPTSTR lpPath;// указатель на полный путь к файлу (вместе с именем) LPTSTR *ppFilePart;// указатель на указатель на имя файла в полном пути