2012-06-07 5 views
3

У меня есть программное обеспечение, отслеживающее изменения тома NTFS в ОС Windows с помощью драйвера фильтра томов. Мне нужно обработать условие, когда том устанавливается и модифицируется вне операционной системы, где установлен мой драйвер.Определите, был ли установлен том NTFS за пределами

Возможно ли определить время последнего монтирования тома? или какой-либо другой параметр, позволяющий мне определить, был ли том установлен вне моего драйвера?

+0

Вы имеете в виду монтируемый Windows или смонтированный любым инструментом (например, Linux NTFS-драйвером)? – Gabe

+0

Любой инструмент, но если у вас есть решение для Windows, я был бы признателен :) – Isso

+1

Как насчет проверки USN? –

ответ

2

Я не знаю о «последнем времени монтирования», но есть «счетчик открытых файлов журнала». Если вы посмотрите на http://www.opensource.apple.com/source/ntfs/ntfs-64/kext/ntfs_logfile.h, вы увидите RESTART_AREA структуру, как это:

/* 40*/ le32 restart_log_open_count;/* A counter that gets incremented every 
            time the logfile is restarted which happens 
            at mount time when the logfile is opened. 
            When creating set to a random value. Win2k 
            sets it to the low 32 bits of the current 
            system time in NTFS format (see time.h). */ 
/* 44*/ le32 reserved;  /* Reserved/alignment to 8-byte boundary. */ 
/* sizeof() = 48 (0x30) bytes */ 
} __attribute__((__packed__)) RESTART_AREA; 

Вы можете видеть, что ближе к концу этого является restart_log_open_count, что вы можете использовать, чтобы следить за креплениями. Вы должны посмотреть на значение и сравнить его с сохраненным значением. Он должен быть равен сохраненному значению плюс один. Если это так, оно не смонтировано с момента последнего контроля.

+0

Большое вам спасибо! Просто создала тестовую программу для ее проверки - и действительно - значение увеличивается при каждом правильном повышении. – Isso

Смежные вопросы