|
Перевести структуру DEVICE_MEDIA_INFO в РВ
|
|||
---|---|---|---|
#18+
Снова уперся в создание структуры Явно не хватает знаний чтобы создать такое в РВ (10.5). Подскажите как это сделать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2011, 02:51 |
|
Перевести структуру DEVICE_MEDIA_INFO в РВ
|
|||
---|---|---|---|
#18+
AIS, В PB нет аналога концепции union (в т.ч. и поэтому была создана эта библиотека ). Для полной поддержки всех вариантов вам придется создать 3 отдельных структуры и соответственно 3 декларации внешних ф-й для них. К счастью 2 из этих структур - одинаковы (фиксированные и извлекаемые диски), а третья относится к ленточным устройствам и вряд ли вас интересует. Поэтому можно просто объявить исходную структуру на основе первой подструктуры и игнорировать ее содержимое для лент. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2011, 14:21 |
|
Перевести структуру DEVICE_MEDIA_INFO в РВ
|
|||
---|---|---|---|
#18+
Anatoly Moskovsky , спасибо за совет. Библиотека очень интересная. Неужели там есть всё от MSDN? ;) Структуру я так как и Вы создал - "одинарную", но не мог понять как получать отдельно данные для "фиксированных и извлекаемых дисков". Код: plaintext 1. 2.
А как получить данные для структуры RemovableDiskInfo? Может флаг какой-то нужен или ещё что? т.к. у всех компакт-дисков (CD-ROM, CD-R и CD-RW) значение MediaType всегда одинаково и = 51, а задача как раз и стоит в том, чтобы определить, что вставили в дисковод. А может я ни в ту сторону копаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2011, 19:27 |
|
Перевести структуру DEVICE_MEDIA_INFO в РВ
|
|||
---|---|---|---|
#18+
AISА как получить данные для структуры RemovableDiskInfo? Может флаг какой-то нужен или ещё что? т.к. у всех компакт-дисков (CD-ROM, CD-R и CD-RW) значение MediaType всегда одинаково и = 51, а задача как раз и стоит в том, чтобы определить, что вставили в дисковод. А может я ни в ту сторону копаю? Для removable все тоже самое. Просто вы вероятно не совсем правильно поняли назначение этой ф-и (IOCTL_STORAGE_GET_MEDIA_TYPES_EX). Поле MediaInfo в структуре GET_MEDIA_TYPES - это массив, длина которого хранится в поле MediaInfoCount. В элементах массива хранится структура DEVICE_MEDIA_INFO для каждого типа носителя поддерживаемого устройством (а не только текущего вставленного). Насчет того, определить какой конкретно тип носителя вставлен, то вероятно для этого есть какая-то другая функция. Я не в курсе. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2011, 21:14 |
|
Перевести структуру DEVICE_MEDIA_INFO в РВ
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyПросто вы вероятно не совсем правильно поняли назначение этой ф-и (IOCTL_STORAGE_GET_MEDIA_TYPES_EX). Поле MediaInfo в структуре GET_MEDIA_TYPES - это массив, длина которого хранится в поле MediaInfoCount. В элементах массива хранится структура DEVICE_MEDIA_INFO для каждого типа носителя поддерживаемого устройством (а не только текущего вставленного). Про поле MediaInfo я собственно так и понимал, но считал, что есть элемент массива для DiskInfo, и есть для RemovableDiskInfo. В 1-ом случае покажет какой DEVICE (т.е. CD либо DVD устройство), а во 2-ом - какой туда вставлен компакт-диск. А далее определяем "кто is who": Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Думаю, что STORAGE_MEDIA_TYPE - это все-таки именно то, но Вы правы - "для этого есть какая-то другая функция", либо команда. Спасибо за комментарий. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.04.2011, 23:46 |
|
|
start [/forum/topic.php?fid=15&msg=37197043&tid=1335758]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 284ms |
total: | 415ms |
0 / 0 |