Что означает код HRESULT 0x00030201 (STG_S_BLOCK)?

 
Предыдущий Следующий
STG_S_CONVERTED STG_S_RETRYNOW

STG_S_BLOCK

Обратное давление асинхронного хранилища

Этот статус успешного выполнения относится к асинхронному структурированному хранилищу COM. Приёмник IProgressNotify может вернуть его, запрашивая блокировку, когда чтение достигает данных, ещё не переданных через IFillLockBytes. Это управляющий результат, а не признак повреждения составного файла.

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

Правильная обработка

  • Сохраняйте операцию хранилища и её асинхронный источник байтов действующими на время блокировки.
  • Пробуждайте при заполнении новых диапазонов, завершении загрузки или отмене.
  • Не преобразуйте этот результат квалифицированного успеха в постоянную ошибку ввода-вывода.
  • Записывайте запрошенный диапазон байтов и максимальный непрерывный диапазон, доступный сейчас.

Ссылки

IProgressNotify::OnProgress · IFillLockBytes · HRESULT хранилища Microsoft COM


Нужно найти другой код? Найти другой код состояния или ошибки.