Ошибка 997 протекает наложенное событие ввода вывода

Сбой при установке: «Ошибка 997. Выполняется операция ввода-вывода с перекрытием

Ошибка 997 протекает наложенное событие ввода вывода
При установке программы Autodesk возникает следующая ошибка:
 

«Ошибка 997. Выполняется операция ввода-вывода с перекрытием.

Ошибки, связанные с SECREPAIR и SECUREREPAIR, могут фиксироваться в журнале установки. В журнале установки можно найти записи, похожие на следующие:
 

MSI (s) (D8:38) [14:20:10:710]: SECREPAIR: CryptAcquireContext succeeded

MSI (s) (08:A4) [14:22:31:690]: SECUREREPAIR: SecureRepair Failed. Error code: 35F03B34B8

Эта известная неполадка может быть вызвана обновлением системы безопасности Microsoft KB2918614.

Обновление использует криптографические ключи и сертификаты для хэширования файлов установки вместе с профилем пользователя, выполнившего вход в систему.

Когда установка пакета MSI осуществляется через обязательный или временный профиль пользователя, возникает ошибка, так как использование криптографических ключей и сертификатов в обязательных и временных профилях невозможно.

Важно! Решения в этой статье предназначены для технических специалистов с глубоким знанием операционной системы Windows, в том числе реестра Windows.

  1. Переименуйте:

    C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18  — на

    C:\ProgramData\Microsoft\Crypto\RSA\S-1-5-18_BAK

  2. Попробуйте установить программное обеспечение Autodesk еще раз.

Скачайте и установите данное исправление Microsoft, чтобы исправить ошибки обновления безопасности Microsoft KB2918614.

Решение 3. Удалите обновления, которые вызывают ошибку.

  1. Выберите «Панель управления» > «Удаление программы» (или «Программы и компоненты»).

  2. В меню слева выберите «Просмотр установленных обновлений».

  3. В поле поиска в правой верхней части экрана введите KB2918614.

    Удалите найденное обновление.

  4. Повторите поиск для KB3072630, KB3000988 и KB3008627.

    Если они есть в списке, также удалите их.

  5. Перезагрузите компьютер.
  6. Попытайтесь переустановить программу Autodesk.

Решение 4. Измените реестр.

Если после применения решений 1–3 установить продукт по-прежнему не удается, отредактируйте реестр Windows, добавив код продукта, который вы пытаетесь установить. Добавьте этот код продукта в SecureRepairWhiteList в реестре Windows.

Предупреждение! Используйте редактор реестра Microsoft® с осторожностью и только после сохранения резервной копии реестра, а также файлов system.dat и user.dat, как описано в указаниях к вашей операционной системе в базе знаний Майкрософт и в разделе Резервное копирование системного реестра.

Дополнительные сведения о реестре содержатся в разделах справки редактора реестра Microsoft.

  1. Откройте меню «Пуск» и в поле «Выполнить» введите regedit. После этого нажмите «ОК».

  2. Найдите и откройте следующий подраздел реестра (если он не существует, создайте его):
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer
  3. В меню «Правка» нажмите «Создать» и выберите «Параметр DWORD».

  4. Введите SecureRepairPolicy в качестве имени DWORD, заменив New Value #1, и нажмите клавишу ENTER.

  5. Щелкните правой кнопкой мыши SecureRepairPolicy и нажмите «Изменить».

  6. В поле «Значение» введите 2 и нажмите кнопку «ОК».

  7. Найдите и откройте следующий подраздел реестра:

    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer

  8. В меню «Правка» нажмите «Создать» и выберите «Раздел».

  9. Введите SecureRepairWhitelist в качестве имени и нажмите клавишу ENTER.

  10. Дважды щелкните ключ SecureRepairWhitelist, чтобы открыть его.

  11. В меню «Правка» нажмите «Создать» и выберите «Строковый параметр». Создайте строковые параметры, содержащие коды продуктов (включая скобки {}), которые необходимо добавить в список надежных получателей.
  • В качестве ИМЕНИ строкового параметра должен использоваться код продукта. Сведения о получении кода продукта см. в разделе Поиск кода продукта Autodesk. 
  • Столбец «Данные» можно не заполнять.
  • Пример

 

  1. Закройте редактор реестра и попробуйте еще раз установить программное обеспечение Autodesk.

Примеры ключей реестра

В приведенных ниже примерах ключей реестра (используется редактор реестра Windows версии 5.00) показаны записи, наличие которых необходимо для установки программ Autodesk. В первом примере (для AutoCAD LT 2015) GUID соответствует трем файлам MSI (acadlt.msi, AcadltLP.msi и AcadltPS.

msi), которые необходимо добавить в список исключений системы безопасности. Ключи для других продуктов соответствуют аналогичным файлам.

  [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Installer\SecureRepairWhitelist] Для ACAD LT 2015:

“{5783F2D7-E009-0000-0102-0060B0CE6BBA}”=””        ACAD LT 2015 (acadlt.msi)

“{5783F2D7-E009-0409-1102-0060B0CE6BBA}”=””        ACAD LT Language Pack (AcadltLP.msi)
“{5783F2D7-E009-0409-2102-0060B0CE6BBA}”=””        ACAD LT PSP (AcadltPS.msi) Для ACAD LT 2016: “{5783F2D7-F009-0000-0102-0060B0CE6BBA}”=””  “{5783F2D7-F009-0409-1102-0060B0CE6BBA}”=””  “{5783F2D7-F009-0409-2102-0060B0CE6BBA}”=”” Для ACAD LT 2017 “{28B89EEF-0009-0000-0102-CF3F3A09B77D}”=””  “{28B89EEF-0009-0409-1102-CF3F3A09B77D}”=””  “{28B89EEF-0009-0409-2102-CF3F3A09B77D}”=””  Для ACAD LT 2018 “{28B89EEF-1009-0000-0102-CF3F3A09B77D}”=””  “{28B89EEF-1009-0409-1102-CF3F3A09B77D}”=”” “{28B89EEF-1009-0409-2102-CF3F3A09B77D}”=”” Для Revit LT 2016 “{941030D0-1600-0510-0000-818BB38A95FC}”= “{7346B4A0-1600-0410-0000-705C0D862004}”= “{0BB716E0-1400-0810-0000-097DC2F354DF}”= “{0BB716E0-1600-0710-0000-097DC2F354DF}”= Для Revit LT 2018 “{3609A8D9-FC0C-4C9B-9F58-0B1D1A4FE556}”=”” “{941030D0-1800-0510-0000-818BB38A95FC}”=”” “{7346B4A0-1800-0410-0000-705C0D862004}”=”” “{579A14AB-CDBB-4F48-BD4B-264853E1C386}”=”” “{177AD7F6-9C77-4E50-BA53-B7259C5F282D}”=”” “{7847611E-92E9-4917-B395-71C91D523104}”=”” “{FCDED119-A969-4E48-8A32-D21AD6B03253}”=”” “{1B0F011A-66B4-4865-98B7-0FE132841035}”=”” “{6EC5DA32-D02D-47D4-A3C4-988C1BC1A5FE}”=”” Для AutoCAD 2016 “{5783F2D7-F001-0000-0102-0060B0CE6BBA}”= “{5783F2D7-F001-0000-3102-0060B0CE6BBA}”= “{5783F2D7-F001-0409-1102-0060B0CE6BBA}”= “{5783F2D7-F001-0409-2102-0060B0CE6BBA}”= “{5783F2D7-F004-0000-5102-0060B0CE6BBA}”= Для AutoCAD 2017 “{28B89EEF-0001-0000-0102-CF3F3A09B77D}”=”” “{C0954809-F5DC-426C-847E-8409DE14E4C0}”=”” “{28B89EEF-0001-0000-3102-CF3F3A09B77D}”=”” “{28B89EEF-0004-0000-5102-CF3F3A09B77D}”=”” “{EB6FE58F-8576-4272-BB9C-6B47D9EDFA4D}”=”” “{28B89EEF-0001-0409-2102-CF3F3A09B77D}”=”” “{7592A2EC-0F9E-0401-B9BA-5E190481F49A}”=”” “{28B89EEF-0001-0409-1102-CF3F3A09B77D}”=”” “{5F0F7049-0000-1033-0102-73A6DA3D7FA6}”=”” Для AutoCAD Architecture 2017 (включите коды для AutoCAD 2017 выше) “{28B89EEF-0004-0000-0102-CF3F3A09B77D}”=”” “{28B89EEF-0004-0409-1102-CF3F3A09B77D}”=”” “{28B89EEF-0004-0409-2102-CF3F3A09B77D}”=”” “{28B89EEF-0004-0409-4102-CF3F3A09B77D}”=”” C++ Redist. 2005–2013 “{4B6C7001-C7D6-3710-913E-5BC23FCE91E6}”=”” “{5FCE6D76-F5DC-37AB-B2B8-22AB8CEDB1D4}”=”” “{1D8E6291-B0D5-35EC-8441-6616F567A0F7}”=”” “{CF2BEA3C-26EA-32F8-AA9B-331F7E34BA97}”=”” “{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}”=”” “{9BE518E6-ECC6-35A9-88E4-87755C07200F}”=”” “{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}”=”” “{BD95A8CD-1D9F-35AD-981A-3E7925026EBB}”=”” “{52B37EC7-D836-0410-0464-3C24BCED2010}”=”” “{57E92DED-DC7C-41E5-B9E1-76D83BD2EABE}”=”” “{8C5F38D2-9EFE-49A4-B3F5-BF3210FED168}”=”” “{8C5F38D2-9EFE-49A4-B3F5-BF3210FED168}”=”” “{E0820BD5-930B-43EC-A3C1-2634D38A1931}”=”” “{9167CA34-4E58-49E3-8892-3C439739D2D3}”=”” “{0BB716E0-1600-0610-0000-097DC2F354DF}”=”” “{7A12802C-4864-423D-9732-3A22577CE006}”=”” “{B33F7E81-3398-4FC5-B947-C5989A103D91}”=”” “{3905B678-DC8D-4D5E-AA95-EA254D6C1239}”=”” “{06EC8EFF-0768-4D06-AAAE-DCBE7DC63B0D}”=”” “{D0F82C64-3E66-4B12-B12C-3F79C0F731C1}”=”” “{7592A2EC-0F9E-0301-B9BA-5E190481F49A}”=”” “{F6FD1651-0000-1033-0102-387BAF9B3B0A}”=”” “{EEB8F213-FF32-470F-B409-47DC28E658FF}”=”” .NET 4.7 “{BCF0C1F7-671C-3922-A7EA-8AC11F4FC0EB}”=”” Advance Steel 2018 (без ReCap) “{28B89EEF-1001-0000-0102-CF3F3A09B77D}”=”” “{28B89EEF-1026-0000-0102-CF3F3A09B77D}”=”” “{28B89EEF-1026-0000-3102-CF3F3A09B77D}”=”” “{28B89EEF-1004-0000-5102-CF3F3A09B77D}”=”” “{3609A8D9-FC0C-4C9B-9F58-0B1D1A4FE556}”=”” “{B65CD59E-A771-4354-AA4B-C3E01B496BCD}”=”” “{28B89EEF-1001-0409-1102-CF3F3A09B77D}”=”” “{28B89EEF-1026-0409-1102-CF3F3A09B77D}”=”” “{28B89EEF-1026-0409-2102-CF3F3A09B77D}”=”” “{20EC0CA2-346E-4660-9903-51B278DF15F6}”=”” “{384C4B74-B749-4AB6-9367-4D51A6AA9CB8}”=””

“{7592A2EC-0F9E-0501-B9BA-5E190481F49A}”=””

   AutoCAD Architecture 2019 “{28B89EEF-2004-0409-4102-CF3F3A09B77D}”=”” “{28B89EEF-2004-0409-2102-CF3F3A09B77D}”=”” “{28B89EEF-2004-0409-1102-CF3F3A09B77D}”=”” “{28B89EEF-2004-0000-5102-CF3F3A09B77D}”=”” “{28B89EEF-2004-0000-4102-CF3F3A09B77D}”=”” “{28B89EEF-2004-0000-3102-CF3F3A09B77D}”=”” “{28B89EEF-2004-0000-0102-CF3F3A09B77D}”=”” “{28B89EEF-2001-0409-2102-CF3F3A09B77D}”=”” “{28B89EEF-2001-0409-1102-CF3F3A09B77D}”=”” “{28B89EEF-2001-0000-3102-CF3F3A09B77D}”=””

“{28B89EEF-2001-0000-0102-CF3F3A09B77D}”=””

Версии:

все

Источник: https://knowledge.autodesk.com/ru/search-result/caas/sfdcarticles/sfdcarticles/RUS/Install-Failure-Error-997-Overlapped-I-O-operation-is-in-progress.html

Как исправить ошибку ввода вывода с диска в Windows

Ошибка 997 протекает наложенное событие ввода вывода

Полную версию статьи со всеми дополнительными видео уроками смотрите в источнике: https://hetmanrecovery.com/ru/recovery_news/how-to-fix-a-disk-i-o-error-in-the-windows-operating-system.htm

Пять способов исправления ошибки ввода/вывода c устройства. Как исправить ошибку самому, используя встроенные в Windows инструменты или сторонние приложения. Операционная система «Windows» является наиболее популярной и, вероятно, самой распространенной системой для управления компьютерными устройствами в мире.

Разработанная корпорацией «Microsoft», она включает в себя самые последние инновационные наработки в области компьютерных технологий и лучшие решения, взятые от старых версий программы.

Универсальность системы и богатый внутренний функционал операционной системы «Windows» делает ее незаменимой на различных устройствах: стационарных персональных компьютерах, ноутбуках, планшетах, коммуникаторах и т.д.

Суть проблемы

Благодаря повсеместному использованию и широкому диапазону возможностей, компьютерные устройства на базе операционной системы «Windows» применяются во всех сферах нашей жизни: управление производственными процессами, обслуживание офисов, решение консультационных и финансово-экономических задач, участие в научном и образовательном процессе, создании средств коммуникации, широчайший выбор игровых платформ и развлечений и т.д.

В домашних условиях для каждого конкретного пользователя персональные компьютеры и другие устройства решают не менее важные задачи: создание и обработка важных документов, хранение личной регистрационной информации, получение и отправка электронной почты, редактирование и форматирование фото и видео файлов, социальное общение, формирование досуга и многое другое.

Одним из основных элементов, отвечающих за обработку и хранение информации пользователя отвечают внутренние хранилища данных: твердотельные накопители «SSD» и жесткие диски «HDD». Они обладают необычайно высокой скоростью обработки информации и имеют значительный внутренний объем дискового пространства для хранения любого массива данных.

Однако, количество хранимой информации, находящейся у пользователя, с каждым годом, неуклонно растет. И как следствие, емкости внутренних дисковых хранилищ бывает часто недостаточно.

Если определенные файлы используются довольно редко (например, личные фото и видео альбомы), а также резервные копии данных или конфиденциальные файлы пользователя – то оптимальным средством для их хранения являются внешние подключаемые диски.

Соединяясь с персональным компьютером при помощи кабеля, они предоставляют доступ ко всей информации пользователя в любой момент. Однако не находятся в постоянном контакте с компьютером и хранятся отдельно.

Такой способ хранения данных позволяет быть уверенным в их сохранности, в случае выхода из строя основного жесткого диска компьютера. Ввиду постоянной эксплуатации внутренних дисков вероятность их выхода из строя гораздо выше, чем у внешних накопителей.

А также во внутреннем хранилище компьютера освобождается свободное место, используемое пользователем для решения своих актуальных задач.

Однако, ситуация, связанная с использованием внешних накопителей, может помимо всех своих положительных качеств иметь и отрицательные. Как и любые другие устройства, внешние накопители подвержены сбоям или поломкам.

Ответьте для себя на несколько простых вопросов.

Как часто вы подключаете свои внешние накопители к компьютеру? Раз в месяц или один раз в год? Как часто вы проверяете работоспособность вашего диска и возможность доступа к хранимой на нем информации?

Довольно распространена ситуация, когда, решив подключить свой диск к персональному компьютеру или ноутбуку, пользователь не смог получить к нему доступ. И в результате, операционная система выдает сообщение об ошибке ввода вывода с устройства.

В таком случае, ситуация кажется критической, особенно если на внешнем накопителе хранятся важные личные данные или резервная копия системы. Но не спешите паниковать, ведь неприятную ситуацию еще можно исправить. Мы покажем вам пять способов, как исправить ошибку ввода вывода с устройства, не теряя при этом никаких файлов.

Что представляет собой ошибка ввода вывода с устройства?

Ошибки ввода вывода с устройства довольно распространены.

Чаше всего мы связываем их с проблемами аппаратного обеспечения, такими как неправильный кабель, сбой с запоминающим устройством или неверно сконфигурированный драйвер.

Исходя из вышесказанного, существует несколько различных способов для исправления ошибки ввода вывода с устройства. Устранение большинства указанных проблем не займет у вас много времени и их достаточно легко осуществить.

Прежде чем начать исправление ошибки ввода вывода с устройства, выполните перезагрузку операционной системы, а затем повторите попытку.

Зачастую, такого действия бывает вполне достаточно для устранения возникшей ошибки. Но если ошибка не исчезла, то приступайте к выполнению нижеописанных способов.

После каждого действия проверяйте, исправлена ли проблема возникновения ошибки. Если нет, то переходите к следующему способу.

1. Кабели

Вам нужно выполнить полную проверку, выявляя и проверяя уязвимые места, которые могут послужить причиной возникновения ошибки ввода вывода.

Первое действие, которое нужно сделать – просто отрегулировать кабели подключения. Проверьте кабель и механизмы крепления на наличие повреждений, разломов, сколов или загрязнений. Отключите, а затем заново подключите кабель, соединяющий внешний накопитель с компьютером. Выполните такую проверку на обоих его концах, а затем повторите попытку доступа к диску.

Если кабель после повторного подключения не работает, то используйте другой «USB-кабель» и повторите попытку.

Если вы не уверены в работоспособности кабеля, соедините его с другим внешним устройством (в работоспособности которого вы полностью уверены) и подключите его к вашей системе.

Если он работает, то вы знаете, что кабель не испорчен, и возможно у вас другая причина возникновения ошибки.

2. «USB-порт»

Если первоначальная проверка показала, что причина возникновения ошибки находится не в кабеле, то попробуйте использовать альтернативный порт для подключения накопителя.

Большинство современных систем имеют несколько «USB-портов», так как многие внешние подключаемые устройства используют «USB-соединение». Кроме того, проверьте, насколько чистые ваши «USB-порты».

Если они пыльные или сильно загрязнены, то необходимо их полностью очистить, стараясь не повредить контакты, а затем повторите попытку.

3. Драйвера

Еще одно базовое, но забытое исправление ошибки ввода вывода с устройства – это обновление драйверов в вашей системе. Операционная система «Windows 10» должна автоматически обновлять все ваши драйвера.

Вопрос о постоянных обновлениях был очень болезненным моментом для многих пользователей, когда корпорация «Microsoft» выпустила операционную систему «Windows 10». Теоретически, система, постоянно обновляющая драйвера, не имеет изъянов.

И у вас никогда не должно возникать проблема с драйверами в «Windows 10».

Но на практике ситуация немного иная. «Windows» не всегда поддерживает версии драйверов в актуальном рабочем состоянии, а иногда постоянная система обновления драйверов просто не работает.

В таком случае, вам может помочь программы сторонних производителей, осуществляющие мониторинг системы на наличие устаревших драйверов.

Перейдите на сайт любого разработчика, загрузите и установите программу (в некоторых случаях потребуется ваше разрешение для антивирусной системы безопасности компьютера), а затем выполните сканирование системы на наличие устаревших драйверов.

Не удивляйтесь, если по результатам сканирования вы обнаружите большое количество устаревших версий. Во многих случаях соответствующие приложения и службы все еще работают нормально.

Просто программа сканирования уведомляет вас, что производитель выпустил более новую версию драйвера и она доступна для скачивания и установки.

Найдите драйвер для вашего устройства и обновите его, а затем повторите попытку использования внешнего накопителя.

4. Приложение «Chkdsk»

Хотя ошибки ввода вывода с устройства, в основном, связаны с повреждением оборудования, мы можем попытаться использовать интегрированное системное приложение для устранения проблемы. Приложение «chkdsk» проверяет файловую систему на наличие ошибок и исправляет их.

Для запуска процесса проверки и исправления ошибок необходимо открыть приложение «Командная строка (администратор)». В операционной системе «Windows 10» представлено много различных способов для запуска командной строки с правами администратора. Мы покажем вам только несколько способов, и вы решите какой из них вам наиболее подходит для дальнейшего применения.

1 способ: Нажмите кнопку «Пуск» в нижнем левом углу рабочего стола и откройте главное пользовательское меню «Windows». Используя полосу прокрутки, опустите бегунок вниз и выберите раздел «Служебные – Windows».

Раскройте вложенное меню и найдите раздел «Командная строка». Щелкните по нему правой кнопкой мыши и откройте всплывающее меню.

Выберите раздел «Дополнительно» и вызовите вложенное меню, в котором нажмите раздел «Запуск от имени администратора».

2 способ: Откройте приложение «Поиск», нажав на соответствующую кнопку, расположенную рядом с кнопкой «Пуск» в нижнем левом углу экрана.

Введите в поле поиска запрос «командная» или «cmd». В разделе «Лучшее соответствие» найдите искомое приложение и нажмите на нем правой кнопкой мыши.

В открывшемся всплывающем меню выберите раздел «Запуск от имени администратора».

3 способ: Откройте проводник файлов «Windows», дважды щелкнув ярлык «Этот компьютер», расположенный на рабочем столе, и перейдите по следующему адресу: «C:\Windows\System32». Найдите в списке вложенных файлов исполняемый файл «cmd.exe», щелкните по нему правой кнопкой мыши, и во всплывающем меню выберите раздел «Запуск от имени администратора».

Затем в приложении «Администратор: Командная строка» введите следующую команду: «chkdsk /f /r /x [буква вашего диска]», и нажмите клавишу «Ввод» на клавиатуре. Укажите ту букву названия диска, которая присвоена вашему накопителю (в нашем примере указана буква диска «D:»).

Процесс сканирования может занять некоторое время, особенно если приложение обнаружит сектора, требующие ремонта.

По завершению, приложение представит отчет о выполненных действиях и перечислит любые ремонтные работы, которые были произведены для исправления обнаруженных неполадок накопителя.

5. Используйте программу «Speccy» для проверки работоспособности диска

Если вышеперечисленные исправления не помогли, то вы можете проверить общее состояние жесткого диска, используя бесплатную программу стороннего издателя «Speccy».

Загрузите и установите «Speccy», выполнив предварительный поиск сайта разработчика в Интернете. В окне программы в левой панели выберите раздел «Хранение данных».

В правой панели окна вы увидите развернутый список доступных устройств хранения, прокрутите страницу вниз и найдите соответствующий диск. Они обычно имеют полную маркировку.

Под техническими характеристиками привода находится раскрывающейся список таблицы атрибутов «S.M.A.R.T.». На эту таблицу вам и нужно обратить особое внимание.

«S.M.A.R.T.

» в переводе с английского означает технология самоконтроля, анализа и отчётности, использующая встроенную систему мониторинга и предоставляющая пользователю полную оценку состояния здоровья жёсткого диска.

На представленном выше изображении вы можете увидеть, что программа «Speccy» присваивает каждому показателю мониторинга определенный рейтинг. Вас, в первую очередь, должны заинтересовать следующие показатели:

  • 05: Переназначенные сектора;
  • 0A: Попытки раскрутки;
  • C4: Операции переназначения;
  • C5: Нестабильные сектора;
  • C6: Неисправимые сектора.

Поразительный факт: Исследование «Google» показало, что в течение первых шестидесяти дней после возникновения первой непоправимой ошибки, вероятность выхода из строя диска в тридцать девять раз больше, чем для аналогичного диска без ошибок.

Справедливости ради следует отметить, что исследование «Google» также делает вывод о том, что рейтинги надежности диска «S.M.A.R.T.

» имеют ограниченную пользу при прогнозировании надвигающихся сбоев в работе накопителя, но могут представить хорошую общую характеристику состояния диска.

Имейте это в виду, если какой-либо из вышеперечисленных атрибутов показывает ошибки (или несколько ошибок для нескольких атрибутов), то это серьезный повод задуматься о переносе всех данных на другой носитель и замене накопителя.

Использование программы «Speccy» не обязательно устранит ошибку ввода вывода с устройства. Но поможет отобразить общую картину работоспособности диска.

Для сравнения, вы можете воспользоваться другими программами сторонних производителей, широко представленных в сети Интернет.

Больше нет ошибок ввода вывода с устройства!

Мы надеемся, что после всех выполненных действий ваша ошибка ввода вывода с устройства была устранена, и вы получили доступ к своему накопителю.

Возникновение такой ошибки не всегда означает приближающийся конец для вашего диска. Но это, однако, хороший индикатор того, что с диском, возможно, что-то происходит.

Поэтому, не стоит выяснять, является ли эта ошибка началом более серьезных проблем.

А необходимо сосредоточится на том, чтобы создать резервные копии файлов на другом диске и задуматься о приобретении нового жесткого диска.

Источник: https://zen.yandex.ru/media/hetmansoftware/kak-ispravit-oshibku-vvoda-vyvoda-s-diska-v-windows-5c0eaf7d71a92900aa02b027

Проблема с записью информации в COM-порт под WinXP

Ошибка 997 протекает наложенное событие ввода вывода
 
MAPIIIAJL   (2003-08-07 21:41) [0]

Люди нужна ваша помощь. Осуществляю обмен с устройством в WinXP, формирую посылку длинной 16 байт, пытаюсь отправить ее в COM порт, но Функция WriteFile отказывается работать, выдает сообщение: “Протекает наложенное событие ввода/вывода”.

Когда вместо праметра этой функции “@ovr”, ставлю “nil”, возникает другая ошибка после ее выполнения “Параметр задан неверно”. Не знаю что делать. Подскажите. Вот пример кода: Запись в порт: function WriteCom(l: Integer): boolean; var i: Integer; dwCommEvent: DWORD; lpMsgBuf:pchar; ovr:TOVERLAPPED; comst:TCOMSTAT; begin dwSize:=0; ovr.Internal:=0;ovr.InternalHigh:=0;ovr.Offset:=0; ovr.

OffsetHigh:=0;ovr.hEvent:=0; ovr.

hEvent:=CreateEvent(nil,True,False,nil); ks(l);//Расчет контрольной суммы if not EscapeCommFunction(hCommPort,CLRDTR) then begin result:=False; exit; end; hCommSetTimeOuts(50,5,100,5,1); if not WriteFile(hCommPort,buf,l,dwSize,@ovr) then begin FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS, nil, GetLastError(), LANG_NEUTRAL , // Default language @lpMsgBuf, 0, nil); Application.MessageBox(lpMsgBuf,”Error”,MB_OK or MB_ICONINFORMATION ); result:=false; exit; end; if not EscapeCommFunction(hCommPort,SETDTR) then begin result:=False; exit; end; C_Wr:=C_Wr+1; result:= TRUE; end; Установка таймаутов: procedure hCommSetTimeOuts(Rit: DWORD; Rttm: DWORD; Rttc: DWORD; Wttm: DWORD; Wttc: DWORD); var t: TCOMMTIMEOUTS; begin GetCommTimeouts(hCommPort,t); t.ReadIntervalTimeout:= Rit; t.ReadTotalTimeoutMultiplier:=Rttm; t.ReadTotalTimeoutConstant:=Rttc; t.WriteTotalTimeoutMultiplier:=Wttm; t.WriteTotalTimeoutConstant:=Wttc ; if Not(SetCommTimeouts(hCommPort,t)) then SystemMessError(); end; Аналогичная бодяга творится и с функцией ReadFile. Когда вместо WriteFile, я использую функцию TransmitCommChar (т.е. передаю всю посылку побайтно). Такая фишка работает прекрасно в 98-х виндах, но не в XP.

 
Digitman   (2003-08-08 09:37) [1]

> выдает сообщение: “Протекает наложенное событие ввода/вывода”. > Когда вместо праметра этой функции “@ovr”, ставлю “nil”, > возникает другая ошибка после ее выполнения “Параметр задан > неверно”. все верно. так и должно быть.

коль скоро ты создал коммуникационный файл с флагом FILE_FLAG_OVERLAPPED, ты обязан указать именно @ovr – адрес структуры-оверлэпа, а не nil.

поскольку использование системного оверлэп-механизма ввода/вывода подразумевает асинхронные операции в/в, то возврат ф-циями ввода/вывода кода ошибки ERROR_IO_PENDING – вполне нормальное явление, которое следует интерпретировать не как отказ, а как извещение о старте “фоновой” операции.

О факте завершения и результатах стартованной таким образом операции система сообщит “просигналив” ивентом, что ты создал и указал в оверлэп-структуре, передав хендл ивента (hEvent). При получении ERROR_IO_PENDING как результата GetLastError после “неуспешного” завершения ф-ций в/в, необходимо действовать в соответствии со след.

https://www.youtube.com/watch?v=kVVVAPROuPU

рекомендациями (ниже – цитата из станд.хэлпа): Overlapped operations enable a thread to execute a time-consuming I/O operation in the background, leaving the thread free to perform other tasks.

To enable overlapped I/O operations on a communications resource, the thread must specify the FILE_FLAG_OVERLAPPED flag in the CreateFile function when the handle is opened. To execute the ReadFile or WriteFile function as an overlapped operation, the calling thread must specify a pointer to an OVERLAPPED structure.

The OVERLAPPED structure must contain a handle to a manual-reset (not an auto-reset) event object. The system sets the state of the event object to not-signaled when a call to the I/O function returns before the operation has been completed. The system sets the state of the event object to signaled when the operation has been completed.

The thread uses a wait function to check the current state of the event object or to wait for its state to be signaled. The ReadFileEx and WriteFileEx functions can be performed only as overlapped operations. The calling thread specifies a pointer to the FileIOCompletionRoutine function, which is executed when the overlapped operation is completed. The completion routine is executed only if the calling thread performs an alertable operation. For more information about event objects, wait functions, alertable waits, and completion routines, see Synchronization.

 
N169   (2003-08-08 10:23) [2]

+ Кстати насчёт “EscapeCommFunction(hCommPort,SETDTR)” Если задана аппаратная поддержка квитирования, DTR управляется автоматически, и эта ф-я всегда будет возвращать FALSE, так что разумно игнорировать её возврат

 
MAPIIIAJL   (2003-08-08 12:20) [3]

Digitman ©, Я попробую сделать ожидание окончания операции передачи таким макаром:
WriteFile(hCommPort,buf,l,dwSize,@ovr); if(WaitForSingleObject(ovr.hEvent,2000)=WAIT_OBJECT_0) then

( hCommPort,ovr,dwSize,FALSE)

Digitman ©, Я попробую сделать ожидание окончания операции передачи таким макаром:
WriteFile(hCommPort,buf,l,dwSize,@ovr); if(WaitForSingleObject(ovr.hEvent,2000)=WAIT_OBJECT_0) then GetOverlappedResult(hCommPort,ovr,dwSize,FALSE) else begin // Обработка ошибки // result:= False; end; Но, проблема в том что я не вижу посылки на осцилографе. Однако при использовании TransmitCommChar, я ее вижу.

А допустим мне ненужна асинхронная приемопередача. Как мне сделать так, чтобы при синронной приемопередаче функция WriteFile работала нормально?

 
Digitman   (2003-08-08 13:20) [4]

оставь свой осциллограф на время в покое) ответь на вопросы : 1. если WriteFile() возвратил False, то каков код отказа, возвращаемый GetLastError() ? 2. если WriteFile() возвратил True, то дожидаешься ли условия WaitForSingleObject()=WAIT_OBJECT_0 ? Если нет, то каков код отказа, возвращаемый WaitForSingleObject() ?

 
MAPIIIAJL   (2003-08-10 01:13) [5] Отвечаю: 1. если WriteFile() возвратил False, то каков код отказа, возвращаемый GetLastError() ? WriteFile возвращает False. Код возврата GetLastError соответствует 997! Извени что так долго, инет отрубили.
 
Nucl   (2003-08-10 16:58) [6]

http://delphibase.endimus.com/?action=viewfunc&topic=hardsystem&id=104 52

 
MAPIIIAJL   (2003-08-10 20:31) [7]

Nucl © В том примере, что ты мне дал есть небольшое НО. Ограничения: D6, WinXP. У меня стоит D7 и WinXP. Если ты прочитал вопрос, то стоит проблема работы в WinXP. Конечно, необходимо чтобы все работало и в 98, и в WinXP. И еще компоненты различные тоже брать не очень хочется, мне кажется что просто все решается с помощью API функций.

 
Nucl   (2003-08-10 20:57) [8]

2 Маршал да нет его там, рулит везде (сам проверял)

 
MAPIIIAJL   (2003-08-11 00:27) [9]

Nucl © Ок. Спасибо, попробую. Заманчивый код.

 
Digitman   (2003-08-11 09:25) [10]

> WriteFile возвращает False. Код возврата GetLastError соответствует > 997! Все верно. ERROR_IO_PENDING = 997, как и ожидалось. Далее – что возвращает WaitForSingleObject() ?

 
MAPIIIAJL   (2003-08-11 10:44) [11]

WaitForSingleObject(ovr.hEvent,2000) возвращает 0. Как я понимаю, что соответствует WAIT_OBJECT_0.

 
Digitman   (2003-08-11 11:18) [12]

т.е. оверлэп-операция завершилась. следом же д.б. вызов GetOverlappedResult(), который даст инф-цию о числе байт, успешно отправленных в результате операции см. pNumberOytesTransferred Points to a 32-bit variable that receives the number of bytes that were actually transferred by a read or write operation

 
MAPIIIAJL   (2003-08-11 12:01) [13]

GetOverlappedResult(hCommPort,ovr,dwSize,FALSE); Все правильно и эта функция возвращает True. Значит операция успешно завершилась. И в счетчике байт dwSize стоит 16. Поеду на работу сгоняю проверю, как это все с устройством работает. Отпишусь как приеду. Спасиб.

 
MAPIIIAJL   (2003-08-11 21:05) [14]

Digitman Все заработало в лучшем виде. Все оказалось очень просто. Единственное что я не уяснил, это: что именно ожидает функция WaitForSingleObject?

 
Digitman   (2003-08-12 08:31) [15]

WaitForSingleObject() ожидает перевода системой объекта hEvent в сигналящее состояние

 
MAPIIIAJL   (2003-08-12 09:54) [16]

Digitman Огромное тебе спасибо за помощь.

Источник: http://delphimaster.net/view/7-74512

Error 997 протекает наложенное событие ввода вывода

Ошибка 997 протекает наложенное событие ввода вывода

› Компьютеры

Люди нужна ваша помощь. Осуществляю обмен с устройством в WinXP, формирую посылку длинной 16 байт, пытаюсь отправить ее в COM порт, но Функция WriteFile отказывается работать, выдает сообщение: “Протекает наложенное событие ввода/вывода”.

Когда вместо праметра этой функции “@ovr”, ставлю “nil”, возникает другая ошибка после ее выполнения “Параметр задан неверно”. Не знаю что делать. Подскажите.

Вот пример кода: Запись в порт: function WriteCom(l: Integer): boolean; var i: Integer; dwCommEvent: DWORD; lpMsgBuf:pchar; ovr:TOVERLAPPED; comst:TCOMSTAT; begin dwSize:=0; ovr.Internal:=0;ovr.InternalHigh:=0;ovr.Offset:=0; ovr.OffsetHigh:=0;ovr.hEvent:=0; ovr.

hEvent:=CreateEvent(nil,True,False,nil); ks(l);//Расчет контрольной суммы if not EscapeCommFunction(hCommPort,CLRDTR) then begin result:=False; exit; end; hCommSetTimeOuts(50,5,100,5,1); if not WriteFile(hCommPort,buf,l,dwSize,@ovr) then begin FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER or FORMAT_MESSAGE_FROM_SYSTEM or FORMAT_MESSAGE_IGNORE_INSERTS, nil, GetLastError(), LANG_NEUTRAL , // Default language @lpMsgBuf, 0, nil); Application.MessageBox(lpMsgBuf,”Error”,MB_OK or MB_ICONINFORMATION ); result:=false; exit; end; if not EscapeCommFunction(hCommPort,SETDTR) then begin result:=False; exit; end; C_Wr:=C_Wr+1; result:= TRUE;

end;

Установка таймаутов: procedure hCommSetTimeOuts(Rit: DWORD; Rttm: DWORD; Rttc: DWORD; Wttm: DWORD; Wttc: DWORD); var t: TCOMMTIMEOUTS; begin GetCommTimeouts(hCommPort,t); t.ReadIntervalTimeout:= Rit; t.

ReadTotalTimeoutMultiplier:=Rttm; t.ReadTotalTimeoutConstant:=Rttc; t.WriteTotalTimeoutMultiplier:=Wttm; t.

WriteTotalTimeoutConstant:=Wttc ; if Not(SetCommTimeouts(hCommPort,t)) then SystemMessError();

end;

Аналогичная бодяга творится и с функцией ReadFile. Когда вместо WriteFile, я использую функцию TransmitCommChar (т.е. передаю всю посылку побайтно). Такая фишка работает прекрасно в 98-х виндах, но не в XP.


Digitman ( 2003-08-08 09:37 ) [1]

> выдает сообщение: “Протекает наложенное событие ввода/вывода”. > Когда вместо праметра этой функции “@ovr”, ставлю “nil”, > возникает другая ошибка после ее выполнения “Параметр задан > неверно”.

все верно. так и должно быть.

https://www.youtube.com/watch?v=72JRVRDJe9o

коль скоро ты создал коммуникационный файл с флагом FILE_FLAG_OVERLAPPED, ты обязан указать именно @ovr — адрес структуры-оверлэпа, а не nil.

поскольку использование системного оверлэп-механизма ввода/вывода подразумевает асинхронные операции в/в, то возврат ф-циями ввода/вывода кода ошибки ERROR_IO_PENDING — вполне нормальное явление, которое следует интерпретировать не как отказ, а как извещение о старте “фоновой” операции.

О факте завершения и результатах стартованной таким образом операции система сообщит “просигналив” ивентом, что ты создал и указал в оверлэп-структуре, передав хендл ивента (hEvent).
При получении ERROR_IO_PENDING как результата GetLastError после “неуспешного” завершения ф-ций в/в, необходимо действовать в соответствии со след.

https://www.youtube.com/watch?v=kVVVAPROuPU

рекомендациями (ниже — цитата из станд.хэлпа):

Overlapped operations enable a thread to execute a time-consuming I/O operation in the background, leaving the thread free to perform other tasks.

To enable overlapped I/O operations on a communications resource, the thread must specify the FILE_FLAG_OVERLAPPED flag in the CreateFile function when the handle is opened.

To execute the ReadFile or WriteFile function as an overlapped operation, the calling thread must specify a pointer to an OVERLAPPED structure.The OVERLAPPED structure must contain a handle to a manual-reset (not an auto-reset) event object.

The system sets the state of the event object to not-signaled when a call to the I/O function returns before the operation has been completed. The system sets the state of the event object to signaled when the operation has been completed. The thread uses a wait function to check the current state of the event object or to wait for its state to be signaled.

The ReadFileEx and WriteFileEx functions can be performed only as overlapped operations.

The calling thread specifies a pointer to the FileIOCompletionRoutine function, which is executed when the overlapped operation is completed.

The completion routine is executed only if the calling thread performs an alertable operation.
For more information about event objects, wait functions, alertable waits, and completion routines, see Synchronization.


N169 ( 2003-08-08 10:23 ) [2]

+ Кстати насчёт “EscapeCommFunction(hCommPort,SETDTR)”

Если задана аппаратная поддержка квитирования, DTR управляется автоматически, и эта ф-я всегда будет возвращать FALSE, так что разумно игнорировать её возврат


MAPIIIAJL ( 2003-08-08 12:20 ) [3]

Digitman ©, Я попробую сделать ожидание окончания операции передачи таким макаром:

WriteFile(hCommPort,buf,l,dwSize,@ovr); if(WaitForSingleObject(ovr.hEvent,2000)=WAIT_OBJECT_0) then

( hCommPort,ovr,dwSize,FALSE ) Digitman ©, Я попробую сделать ожидание окончания операции передачи таким макаром:

WriteFile(hCommPort,buf,l,dwSize,@ovr); if(WaitForSingleObject(ovr.hEvent,2000)=WAIT_OBJECT_0) then GetOverlappedResult(hCommPort,ovr,dwSize,FALSE) else begin // Обработка ошибки // result:= False;

end;

Но, проблема в том что я не вижу посылки на осцилографе. Однако при использовании TransmitCommChar, я ее вижу.

А допустим мне ненужна асинхронная приемопередача. Как мне сделать так, чтобы при синронной приемопередаче функция WriteFile работала нормально?


Digitman ( 2003-08-08 13:20 ) [4]

оставь свой осциллограф на время в покое)

ответь на вопросы :

1. если WriteFile() возвратил False, то каков код отказа, возвращаемый GetLastError() ?

2. если WriteFile() возвратил True, то дожидаешься ли условия WaitForSingleObject()=WAIT_OBJECT_0 ? Если нет, то каков код отказа, возвращаемый WaitForSingleObject() ?


MAPIIIAJL ( 2003-08-10 01:13 ) [5]

Отвечаю: 1. если WriteFile() возвратил False, то каков код отказа, возвращаемый GetLastError() ? WriteFile возвращает False. Код возврата GetLastError соответствует 997!

Извени что так долго, инет отрубили.


Nucl ( 2003-08-10 16:58 ) [6]


MAPIIIAJL ( 2003-08-10 20:31 ) [7]

Nucl © В том примере, что ты мне дал есть небольшое НО. Ограничения: D6, WinXP. У меня стоит D7 и WinXP. Если ты прочитал вопрос, то стоит проблема работы в WinXP. Конечно, необходимо чтобы все работало и в 98, и в WinXP.

И еще компоненты различные тоже брать не очень хочется, мне кажется что просто все решается с помощью API функций.


Nucl ( 2003-08-10 20:57 ) [8]

2 Маршал
да нет его там, рулит везде (сам проверял)


MAPIIIAJL ( 2003-08-11 00:27 ) [9]

Nucl ©
Ок. Спасибо, попробую. Заманчивый код.


Digitman ( 2003-08-11 09:25 ) [10]

> WriteFile возвращает False. Код возврата GetLastError соответствует > 997!

Все верно. ERROR_IO_PENDING = 997, как и ожидалось.

Далее — что возвращает WaitForSingleObject() ?


MAPIIIAJL ( 2003-08-11 10:44 ) [11]

Источник: https://revclub.ru/error-997-protekaet-nalozhennoe-sobytie-vvoda/

Поделиться:
Нет комментариев

    Добавить комментарий

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.