Метод IWDFIoQueue::RetrieveNextRequestByFileObject (wudfddi.h)
Предупреждение
UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе Начало работы сUMDF.
Метод GetNextRequestByFileObject извлекается из очереди ввода-вывода следующего запроса ввода-вывода, объект файла которого соответствует указанному объекту файла.
Синтаксис
HRESULT RetrieveNextRequestByFileObject(
[in] IWDFFile *pFile,
[out] IWDFIoRequest **ppRequest
);
Параметры
[in] pFile
Указатель на интерфейс IWDFFile для объекта файла, который используется для получения следующего запроса ввода-вывода, объект файла которого соответствует указанному объекту файла.
[out] ppRequest
Указатель на буфер, который получает указатель на интерфейс IWDFIoRequest для следующего объекта запроса, объект которого соответствует предоставленному объекту файла, или получает NULL, если очередь пуста или если следующий запрос не найден.
Возвращаемое значение
RetrieveNextRequestByFileObject возвращает одно из следующих значений:
Возвращаемый код | Описание |
---|---|
S_OK | Следующий запрос ввода-вывода успешно получен из очереди ввода-вывода. |
HRESULT_FROM_NT(STATUS_WDF_PAUSED) | Очередь не отправляет запросы. Эта ситуация возникает, если устройство проходит переход состояния питания, и все очереди остановлены от отправки запросов или если драйвер явно называется IWDFIoQueue::Stop для остановки отправки запросов. Эта ситуация также может произойти, если драйвер пытается удалить запрос из очереди вручную, управляемой питанием, и если очередь приостановлена. |
HRESULT_FROM_WIN32(ERROR_NO_MORE_ITEMS) | В очереди не было запросов. |
HRESULT_FROM_NT(STATUS_INVALID_DEVICE_STATE) | Вызов был выполнен для получения запроса из параллельной очереди. |
RetrieveNextRequestByFileObject также может возвращать другие значения HRESULT.
Замечания
Если драйвер настраивает очередь ввода-вывода для ручной отправки запросов ввода-вывода, драйвер может вызвать метод GetNextRequestByFileObject, чтобы получить следующий запрос, объект файла которого соответствует предоставленному объекту файла из очереди. Дополнительные сведения об отправке запросов ввода-вывода вручную см. в разделе Настройка режима отправки для очереди ввода-вывода.
Если несколько запросов ввода-вывода, объекты файлов которых соответствуют объекту файла, который pFile указывает на существование в очереди ввода-вывода, возвращается первый запрос ввода-вывода.
Примеры
Пример кода использования метода RetrieveNextRequestByFileObject см. в разделе IWDFIoQueue::RetrieveNextRequest.
Требования
Требование | Ценность |
---|---|
завершение поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
целевая платформа | Настольный |
минимальная версия UMDF | 1.5 |
заголовка | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |