Добрый день!
У меня есть фильтр файловой системы (работающий по принципу sfilter с ДДК, те кто работали с фильтрами файловых систем должны знать этот пример):
Впринципе все работает, фильтрация создания файлов и работы над ними происходит нормально, все это работает под verifier, очередность загрузки такая же как и у sfilter. НО после загрузки система выдает сообщения что нет свап файла или его размер маленький.
Я ставил на систему sfilter и вставлял соответсвующие логи в место где можно отловить создание pagefile.sys : в дебагере появляеться сообщение о том что он создался (одно сообщение).
В случае моего драйвера выводиться куча таких сообщений — штук 20 наверное, причем IoCallDriver возвращает 0 (STATUS_SUCCESS) то же самое в Irp->IoStatus.Status. Проверял параметры ирпа и все его параметры — все также само как и в случае с sfilter. Также проверял стек драйверов — все впорядке. После загрузки как я и сказал мой драйвер работает нормально. Verifier ничего не пишет.
Здравствуйте, HBOOT, Вы писали:
HBO>Добрый день! HBO>У меня есть фильтр файловой системы (работающий по принципу sfilter с ДДК, те кто работали с фильтрами файловых систем должны знать этот пример):
Не знаю как в Windows, но в Linux для того, чтобы можно было создать swap file на томе с твоим драйвером, недостаточно просто файловых операций, необходимо также реализовать так называемые address_space_operationswritepage,readpage,sync_page,prepare_write,commit_write,bmap)
Предполагаю, что в Windows примерно такая же история.
Посмотрите в сторону IRP_MJ_PNP + IRP_MN_DEVICE_USAGE_NOTIFICATION. Оно посылается как раз для извещения драйвера о "жизненно важных" файлах. После получения этого сообщения драйвер должен и другие PnP и Power запросы обрабатывать несколько по-другому.
Какие у вас дейсвтия если в currentIrpStack->Flags присутсвует SL_OPEN_PAGING_FILE?
Правда, Ложь — мне все одно — я имею свое мнение.
Если функция недокументированна — это не значит, что ее не используют все ваши конкуренты в своих продуктах.
Любой строй переходный и отрицать это значит быть закостенелым идиотом.
З>Какие у вас дейсвтия если в currentIrpStack->Flags присутсвует SL_OPEN_PAGING_FILE?
Если у меня попадался этот флаг то я пропускал обработку, у меня был переход на след. блок: тоесть я вообще не делал в этом случае, а просто передавал ирп ниже по стеку
Здравствуйте, Murr, Вы писали:
M>Может немного не по теме, но помнится в Win подобное сообщение временами возникало, когда права на pagefile.sys были криво выставлены.
А где ывставляються права на создание pagefile.sys?
Самое интерестное это то, что при создании файла нет ни одного кода ошибки, все возвращаемые коды указывают на то что операция завершилась успешно.