У меня есть Gumstix Overo Fire COM, в который я загрузил базовое ядро Linux и драйверы запоминающего устройства. Затем устройство подключается к хост-машине, на которой оно отображается как обычное запоминающее устройство USB. Затем оно настраивается на повторную вставку и извлечение своего g_file_storage
модуля каждые 5 секунд, чтобы эмулировать повторную ручную и вставку устройства в хост. Хотя это может показаться странным, это совершенно необходимо, так как я хочу собирать большие объемы сообщений USB от драйвера.
Эта повторяющаяся «вставка» и «удаление» устройства отлично работает на хостах Mac и Linux, но на большинстве машин Windows я получаю BSoD примерно после 10 вставок и удалений. Сначала я думал, что, возможно, это «политика удаления» устройства вызывает проблему, как описаноздесь. Однако некоторые эксперименты показали, что эта настройка не имела никакого эффекта; BSoD все равно появлялся, даже когда политика удаления была оптимизирована для быстрого удаления.
Кроме того, я не получаю BSoD или никаких ошибок на некоторых машинах Windows, на которых у меня есть права администратора и которые имеют все заводские/стандартные настройки. Проблема в основном возникает на общедоступных машинах, которые настроены на более высокий уровень безопасности и ограниченные пользовательские настройки. Поэтому я считаю, что проблема вызвана какой-то настройкой безопасности, но я недостаточно знаком, чтобы знать, что именно.
Какие настройки могут быть причиной этой проблемы?
РЕДАКТИРОВАТЬ: Вот «Техническая информация» по BSoD:
*** STOP: 0x0000007E (0xFFFFFFFFC0000005, 0xFFFFF88001612652, 0xFFFFF88002FB9308, 0xFFFFF88002FB8B60)
*** FarSpace.sys - Address FFFFF88001612652 base at FFFFF88001600000, DateStamp 50046f1f
Насколько я могу судить, это Farspace.sys
частьМорозильная камерапрограммное обеспечение.
решение1
Ошибка остановки 7E — это «SYSTEM_THREAD_EXCEPTION_NOT_HANDLED":
Эта проверка ошибок показывает, что системный поток сгенерировал исключение, которое обработчик ошибок не перехватил.
Я почти уверен, что FarSpace.sys является частью программного обеспечения Faronics, и они делаютМорозильная камераПоскольку вы говорите, что это общедоступные машины, я предполагаю, что кто-то заблокировал их с помощью Deep Freeze, и этот факт не позволяет им нормально работать с вашими нестандартными подключениями/отключениями USB.
Если это так, то сначала я бы проверил, ведут ли они себя по-другому, когда «разморожены», и если да, то я бы подошел кПоддержка Faronicsиз некоторых рекомендаций о том, как делать то, что вы хотите, пока компьютер «завис».
Кроме того, вам, возможно, захочется четырежды проверить любой используемый вами код, чтобы убедиться, что он правильно очищает потоки после завершения работы с ними.