Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
[Применимо к KMDF и UMDF]
Метод WdfIoQueueRetrieveNextRequest извлекает следующий доступный запрос ввода-вывода из указанной очереди ввода-вывода.
Синтаксис
NTSTATUS WdfIoQueueRetrieveNextRequest(
[in] WDFQUEUE Queue,
[out] WDFREQUEST *OutRequest
);
Параметры
[in] Queue
Дескриптор объекта очереди платформы.
[out] OutRequest
Указатель на расположение, которое получает дескриптор объекту запроса платформы. Если очередь пуста или получен последний запрос, этот параметр получает NULL.
Возвращаемое значение
WdfIoQueueRetrieveNextRequest возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае этот метод может вернуть одно из следующих значений:
| Код возврата | Описание |
|---|---|
|
Драйвер предоставил недопустимый дескриптор. |
|
Платформа достигла конца очереди ввода-вывода. |
|
Указанная очередь ввода-вывода настраивается для метода параллельной диспетчеризации. |
|
Указанная очередь ввода-вывода управляемых питанием, а его устройство находится в состоянии низкой мощности, или указанная очередь остановлена. |
Этот метод также может возвращать другие значения NTSTATUS.
Ошибка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Замечания
Если драйвер настраивает очередь ввода-вывода для ручной отправки запросов ввода-вывода, драйвер обычно вызывает WdfIoQueueRetrieveNextRequest для получения запросов из очереди. Драйвер, настроив очередь ввода-вывода для последовательной отправки, также может вызывать WdfIoQueueRetrieveNextRequest. Дополнительные сведения об использовании WdfIoQueueRetrieveNextRequest с методами ручной или последовательной отправки см. в методах отправки запросов ввода-вывода.
После вызова WdfIoQueueRetrieveNextRequest для получения запроса ввода-вывода драйвер принадлежит запросу и должен обрабатывать запрос ввода-вывода каким-то образом.
Дополнительные сведения о методе WdfIoQueueRetrieveNextRequest см. в управлении очередями ввода-вывода.
Примеры
Следующий пример кода получает дескриптор для следующего объекта запроса, содержащегося в очереди ввода-вывода устройства.
NTSTATUS status;
WDFREQUEST request;
status = WdfIoQueueRetrieveNextRequest(
pDeviceContext->ReadQueue,
&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), wdfioqueueretrievenquest, WdfIoQueueRetrieveNextRequest(kmdf) |