Функция 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) |