Здравствуйте, Аноним, Вы писали:
А>прочитал "Q55 I see the user close the file. My filter receives an IRP_MJ_CLEANUP. But I never see the IRP_MJ_CLOSE? Why not?"
А>есть два счетчика HandleCount <= PointerCount А>IRP_MJ_CLOSE — приходит для уменьшения HandleCount ?
НЕТ
А>IRP_MJ_CLEANUP — приходит когда ? когда PointerCount уменьшается или уже равен нулю ?
PointerCount = 0
А>соответственно после прихода IRP_MJ_CLEANUP файл закрыт ?
Нет. А>если HandleCount <= PointerCount, то для определения момента закрытия файла надо перехватывать IRP_MJ_CLEANUP а не IRP_MJ_CLOSE ?
IRP_MJ_CLEANUP — приходит когда все handle закрыты. Тоесть у обьекта счетчик описателей достиг нуля.
IRP_MJ_CLOSE — приходит когда счетчик ссылок достиг нуля.
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.