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


Функция 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_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 (include 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