Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Скрытый раздел диска, Чтение и запись данных в скрытый раздел 
V
    Опции темы
BIV
Дата 6.11.2013, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 219
Регистрация: 20.12.2007

Репутация: нет
Всего: 1



Всем  доброе время суток!
У меня на флешке есть 2 раздела: 1 обычный, 2й скрытый. У скрытого есть только имя тома, но нет буквы. Можно ли средствами Visual C++ получить к доступ и выполнять операцию чтения и записи? Если можно, то как получить к нему доступ?
PM MAIL   Вверх
DarthTon
Дата 7.11.2013, 11:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 7.2.2009

Репутация: 5
Всего: 6



Как-то так можно:
Код

BOOL result = TRUE;
wchar_t volumeName[MAX_PATH] = {0};
wchar_t foundVolume[MAX_PATH] = {0};
HANDLE hFind = INVALID_HANDLE_VALUE;
HANDLE hDev = INVALID_HANDLE_VALUE;

// Iterate volumes
for(HANDLE hFind = FindFirstVolumeW(volumeName, sizeof(volumeName) / sizeof(wchar_t)); 
    hFind != INVALID_HANDLE_VALUE && result != FALSE; 
    result = FindNextVolumeW(hFind, volumeName, sizeof(volumeName) / sizeof(wchar_t)))
{
    wchar_t volumePath[MAX_PATH] = {0};
    DWORD retLength = 0;

    // Get mount points for volume
    if(GetVolumePathNamesForVolumeNameW(volumeName, volumePath, sizeof(volumePath) / sizeof(wchar_t), &retLength) == TRUE)
    {
        UINT dType = GetDriveTypeW(volumeName);

        // Save first volume without mount points located on removable drive 
        if(dType == DRIVE_REMOVABLE && volumePath[0] == 0)
        {
            wcscpy(foundVolume, volumeName);

            // Remove trailing slash
            if(foundVolume[wcslen(foundVolume) - 1] == L'\\')
                foundVolume[wcslen(foundVolume) - 1] = 0;

            break;
        }
    }
}

if(hFind != INVALID_HANDLE_VALUE)
    FindVolumeClose(hFind);

// Open volume for read/write
hDev = CreateFileW(foundVolume,  FILE_READ_DATA | FILE_WRITE_DATA, 
    FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL);

if(hDev != INVALID_HANDLE_VALUE)
{
    BYTE buffer[512] = {0};
    DWORD bytes = 0;

    // Read data
    result = ReadFile(hDev, buffer, sizeof(buffer), &bytes, NULL);

    // Write data
    result = WriteFile(hDev, buffer, sizeof(buffer), &bytes, NULL);

    CloseHandle(hDev);
}

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0646 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.