none
Как узнать тип сетевого диска (dvd-проигрывателя)? RRS feed

  • Вопрос

  • Добрый день. Я не программирую на C++, поэтому не смогу воспользоваться инструментами языка C++.

    Я сделал общий доступ к dvd-проигрывателю в локальной сети.
    Функция "GetDriveType" сообщает, что это сетевой диск (4).
    С помощью какой api-функции можно узнать, что это dvd-проигрыватель?

    Задача: узнать информацию о сетевом диске и сообщить эту информацию юзеру. Никаких действий не нужно делать с dvd-проигрывателем.
    7 июля 2019 г. 12:02

Ответы

  • Ilya Tumanov, ни в гугле, ни в яндексе не могу выйти на официальную справку по Win32 API, в которой было бы описание api-функции DeviceIoControl.

    Вы видимо как то уникально ищите, первый же результат во всех трех поисковиках (baidu я не пробовал) по запросу "DeviceIoControl" ведет прямо на нужное описание функции (вам его уже привели). Судя по всему на pinvoke.net есть и определение под нее если вы используйте один из CLR языков.

    Кстати, чтоб вы знали на будущее: функции библиотек самого языка C обычно пишутся строчными буквами, а Win32 API обычно Pascal case. Типично можно даже справку не смотреть чтоб понять где какая. Например ioctl() это функция в библиотеке C, а DeviceIoControl() - Win32. Скорее всего первая вызывает вторую в коде библиотеки для Win32.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    9 июля 2019 г. 16:41
    Модератор
  • Вот все функции kernel32: https://www.geoffchappell.com/studies/windows/win32/kernel32/api/index.htm

    Также здесь: https://docs.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-deviceiocontrol

    Везде все указанно.


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.



    9 июля 2019 г. 13:13
    Модератор

Все ответы

  • Здравствуйте,

    Посмотрите вариант предложенный здесь:


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.

    8 июля 2019 г. 13:26
    Модератор
  • Maksim Marinov, по ссылке предлагается использовать инструменты языка C++.

    Я эти инструменты не могу использовать, т.к. программирую на другом языке программирования.

    Есть ли win32 api-функция, аналогичная си-функции "DeviceIoControl"?

  • Maksim Marinov, по ссылке предлагается использовать инструменты языка C++.

    Я эти инструменты не могу использовать, т.к. программирую на другом языке программирования.

    Есть ли win32 api-функция, аналогичная си-функции "DeviceIoControl"?

    DeviceIoControl и есть Win32 функция. Находится в Kernel32.dll. 

    Но вам это скорее всего не поможет, ведь устройства то на вашем ПК и нет, есть только сетевой редиректор.



    This posting is provided "AS IS" with no warranties, and confers no rights.

    Модератор
  • Ilya Tumanov, ни в гугле, ни в яндексе не могу выйти на официальную справку по Win32 API, в которой было бы описание api-функции DeviceIoControl.
  • Вот все функции kernel32: https://www.geoffchappell.com/studies/windows/win32/kernel32/api/index.htm

    Также здесь: https://docs.microsoft.com/en-us/windows/win32/api/ioapiset/nf-ioapiset-deviceiocontrol

    Везде все указанно.


    Если Вам помог чей-либо ответ, пожалуйста, не забывайте жать на кнопку "Предложить как ответ" или "Проголосовать за полезное сообщение" Мнения, высказанные здесь, являются отражение моих личных взглядов, а не позиции корпорации Microsoft. Вся информация предоставляется "как есть" без каких-либо гарантий.



    9 июля 2019 г. 13:13
    Модератор
  • Ilya Tumanov, ни в гугле, ни в яндексе не могу выйти на официальную справку по Win32 API, в которой было бы описание api-функции DeviceIoControl.

    Вы видимо как то уникально ищите, первый же результат во всех трех поисковиках (baidu я не пробовал) по запросу "DeviceIoControl" ведет прямо на нужное описание функции (вам его уже привели). Судя по всему на pinvoke.net есть и определение под нее если вы используйте один из CLR языков.

    Кстати, чтоб вы знали на будущее: функции библиотек самого языка C обычно пишутся строчными буквами, а Win32 API обычно Pascal case. Типично можно даже справку не смотреть чтоб понять где какая. Например ioctl() это функция в библиотеке C, а DeviceIoControl() - Win32. Скорее всего первая вызывает вторую в коде библиотеки для Win32.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    9 июля 2019 г. 16:41
    Модератор