Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.17.74.227] |
|
Сообщ.
#1
,
|
|
|
Пересобираю драйвер 20 летней давности. Под windows 10 20h2. Вылетает на строчках, где идёт обращение к локальным переменным.
PLOCAL_DEVICE_INFO deviceInfo; UNICODE_STRING ntDeviceName; UNICODE_STRING win32DeviceName; RtlInitUnicodeString(&instanceStr, INSTANCE_STR); RtlIntegerToUnicodeString(currentInstance, 10, &instanceStr); RtlInitUnicodeString(&ntDeviceName, PCI_DEVICE_NAME); ниже из дамп-файла. FAULTING_SOURCE_LINE: C:\Users\admin\Desktop\pci\pcidrv.c FAULTING_SOURCE_FILE: C:\Users\admin\Desktop\pci\pcidrv.c FAULTING_SOURCE_LINE_NUMBER: 223 FAULTING_SOURCE_CODE: 219: 220: RtlInitUnicodeString(&instanceStr, INSTANCE_STR); 221: RtlIntegerToUnicodeString(currentInstance, 10, &instanceStr); 222: > 223: RtlInitUnicodeString(&ntDeviceName, PCI_DEVICE_NAME); 224: if (ntDeviceName.Buffer == NULL) 225: { 226: return STATUS_INSUFFICIENT_RESOURCES; 227: } 228: RtlAppendUnicodeStringToString(&ntDeviceName, &instanceStr); Вылетает на строчке инициализации юникод строки. Она обьявленна как локальная переменная. Год назад пересобирал тот же самый драйвер под Win 10 - 1909. Было всё нормально. Сейчас пробую в 2019 студии SDK - Windows 10.0.19041. Возможно указал не правильные опции или ещё что-то. Какую ещё информацию нужно указать, чтобы мне помогли? Заранее спасибо! |
Сообщ.
#2
,
|
|
|
Судя по сообщению об ошибке, проблема может быть связана с попыткой доступа к памяти, которая не была выделена или инициализирована должным образом. Возможно, в новой версии Windows произошли изменения, которые влияют на выполнение этого кода.
Чтобы понять причину проблемы, можно попробовать отладить драйвер и увидеть, что происходит на момент выполнения программы. Также стоит проверить значения указателей на переменные и убедиться, что они не равны NULL. Если проблема не будет решена путем отладки, можно также попробовать перекомпилировать код с помощью предыдущей версии SDK и проверить, решит ли это проблему. Также, убедитесь, что вы используете правильные версии библиотек и компилятора для вашей среды разработки. |
Сообщ.
#3
,
|
|
|
Скорее всего проблема в строках 220 и 221. Очень странные строки. 220 - инициализирует юникод строку неким, скорее всего, константным значением, а потом туда идёт попытка записать некоторое строковое представления десятичного числа. Это вот ну очень неправильно.
Добавлено Да там и с 224 по 228 строку тоже глупости. |