Мобильная версия форумов
Открыть
 −8°C
завтра: −11°C
Погода в Перми
−8°C
ночью−10°C
утром−15°C
завтра−11°C
Подробно
 65,51
−0.0252
Курс USD ЦБ РФна 23 февраля
65,5149
−0.0252
 74,33
+0.0369
Курс EUR ЦБ РФна 23 февраля
74,3332
+0.0369
PRM.Форум /Компьютеры Интернет Связь / Программирование /

Проблемы с одновременным доступом к файлу.

  • activist

    Сообщений: 334

    Итак, есть WDM-драйвер, который пишет данные в файл. Одновременно необходимо эти данные из этого же файла вычитывать. Но, как и следовало ожидать, возникают проблемы.

    Драйвер писан с использованием SoftICE Driver Suite.
    Там файл открывается так:

    kfDataFile.OpenCreate(PUNICODE_STRING(strCurrentFileName), NULL,
    FILE_WRITE_DATA | FILE_APPEND_DATA,
    OBJ_CASE_INSENSITIVE, FILE_ATTRIBUTE_NORMAL,
    FILE_SHARE_READ, FILE_OVERWRITE_IF, 0, NULL);

    То есть открываем на запись/добавление, шаря при этом файл на чтение.

    На пользовательском уровне открываем так:

    CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ,
    NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    То есть открываем на чтение, шаря на чтение же.

    И, в итоге, имеем ошибку ERROR_SHARING_VIOLATION. ЧЯДНТ?

  • guru

    Сообщений: 9338

    В ответ на: CreateFile(FileName, GENERIC_READ, FILE_SHARE_READ,
    NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
    Быть может - выделенное заменить на FILE_SHARE_WRITE, а то и вовсе на оба сразу два.
    Но это в порядке общего предполжения

  • activist

    Сообщений: 334

    Спасибо, добрый человек:улыб:Вроде проканало. Сам бы я ещё дня три мог бы тупить:улыб:

Записей на странице:

Перейти в форум

Модератор: