Функция WdfIoQueueRetrieveFoundRequest (wdfio.h)

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

Метод WdfIoQueueRetrieveFoundRequest доставляет указанный запрос драйверу, чтобы драйвер смог обработать запрос.

Синтаксис

NTSTATUS WdfIoQueueRetrieveFoundRequest(
  [in]  WDFQUEUE   Queue,
  [in]  WDFREQUEST FoundRequest,
  [out] WDFREQUEST *OutRequest
);

Параметры

[in] Queue

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

[in] FoundRequest

Дескриптор объекта запроса платформы, полученный путем вызова WdfIoQueueFindRequest.

[out] OutRequest

Указатель на расположение, которое получает дескриптор объекта запроса платформы. Драйвер должен использовать этот дескриптор при обработке запроса.

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

WdfIoQueueRetrieveFoundRequest возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может возвращать одно из следующих значений:

Код возврата Описание
STATUS_INVALID_PARAMETER
Драйвер предоставил недопустимый дескриптор.
STATUS_NOT_FOUND
Запрос, который определяется параметром FoundRequest , не может быть найден в очереди ввода-вывода.
STATUS_NO_MORE_ENTRIES
Платформа достигла конца очереди ввода-вывода, не найдя запрос, соответствующий условиям поиска.
 

Этот метод также может возвращать другие значения NTSTATUS.

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

Комментарии

После вызова WdfIoQueueRetrieveFoundRequest для получения запроса ввода-вывода драйвер владеет запросом и должен каким-то образом обработать запрос ввода-вывода .

Перед вызовом WdfIoQueueRetrieveFoundRequest драйвер должен вызвать WdfIoQueueFindRequest, который получает дескриптор, который драйвер может использовать в качестве параметра FoundRequest для WdfIoQueueRetrieveFoundRequest.

Если драйвер был создан с помощью KMDF версии 1.11 или более поздней, драйвер может вызвать WdfIoQueueRetrieveFoundRequest , не вызывая WdfIoQueueFindRequest. В этом случае драйвер должен убедиться, что объект запроса по-прежнему действителен и находится в очереди.

Если вызов WdfIoQueueRetrieveFoundRequest возвращает STATUS_NOT_FOUND, запрос, который ранее находился в очереди, был удален. Возможно, запрос был отменен.

Дополнительные сведения о методе WdfIoQueueRetrieveFoundRequest см. в разделе Управление очередями ввода-вывода.

Примеры

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

Требования

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

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

WdfIoQueueFindRequest

WdfIoQueueRetrieveNextRequest

WdfIoQueueRetrieveRequestByFileObject