Не запускаются экзешники из под виртуального диска.

Тема в разделе "WASM.BEGINNERS", создана пользователем Scratch, 2 июн 2011.

  1. Scratch

    Scratch New Member

    Публикаций:
    0
    Регистрация:
    1 янв 2005
    Сообщения:
    161
    Использую фришную либу dokan, которая представляет из себя фильтр-драйвер + интерфейс для многих языков.
    Для работы оно просит предоставить реализацию ф-й для колбеков (Readfile/WriteFile/CreateFile/GetFileSecurity/etc). Всё работает: чтение, запись, но когда пытаюсь запустить с виртуального диска любой exe грит "отказано в доступе".
    Реализовал вызов GetFileSecurity(), вроде бы всё правильно, но он тоже возвращает "У клиента нет прав".
    При этом в платной либе так же реализованный GetFileSecurity тоже возвращает эти же эксепшены, но всё отличненько запускается. Посему вопрос, что нужно и в каком порядке сделать чтобы система нормально могла запускать экзехи с виртуальных дисков. Может какую предварительно заполненную структуру или еще чего.
    Пишу на шарпе. Это как вызывается GetFileSecurity
    Код (Text):
    1. [DllImport("Advapi32.dll", CharSet = CharSet.Auto, SetLastError = true)]
    2.         [return: MarshalAs(UnmanagedType.Bool)]
    3.         private static extern bool GetFileSecurity(string FileName,
    4.             uint SecurityInformation, IntPtr SecurityDecriptor, uint Length, ref uint LengthNeeded);
    Есть предположение, что нужно еще нативно CreateFile вызывать из за всяких dwDesiredAccess и прочих lpSecurityAttributes, у меня в колбеке просто существование проверяется и stream открывается.