Поделиться через


Метод IBackgroundCopyJob::GetError

Извлекает интерфейс ошибки после возникновения ошибки.

Оптимизация доставки создает объект ошибки, если задание находится в состоянии BG_JOB_STATE_ERROR или BG_JOB_STATE_TRANSIENT_ERROR. Служба не создает объект ошибки при сбое вызова метода интерфейса IBackgroundCopyXXXX . Объект ошибки доступен до тех пор, пока оптимизация доставки не начнет передачу данных (состояние задания изменится на BG_JOB_STATE_TRANSFERRING) для задания или пока приложение не завершит работу.

Синтаксис

HRESULT GetError(
  [out] IBackgroundCopyError **ppError
);

Параметры

ppError [out]

Интерфейс ошибки, предоставляющий код ошибки, описание ошибки и контекст, в котором произошла ошибка. Этот параметр также определяет файл, передаваемый во время возникновения ошибки. По завершении отпустите ppError .

Возвращаемое значение

Этот метод возвращает следующие значения HRESULT , а также другие.

Код возврата Описание
S_OK
Объект ошибки успешно создан.
DO_E_ERROR_INFORMATION_UNAVAILABLE
Интерфейс ошибки доступен только после возникновения ошибки (BG_JOB_STATE_ERROR или BG_JOB_STATE_TRANSIENT_ERROR) и до начала передачи данных оптимизации доставки (BG_JOB_STATE_TRANSFERRING).

Комментарии

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

  • Чтобы опросить состояние задания, вызовите метод IBackgroundCopyJob::GetState . Если состояние BG_JOB_STATE_ERROR, задание завершается ошибкой.
  • Чтобы получать уведомления при возникновении ошибки, реализуйте интерфейс IBackgroundCopyCallback (в частности, метод JobError ). Затем вызовите метод IBackgroundCopyJob::SetNotifyInterface , чтобы зарегистрировать обратный вызов, и метод IBackgroundCopyJob::SetNotifyFlags , чтобы задать флаг BG_NOTIFY_JOB_ERROR.

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

  • Чтобы отменить задание, вызовите метод IBackgroundCopyJob::Cancel .
  • Чтобы сохранить файлы, которые были успешно переданы до возникновения ошибки, вызовите метод IBackgroundCopyJob::Complete .
  • Чтобы завершить обработку задания, устраните проблему, а затем вызовите метод IBackgroundCopyJob::Resume .

Требования

Требование Значение
Минимальная версия клиента
Windows 10, версия 1709 [только классические приложения]
Минимальная версия сервера
Windows Server версии 1709 [только классические приложения]
Заголовок
Deliveryoptimization.h
IDL
DeliveryOptimization.idl
Библиотека
Dosvc.lib
DLL
Dosvc.dll
IID
IID_IBackgroundCopyJob определяется как 37668D37-507E-4160-9316-26306D150B12

См. также раздел

IBackgroundCopyJob

IBackgroundCopyCallback::JobError

IBackgroundCopyError

IBackgroundCopyJob::GetState