ext2/3 под windows

Тема в разделе "WASM.WIN32", создана пользователем Cneg, 11 мар 2008.

  1. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    как узнать расположение разделов linux (и вообще любых разделов, которые win не(!) монтирует), а также любую информацию об их присутствии?.. Помниться в C++ это достаточно криво делается через IOCTL_DISK_GET_DRIVE_LAYOUT, но хочу написать на C#.. Нет ли например в WMI или ещё где такой возможности, ибо не хочется определять кучу функций из API... не могу вкурить почему мелкософт не признает разделы отличные от Fat/NTFS и не создаст нормальных средств для работы с ними... хотя возможно просто я плохо ищу
     
  2. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    единственное что более или менее некривое приходит на ум это создание компановочного блока (.dll) на С++ и дальнейшее его использование в проекте на C# (например определить метод реализующий DeviceIoControl). Благо .net позволяет так делать. Если кто знаком, посоветуйте какие могут возникнуть проблемы
     
  3. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Cneg
    Код (Text):
    1.     [DllImport("Kernel32.dll", SetLastError = false, CharSet = CharSet.Auto)]
    2.     public static extern bool DeviceIoControl(
    3.         Microsoft.Win32.SafeHandles.SafeFileHandle hDevice,
    4.         EIOControlCode IoControlCode,
    5.         [MarshalAs(UnmanagedType.AsAny)]
    6.         [In] object InBuffer,
    7.         uint nInBufferSize,
    8.         [MarshalAs(UnmanagedType.AsAny)]
    9.         [out] object OutBuffer,
    10.         uint nOutBufferSize,
    11.         ref uint pBytesReturned,
    12.         [In] ref System.Threading.NativeOverlapped Overlapped
    13.     );
     
  4. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    и таким макаром, как я понимаю, мне ещё надо определить createfile и closehandle чтобы воспользоваться хотя бы deviceiocontrol...
     
  5. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    фактически получается что это текст компановочного блока написанного на C++.. есть ли разница по сравнению с тем что я просто создам dll с конкретными методами на С++ и буду подключать в проект C# как внешний компоновочный блок?
     
  6. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Cneg
    Зачем вам С++, если собрались писать на C#? Создавайте интеропы нужных апи (CreateFileW/CloseHandle/DeviceIOControl) и дерзайте :)
     
  7. Cneg

    Cneg New Member

    Публикаций:
    0
    Регистрация:
    28 мар 2007
    Сообщения:
    78
    censored
    просто уже есть некоторые возможности, которые нужно включить в проект на C#, написанные на C++. В силу огромной ленивости хочется это сделать как можно проще и без извращений.
    интероп - имеется ввиду (как частный случай) тот код который вы привели? просто такое название не слышал..
     
  8. censored

    censored New Member

    Публикаций:
    0
    Регистрация:
    5 июл 2005
    Сообщения:
    1.615
    Адрес:
    деревня "Анонимные Прокси"
    Cneg
    Ну в такой случае C++\CLI: наружу managaed интерфейс, внутри нативные методы (обычный код).
    P.S. Interrops -- достачно обыденная практика в .NET'e, поиск по фразу выдает кучу ссылок, в двух словах, интероп -- переходник (wrappeer).