Столкнулся с интересной (на мой взляд) вещью - при инициализации файла через CreateFile на шаре, блокируется удаление файла(и открытия, в зависимости от флагов CrF). Мне интересно, как моя система отмечает файл как занятый, как разблокировать удалённо файл? Какой процесс "держит" файл на чужой системе? //offtop как сравнить на VC6 длинную строку с более короткой? if (path=="ERROR") при компиляции cant convert char [255] to char [6] wsprintf(ss,"%8X",hFile) конвертит адресс в char, а наоборот как? //offtop
В этом и странность. Я думал что инициализирую я файл, я его удалить не могу, а остальные в сети - без проблем. но они удалить не могут, вот и интересно, каким образом сообщяется удалённым системам о занятости файла? PS За ответы на офтоп спасибо
Да, кстати - шара не на моей машине, если это важно. В том то и дело - просто \\usenet\block.txt в качестве параметра <файл>
процесс System в нем поток (один из потоков) созданный SRV.SYS в отличие от локальных процессов, которые при убивании самозакрывают свои хендлы, ремоутные процессы убиваются а хендлы то открыты фактически т.н. службой "сервер" и они остаются открытыми приходится вручную закрывать
Доброго всем дня! У меня вопрос: как разблокировать файл, открытый чужим процессом? Есть вообще такие методы?
или как рабоает Unlocker? Не в этот раздел! Предупреждение Читаем статьи на этом сайте: http://www.wasm.ru/article.php?article=lockfileswork
Верно. Ещё не помешает почитать про oplock'и, это в книге Руссиновича есть, там где речь про удалённые файловые системы.
x64 SRV.SYS вообще прикольная штука например для проверки прав доступа лезет через LPC в LSASS т.е. в юзермод в этот момент можно (похучив кое-что) получить IP адрес клиента ...