Здравствуйте, Злость, Вы писали:
З>Здравствуйте, Аноним, Вы писали:
А>>прочитал "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 — приходит когда счетчик ссылок достиг нуля.
почему тогда при описании организации своего счетчика ссылок пишут что надо на IRP_MJ_CREATE его увеличивать а на IRP_MJ_CLOSE уменьшать ? и почему может приходить несколько IRP_MJ_CLOSE ?