СПОСОБ ДОБАВЛЕНИЯ ЗАПИСЕЙ О МОДИФИКАЦИИ ФАЙЛОВ

1. Способ добавления записи информации о модификации файлов, содержащий следующие этапы, на которых
драйвер обнаруживает по меньшей мере один модифицированный файл и добавляет в кольцевой кэш по меньшей мере одну запись о модификации этого файла, содержащую минимальную информацию о модифицированном файле, при этом с кэшем связана управляющая структура, содержащая смещение, с которого драйвер может осуществлять поиск записей, которые уже были записаны в журнал модифицированных файлов, но еще не записаны в базу данных, содержащую проверенные антивирусным приложением файлы;
через заданный интервал времени драйвер осуществляет перенос упомянутой по меньшей мере одной записи из кэша в журнал;
через заданный интервал времени драйвер осуществляет перенос упомянутой по меньшей мере одной записи из журнала в базу данных, при этом из кольцевого кэша удаляют записи, которые были перенесены из журнала;
причем перед добавлением упомянутых записей в кольцевой кэш драйвер осуществляет проверку, имеется ли в кольцевом кэше по меньшей мере одна запись, содержащую минимальную информацию о модифицированном файле, при этом если такой записи нет, то драйвер осуществляет добавление этой записи в кольцевой кэш;
причем, если в кэше нет места, то драйвер производит остановку процесса записи новой информации в кэш и переводит процесс работы кэша в состояние ожидания;
причем при добавлении упомянутой записи в журнал
через определенный момент времени драйвер анализирует кэш на наличие новых записей, и если записи есть, то он определяет количество записей о модифицированных файлах в кэше и начинает анализ заголовка журнала или упомянутой управляющей структуры для того, чтобы определить имеется ли место в журнале для записи упомянутого определенного количества записей, при этом при наличии места в журнале драйвер добавляет по меньшей мере одну новую запись о модифицированном файле в журнал,
при отсутствии места в журнале драйвер переводит подсистему ведения журнала в состояние ожидания запроса от приложения;
причем при добавлении упомянутой записи в базу данных
через определенный момент времени приложение анализирует, есть ли новые записи в файле журнала и, если они есть, то приложение вычитывает новые записи из журнала;
после этого приложение посылает запрос драйверу на удаление прочитанного количества записей из журнала и кэша для освобождения места для новых записей.
2. Способ по п.1, в котором упомянутый заголовок также содержит уникальный идентификатор файла журнала, полный размер заголовка, флаги состояния журнала, размер записи-элемента журнала, смещение, по которому драйвер может записывать новые записи из кольцевого кэша, смещение, с которого приложение может считывать записи для передачи в базу данных.
3. Способ по п.2, в котором кольцевой кэш также содержит смещение, по которому драйвер может добавлять новые записи в кольцевой кэш, смещение, по которому драйвер осуществляет перенос записей из кэша в журнал, которые не были прочитаны приложением из журнала, смещение, с которого драйвер может считывать записи из кэша в журнал, текущее количество непрочитанных записей в кэше.
4. Способ по п.1, в котором на упомянутом этапе добавления драйвером по меньшей мере одной новой записи о модифицированном файле при наличии места в кэше драйвер увеличивает на количество модифицированных записей значение смещения кольцевого кэша для добавления новых записей, также как и поле количества непрочитанных записей в кэше.
5. Способ по п.1, в котором минимальная информация о модификации файла содержит кэш имени тома и внутренний идентификатор файла.
6. Способ предоставления приложению определенной записи с информацией о модификации файлов, который содержит этапы, на которых
драйвер проводит поиск записи в кэше в определенном интервале;
при нахождении записи в кэше она сразу возвращается приложению,
при этом найденная запись не удаляется.
7. Способ по п.6, в котором интервал включает смещения индексов от смещения, по которому драйвер может записывать новые записи из кольцевого кэша, до смещения, с которого приложение может считывать записи для передачи в базу данных.
8. Машиночитаемый носитель, содержащий записанные на нем команды, исполняемые компьютером и предназначенные для выполнения способа добавления записей о модификации файлов по п.1.
9. Носитель по п.8, в котором заголовок журнала также содержит уникальный идентификатор файла журнала, полный размер заголовка, флаги состояния журнала, размер записи-элемента журнала, смещение, по которому драйвер может записывать новые записи из кольцевого кэша, смещение, с которого приложение может считывать записи для передачи в базу данных.
10. Носитель по п.8, в котором минимальная информация о модификации файла содержит кэш имени тома и внутренний идентификатор файла.
11. Носитель по п.8, в котором на этапе добавления драйвером по меньшей мере одной новой записи о модифицированном файле при наличии места в кэше драйвер увеличивает на количество модифицированных записей значение смещения кольцевого кэша для добавления новых записей, также как и поле количества непрочитанных записей в кэше.
12. Носитель по п.8, в котором выделенный поток драйвера через заданный интервал времени выполняет перенос записей из кольцевого кэша в журнал, при этом записи из кольцевого кэша не удаляются до тех пор, пока приложение не прочитает эти записи из журнала.
13. Устройство добавления записей о модификации файлов, содержащее
журнал, предназначенный для хранения информации о модификации файлов;
кэш, предназначенный для хранения информации о модификации файлов и связанный с журналом,
база данных, предназначенная для хранения информации о модификации файлов,
драйвер, связанный с кэшем, журналом,
приложение для антивирусной проверки файлов, связанное с кэшем, журналом и базой данных,
при этом описанные выше драйвер и приложение предназначены для выполнения следующих этапов:
драйвер обнаруживает по меньшей мере один модифицированный файл и добавляет в кольцевой кэш по меньшей мере одну запись о модификации этого файла, содержащую минимальную информацию о модифицированном файле, при этом с кэшем связана управляющая структура, содержащая смещение, с которого драйвер может осуществлять поиск записей, которые уже были записаны в журнал модифицированных файлов, но еще не записаны в базу данных, содержащую проверенные антивирусным приложением файлы;
через заданный интервал времени драйвер осуществляет перенос упомянутой по меньшей мере одной записи из кэша в журнал;
через заданный интервал времени драйвер осуществляет перенос упомянутой по меньшей мере одной записи из журнала в базу данных, при этом из кольцевого кэша удаляют записи, которые были перенесены из журнала;
причем перед добавлением упомянутых записей в кольцевой кэш драйвер осуществляет проверку, имеется ли в кольцевом кэше по меньшей мере одна запись, содержащую минимальную информацию о модифицированном файле, при этом если такой записи нет, то драйвер осуществляет добавление этой записи в кольцевой кэш;
причем, если в кэше нет места, то драйвер производит остановку процесса записи новой информации в кэш и переводит процесс работы кэша в состояние ожидания;
причем при добавлении упомянутой записи в журнал
через определенный момент времени драйвер анализирует кэш на наличие новых записей, и если записи есть, то он определяет количество записей о модифицированных файлах в кэше и начинает анализ заголовка журнала или упомянутой управляющей структуры для того, чтобы определить имеется ли место в журнале для записи упомянутого определенного количества записей, при этом при наличии места в журнале драйвер добавляет по меньшей мере одну новую запись о модифицированном файле в журнал,
при отсутствии места в журнале драйвер переводит подсистему ведения журнала в состояние ожидания запроса от приложения;
через определенный момент времени приложение анализирует, есть ли новые записи в файле журнала и, если они есть, то приложение вычитывает новые записи из журнала;
после этого приложение посылает запрос драйверу на удаление прочитанного количества записей из журнала и кэша для освобождения места для новых записей.
14. Устройство по п.13, в котором упомянутый заголовок также содержит по меньшей мере уникальный идентификатор файла журнала, полный размер заголовка, флаги состояния журнала, размер записи-элемента журнала, смещение, по которому драйвер может записывать новые записи из кольцевого кэша, смещение, с которого приложение может считывать записи для передачи в базу данных.
15. Устройство по п.14, в котором кольцевой кэш также содержит смещение, по которому драйвер может добавлять новые записи в кольцевой кэш, смещение, по которому драйвер осуществляет перенос записей из кэша в журнал, которые не были прочитаны приложением из журнала, смещение, с которого драйвер может считывать записи из кэша в журнал, текущее количество непрочитанных записей в кэше.
16. Устройство по п.13, в котором на упомянутом этапе добавления драйвером по меньшей мере одной новой записи о модифицированном файле при наличии места в кэше драйвер увеличивает на количество модифицированных записей значение смещения кольцевого кэша для добавления новых записей, также как и поле количества непрочитанных записей в кэше.
17. Устройство по п.13, в котором минимальная информация о модификации файла содержит хэш имени тома и внутренний идентификатор файла.