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


функция обратного вызова PRJ_CANCEL_COMMAND_CB (projectedfslib.h)

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

Синтаксис

PRJ_CANCEL_COMMAND_CB PrjCancelCommandCb;

void PrjCancelCommandCb(
  [in] const PRJ_CALLBACK_DATA *callbackData
)
{...}

Параметры

[in] callbackData

Сведения об операции. Для реализации этого обратного вызова необходимы следующие члены callbackData :

CommandId Определяет операцию, которая должна быть отменена.

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

None

Remarks

Каждый вызов обратного вызова поставщика имеет параметр callbackData с полем CommandId . Если поставщик предоставляет реализацию этого обратного вызова, он должен отслеживать значения CommandId обратных вызовов, которые он обрабатывает асинхронно, т. е. обратные вызовы, из которых он вернул HRESULT_FROM_WIN32(ERROR_IO_PENDING), но еще не завершены путем вызова PrjCompleteCommand. Если поставщик получает этот обратный вызов, он указывает, что операции ввода-вывода, вызвавшие предыдущий обратный вызов, были отменены явным образом или из-за того, что поток, в который он был выдан, завершен. Поставщик должен как можно скорее отменить обработку вызова обратного вызова, определенного с помощью CommandId .

Вызов PrjCompleteCommand для CommandId в callbackData этого обратного вызова не является ошибкой, однако это не работает, так как операции ввода-вывода, вызвавшие вызов обратного вызова, определяемые CommandId , уже завершены.

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

Этот обратный вызов является необязательным. Если поставщик не предоставляет реализацию этого обратного вызова, ни один из других обратных вызовов не будет отменен. Поставщик будет обрабатывать все обратные вызовы синхронно.

Требования

   
Минимальная версия клиента Windows 10, версия 1809 [только классические приложения]
Минимальная версия сервера Windows Server [только классические приложения]
Целевая платформа Windows
Header projectedfslib.h