Я разрабатываю мини-фильтр для перехватывать файлы и получать имена файлов которые тянут & выпал на конкретный диск и получите имена файлов.
Если я тащу & удалить файл, я могу получить это имя файла и успешно перехватить его (это означает, что этот файл не создан на диске).
Если я тащу & сбросить несколько файлов, я могу получить только первое имя файла, а другие нет. Но когда я открываю диск, я не вижу здесь никакого файла (это значит, что мини-фильтр успешно перехватывает их). Поэтому я не могу получить имена файлов (кроме первого файла)
Я перехватить перетащить & зайти перенаправить их:
Выше код может только перехватить все файлы и получить первое имя файла.
Как я могу сделать, чтобы перехватить каждый файл при перетаскивании & сбросить несколько файлов?
Я обнаружил, что:
Получить имя файла из Data-> Iopb-> TargetFileObject-> FileName
Удалить имя файла перенаправления. Этот шаг можно запустить до шага № 1
Убедитесь, что вы проверите simrep Образец от Microsoft они показывают, как правильно это сделать.
Я бы не стал основывать свое предположение, что Drag&Drop имеет соответствие в ядре и в файловой системе. Он может быть реализован в пользовательском режиме многими способами, особенно если вы делаете это на том же томе. Это может быть так же просто, как переименовать. Также имейте в виду жесткие ссылки и символические ссылки и альтернативные потоки данных.
Удачи.