|
IoGetDeviceObjectPointer routine + DEVICE_OBJECT structure с VB6 шансы есть?
|
|||
---|---|---|---|
#18+
Уперся рогом в проблему, которую описал здесь: А как установить/обновить драйвер для одного конкретного модема? Полный код того же самого проекта на VB6 я выкладывал: Возможно ли программно установить модем? Хочу раскрутить DEVICE_OBJECT structure забравшись туда через IoGetDeviceObjectPointer routine Пытался через указатели для начала (!!!"Ntoskrnl.exe" -exe это не "опечатка", ф-цию эту он там находит, т.е. с этим я угадал): Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Стабильно дает краш. Попытался ByRef DeviceObject As DEVICE_OBJECT, путь по идее правильный Объявил на дурака вот так: Код: vbnet 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.
Все равно стабильный краш. И подозреваю так и будет пока не подсуну структуру правильного размера. Только как ее правильно то записать, там еще вложенные структуры в том числе того же типа DEVICE_OBJECT. Код: 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.
Есть идеи как бороться? Через DDK на C++ пытался, но там другая проблема - мне не удалось сделать чтоб h-файлы не конфликтовали. Хочется на VB6 в это въехать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 09:31 |
|
IoGetDeviceObjectPointer routine + DEVICE_OBJECT structure с VB6 шансы есть?
|
|||
---|---|---|---|
#18+
Первый параметр неправильно передаётся. Остальное не смотрел. UNICODE_STRING structure ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 10:30 |
|
IoGetDeviceObjectPointer routine + DEVICE_OBJECT structure с VB6 шансы есть?
|
|||
---|---|---|---|
#18+
13-й кварталПервый параметр неправильно передаётся. Остальное не смотрел. UNICODE_STRING structure Да, проглядел. Скорее вот эта ссылка UNICODE_STRING structure И вот эта ф-ция: RtlInitUnicodeString routine Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
IoGetDeviceObjectPointer -продолжает ругаться крашем на ByRef as long в двух последних параметрах. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Попробовал структуры ByRef (от балды пока, хрен там разберет без поллитра) продолжает ругаться крашем Код: vbnet 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. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60.
Размер бы их хоть узнать как-то? Тогда б массив байтов попытался б подсунуть. Там ведь дело тонкое. Байтов до хрена, а больше меньше - расстрел. И еще 2 параметра, угадать нереально. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 12:02 |
|
IoGetDeviceObjectPointer routine + DEVICE_OBJECT structure с VB6 шансы есть?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 13:13 |
|
IoGetDeviceObjectPointer routine + DEVICE_OBJECT structure с VB6 шансы есть?
|
|||
---|---|---|---|
#18+
Antonariyнасчет union union легко обходится например в Opal я тупо декларировал несколько структур и несколько вариантов одной и той же API чтоб не морочиться. В случае DEVICE_OBJECT скорее всего достаточно одного Long вместо Union что там есть. Вот как бы размер структуры подсчитать/угадать. Мне по сути надо добиться прежде всего чтоб ф-ция не крашила. Тогда уже можно потихоньку выяснять ху is ху. Один из вариантов - родить хоть что-то компилирующееся в C++ и распечатать размер. А по другому никак? И почему оно с Byref as Long вылетает? Некуда результаты класть? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2014, 14:10 |
|
|
start [/forum/topic.php?fid=60&msg=38666167&tid=2156322]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
others: | 18ms |
total: | 137ms |
0 / 0 |