Погода: -12°C
Samara24.Форум /Компьютеры Интернет Связь / Программирование /

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

  • Итак, есть 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. ЧЯДНТ?

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

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

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

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

Модератор: