﻿TODO:
+ Добавить поддержку фильтрации открытия и создания key
+ Добавить поддержку фильтрации перечисления key
+ Добавить поддержку фильтрации перечисления value
+ Вынести fs filter и reg filter в отдельные файлы
+ Протестировать фишки с ObRegisterCallback
	+ Стерание всех флагов
+ Реализовать PsMonitor со всеми вытекающими
	+ Реализовать рабочий прототип
		+ Для Exclude
		+ Для Protected
		+ Добавить флаг наследования
	+ Реализовать интерфейс для IOCTL
	+ Реализовать интерфейс для File & Reg мониторов
	+ Вынести Process Table в отдельный файл
		+ Переименовать Process Tree в Process Table
+ Протестировать интерфейсы
	+ Добавить в HiddenCLI загрузку excluded и protected процессов
	+ Добавить проект HiddenTest
	+ Реализовать тесты в проекте HiddenTest
		+ FS monitor
		+ Reg filter
		+ Ps filter
			+ Добавить код тестирования для add\remove excluded image
+ Добавить в Reg filter поддержку всех возможных операций над value
	+ set value
	+ delete value
	+ query value
	+ query multiple value
- Переписать Exclude List на основе AVL или других buildin generic trees
	- FS monitor
	- Reg monitor
+ Реализовать конвертирование пути в пути драйвера
	+ Ps monitor
	+ FS filter
	+ Reg filter
+ Реализовать RemoveAllExcludeListEntries
+ Реализовать все ф-и Ps monitor
	+ Добавить в библиотеку поддержку get\set state
	+ Решить проблему с protected (возможно разрешить создавать такие процессы только из protected\system)
+ Реализовать IOCTL протокол управления
	+ Реализовать usermode библиотеку для работы с IOCTL API
		+ Слинковать с IOCTL API lib
+ Добавить поддержку флага автоприсвоение состояния существующим процессам для Hid_AddExcludedImage\Hid_AddProtectedImage
+ Проверить как ведёт себя файловый фильтр с файлами открытыми по ID или по короткому пути
+ Реализовать HiddenCLI
	+ ignore
	+ unignore
	+ protect
	+ unprotect
	+ query
	+ Протестировать все комманды
+ При выполнении /unhide с любым ID возвращается статус ок
+ Проверить чтобы все ObjId генерировались начиная с 1
+ Реализовать функционал вкл\выкл драйвера через IOCTL
- Написать тест для вкл\выкл драйвера через IOCTL
+ Написать тест HiddenCLITests
+ Портировать драйвер под архитектуру x64
+ Портировать под версии Windows 8, 8.1, 10
+ Залить проект на Git
	+ Переименовать проект драйвера в Hidden
	+ Привести в порядок все версии билда Release, Debug, ...
+ Добавить процесс System(4) как статически исключенный
- Подумать по поводу проблемы, что HKLM\System\CurrentControlSet на самом деле берётся из CurrentControl00n
- Реализовать steals mode
+ Реализовать поддержку загрузки дефольтных конфигов из реестра
+ Реализовать установку конфигов в реестр через hiddencli
+ Привести в порядок вывод статуса в hiddencli
+ Привести в порядок номер ошибки в hiddencli
+ Изменить логирование на DbgPrintEx
- Добавить SAL на функции драйвера

