Информация об изменениях

Сообщение Re[5]: Отловить отмену копирования файла в Minifilter'е от 17.10.2018 18:32

Изменено 17.10.2018 18:37 mike_rs

Re[5]: Отловить отмену копирования файла в Minifilter'е
Здравствуйте, -prus-, Вы писали:

P>>>1. что файлом закончена работа и больше туда не будут записываться данные, все хендлы закрыты и тп. Это вроде как в Pre/Post-Cleanup можно логику сделать

_>>данные не будут записываться только после Close, после Cleanup могут быть еще paging write для сброса кеша.

P>только после Close на все FileObject's для файла, как я понимаю?

так это и есть Close, когда последний FO уходит. Поэтому его можно часами ждать.

FO FO FO
\ | /
FCB

FO — это хендл с точки зрения юзера, FCB — файл. Когда закрывается FO (handle) — это Cleanup, а когда все FO ушли и закрывается(уничтожается) FCB — это Close. Кроме хендлов пользователя FO может придерживатся кеш-менеджером (если были кешированные операции) и когда он его закроет — неведомо. На системе где нет нехватки ресурсов это могут быть десятки часов и более.
Re[5]: Отловить отмену копирования файла в Minifilter'е
Здравствуйте, -prus-, Вы писали:

P>>>1. что файлом закончена работа и больше туда не будут записываться данные, все хендлы закрыты и тп. Это вроде как в Pre/Post-Cleanup можно логику сделать

_>>данные не будут записываться только после Close, после Cleanup могут быть еще paging write для сброса кеша.

P>только после Close на все FileObject's для файла, как я понимаю?

так это и есть Close, когда последний FO уходит. Поэтому его можно часами ждать.

FO   FO   FO
  \  |   /
    FCB


FO — это хендл с точки зрения юзера, FCB — файл. Когда закрывается FO (handle) — это Cleanup, а когда все FO ушли и закрывается(уничтожается) FCB — это Close. Кроме хендлов пользователя FO может придерживатся кеш-менеджером (если были кешированные операции) и когда он его закроет — неведомо. На системе где нет нехватки ресурсов это могут быть десятки часов и более.