Sysinternals 'Portmon: Ошибка 2
Когда я пытаюсь подключиться к локальным портам, Computer → Connect local, используя Portmon v. 3.02, я получаю сообщение об ошибке, Ошибка 2, в маленьком диалоговом окне ошибки:
![Enter image description here]()
Я запускаю инструмент как администратор (если нет, я получаю ошибку 6).
Кстати, это Windows 7 x64. В 32-разрядной версии Windows 7 x86 она работает нормально. Как я могу исправить эту проблему?
Ответы
Ответ 1
Sysinternals 'Portmon работает только в 32-разрядных версиях Windows. Он не поддерживает 64-битный (возможно, его драйвер не подписан).
На домашней странице Portmon:
- Работает:
- Клиент: Windows XP (32-разрядная версия) и выше (32-разрядная версия).
- Сервер: Windows Server 2003 (32-разрядная версия) и выше (32-разрядная версия).
Ответ 2
В проводнике Windows щелкните правой кнопкой мыши по portmon.exe
→ выберите "Свойства" → щелкните вкладку "Совместимость" и запустите в режиме совместимости с Windows XP. Он отлично работает, как в Windows 7 64-бит.
Ответ 3
"Ошибка 2" - "Не удается найти указанный файл", то есть не удается найти требуемый файл DLL.
Первоначально, вы получили эту ошибку, когда пытались запустить Portmon из сетевого расположения: это нарушило доверие к безопасности, из-за чего Portmon оказался ненадежным (или, возможно, просто испортил путь поиска).
Microsoft 64-разрядная версия Windows 7 на моей копии Windows Dependency Walker сообщает мне, что файл PORTMSYS.SYS (файл, созданный/загруженный программой Portmon.exe) имеет неразрешенные зависимости от ci.dll, clfs.sys, hal.dll. и kdcom.dll.
Это
code integrity
common log file system
hardware abstraction layer
kernel debugger com
библиотеки, и они на самом деле не отсутствуют: если бы они были, Windows не загрузится. Однако я не вижу копии этих файлов в SysWow64. Это наводит меня на мысль, что проблема не в portman.sys: проблема в уровне совместимости win32 в Windows 7/64: он не поддерживает должным образом отладку.
Сейчас 2018 год. 64-разрядной версии Portmon нет. Последовательные порты являются устаревшим стандартом. Проблема Windows 7 была исправлена выпуском Windows 8.1. Однако существует небольшая вероятность того, что некоторые утилиты Visual Studio или обновление для системы безопасности, перенесенные в Windows 7, решат проблему. Возможно, кто-то, кто знаком с SysWow и отладкой, прокомментирует.
Ответ 4
Я еще не пробовал, но этот вопрос упоминает com0com. Он создает два виртуальных последовательных порта и эмулирует нулевой модемный кабель между ними. Он утверждает, что может работать на 64-битной Windows. Я не уверен, идет ли речь о программном обеспечении, которое позволяет вам просто вводить входные данные из реального порта в один из виртуальных портов. В одном из FAQ говорится, что вы можете включить ведение журнала.
Я думаю, что в худшем случае вы можете написать свою небольшую программу, которая передает данные с реального порта на один из виртуальных портов и записывает все это.
Здесь также этот вопрос об альтернативах с открытым исходным кодом, в котором упоминается несколько проектов.
Ответ 5
Я использовал AccessPort
http://sudt.com/en/ap/download.htm, и он отлично работает. Очень похоже на Portmon
Ответ 6
Не запускайте Portmon с сетевого диска/пути или чего-то еще.
Скопируйте на жесткий диск, например, на рабочий стол, перезапустите и попробуйте снова!
Ответ 7
Если вы запустите Portmon в режиме совместимости, он будет работать.
Установите флажок "Запустить старые программы в этой версии Windows".
Это говорит:
Чтобы запустить средство устранения неполадок совместимости программ:
- Откройте средство устранения неполадок совместимости программ, нажав кнопку "Пуск" Изображение кнопки "Пуск" и затем нажав "Панель управления". В поле поиска введите Устранение неполадок, а затем нажмите Устранение неполадок. В разделе "Программы" выберите "Запустить программы, созданные для предыдущих версий Windows".
- Следуйте инструкциям в устранении неполадок.
Выше приведено публичное объяснение от Microsoft распространенной ситуации при запуске старых приложений в Windows.
Но я могу сказать это кратко;
- Щелкните правой кнопкой мыши на portmon.exe
- Выберите меню "Устранение неполадок совместимости" или что-то в этом роде (я использую иностранную версию Windows, поэтому не вижу правильного названия этого меню на английском языке.)
- Выберите автоматический режим
- Он обнаружит проблему и порекомендует режим Windows XP (SP2)
- Выберите его и снова запустите Portmon.
Надеюсь это работает!
Ответ 8
Вместо portmon для Windows x64 вы можете использовать эмулятор пары виртуальных COM-портов и простую программу, которая соединит физический порт и один из виртуальных, а также выполнит функцию регистрации.
Для создания пары виртуальных COM-портов вы можете использовать:
- com0com (предпочтительно версия "com0com-2.2.2.0-x64-fre-signature", поскольку она содержит подписанный драйвер x64)
- Эмулятор виртуальных последовательных портов (VSPE), каждый раз, когда он запускается на x64, он просит купить драйвер, но он работает, даже если вы отказываетесь.
Вы можете найти простую программу картирования и регистрации, например, здесь, или вы можете написать ее самостоятельно, это просто.
Последовательность действий следующая:
- Создайте пару виртуальных COM-портов с помощью эмулятора (например, COM28 и COM29)
- Пусть внешнее устройство подключено к порту COM1 компьютера. В программе, обмен которой с внешним устройством мы хотим слушать, мы настроили порт COM28 (вместо СОМ1) для связи.
- В программе отображения мы установили, что хотим связывать и регистрировать порты COM1 и COM28 (не забудьте установить скорость передачи данных в бодах).
Ответ 9
Чтобы проверить работоспособность оборудования, возможно, вы загрузите Live live CD и запустите statserial
и/или minicom
, чтобы убедиться, что он работает. Knoppix, похоже, содержит обе эти программы.
Последовательные порты в Linux называются /dev/ttyS0
для COM1, /dev/ttyS1
для COM2 и т.д.