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


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

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

Метод WdfIoQueueRetrieveRequestByFileObject получает следующий доступный запрос ввода-вывода из указанной очереди ввода-вывода, связанной с указанным объектом файла.

Синтаксис

NTSTATUS WdfIoQueueRetrieveRequestByFileObject(
  [in]  WDFQUEUE      Queue,
  [in]  WDFFILEOBJECT FileObject,
  [out] WDFREQUEST    *OutRequest
);

Параметры

[in] Queue

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

[in] FileObject

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

[out] OutRequest

Указатель на расположение, которое получает дескриптор объекту запроса платформы. Если WdfIoQueueRetrieveRequestByFileObject не возвращает STATUS_SUCCESS, он не задает значение расположения.

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

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

Код возврата Описание
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Драйвер предоставил недопустимый дескриптор.
STATUS_NO_MORE_ENTRIES
Платформа достигла конца очереди ввода-вывода.
STATUS_INVALID_DEVICE_STATE
Указанная очередь ввода-вывода настраивается для метода параллельной диспетчеризации.
STATUS_WDF_PAUSED
Указанная очередь ввода-вывода управляемых питанием, а его устройство находится в состоянии низкой мощности.
 

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

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

Замечания

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

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

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

Примеры

Следующий пример кода получает из указанной очереди ввода-вывода дескриптор следующего объекта запроса платформы, связанного с указанным объектом файла платформы.

WDFREQUEST  request;

status = WdfIoQueueRetrieveRequestByFileObject(
                                               queue,
                                               fileObject,
                                               &request
                                               );

Требования

Требование Ценность
целевая платформа универсальный
минимальная версия 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)

См. также

WdfIoQueueRetrieveFoundRequest

WdfIoQueueRetrieveNextRequest