Функция WdfRequestSetCompletionRoutine (wdfrequest.h)

[Применимо к KMDF и UMDF]

Метод WdfRequestSetCompletionRoutine регистрирует или отменяет регистрацию подпрограммы завершения для указанного объекта запроса платформы.

Синтаксис

void WdfRequestSetCompletionRoutine(
  [in]           WDFREQUEST                         Request,
  [in, optional] PFN_WDF_REQUEST_COMPLETION_ROUTINE CompletionRoutine,
  [in, optional] __drv_aliasesMem WDFCONTEXT        CompletionContext
);

Параметры

[in] Request

Дескриптор объекта запроса платформы.

[in, optional] CompletionRoutine

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

[in, optional] CompletionContext

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

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

None

Remarks

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

Если драйвер пересылает запросы ввода-вывода, но вы хотите, чтобы драйвер был уведомлен о завершении запроса драйвером более низкого уровня, драйвер может предоставить функцию обратного вызова CompletionRoutine и вызвать WdfRequestSetCompletionRoutine , чтобы зарегистрировать функцию. Платформа вызывает функцию обратного вызова после того, как драйвер более низкого уровня завершит запрос ввода-вывода.

Дополнительные сведения о WdfRequestSetCompletionRoutine см. в разделе Завершение запросов ввода-вывода.

Примеры

Пример кода, в котором используется WdfRequestSetCompletionRoutine, см. в разделе WdfRequestSend.

Требования

Требование Значение
Целевая платформа Универсальное
Минимальная версия KMDF 1,0
Минимальная версия UMDF 2,0
Верхняя часть wdfrequest.h (включая Wdf.h)
Библиотека Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF)
IRQL <=DISPATCH_LEVEL
Правила соответствия DDI DriverCreate(kmdf), InvalidReqAccess(kmdf), InvalidReqAccessLocal(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ReqCompletionRoutine(kmdf)

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

CompletionRoutine