Reply To: (Rtl)IoVolumeDeviceToDosName bug?

Home Forums Discussions General Discussion (Rtl)IoVolumeDeviceToDosName bug? Reply To: (Rtl)IoVolumeDeviceToDosName bug?

#5849

Asterisk
Participant

проблему решил и решил поделиться причиной:
Когда идёт монтирование диска, то этого события ожидает несколько драйверов, в том числе и Mount Manager. Которому и посылается запрос на идентификацию буквы. Т.к. это происходит в контексте одного потока, то IoManager не передаёт IRP пакет, потому как занят завершением текущей IPR операции, соответственно не сигналит Event которого ждёт Mount Manger (его синхронизация).
Что интересно, если оправить WorkItem собирать информацию, то его можно дождаться в контексте текущей обработки IRP. Т.е. это и есть workarround данной ситуации.

PS: всем спасибо, кто попытался вопрос изучить. Задача была решена давно, буквально через день после поста проблемы. Но написал только сейчас, becouse был занят 🙂
PSS: Жаль, что ручками парсить такое достаточно трудоёмкое занятие – репарс-поинты NTFS это страшная страшность, так бы отказался от использования данной функции 🙂