Функция WdfRequestGetStatus (wdfrequest.h)
[Применимо к KMDF и UMDF]
Метод WdfRequestGetStatus возвращает состояние запроса ввода-вывода.
Синтаксис
NTSTATUS WdfRequestGetStatus(
[in] WDFREQUEST Request
);
Параметры
[in] Request
Дескриптор объекта запроса платформы.
Возвращаемое значение
WdfRequestGetStatus возвращает значение NTSTATUS. Дополнительные сведения о том, какое значение может быть возвращено, см. в следующем разделе Примечаний.
Ошибка проверка возникает, если драйвер предоставляет недопустимый дескриптор объекта.
Комментарии
Метод WdfRequestGetStatus возвращает одно из следующих результатов:
- Если вызов драйвера к WdfRequestSend завершается успешно, WdfRequestGetStatus возвращает значение состояния, заданное драйвером, вызывающим WdfRequestComplete для выполнения указанного запроса. Драйвер обычно вызывает WdfRequestGetStatus из функции обратного вызова CompletionRoutine .
- Если вызов драйвера к WdfRequestSend завершается сбоем, WdfRequestGetStatus возвращает значение состояния, заданное платформой для описания сбоя. Драйвер может вызывать WdfRequestGetStatus сразу после вызова WdfRequestSend.
Дополнительные сведения о завершении запроса см. в разделе Завершение запросов ввода-вывода.
Примеры
Следующий пример кода получен из примера драйвера KbFiltr . В этом примере запрос ввода-вывода отправляется целевому объекту ввода-вывода. Если WdfRequestSend завершается ошибкой , в примере используется возвращаемое значение WdfRequestGetStatus в качестве входных данных для WdfRequestComplete.
VOID
KbFilter_ForwardRequest(
IN WDFREQUEST Request,
IN WDFIOTARGET Target
)
{
WDF_REQUEST_SEND_OPTIONS options;
BOOLEAN ret;
NTSTATUS status;
WDF_REQUEST_SEND_OPTIONS_INIT(
&options,
WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET
);
ret = WdfRequestSend(
Request,
Target,
&options
);
if (ret == FALSE) {
status = WdfRequestGetStatus (Request);
DebugPrint(("WdfRequestSend failed: 0x%x\n", status));
WdfRequestComplete(
Request,
status
);
}
return;
}
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Минимальная версия KMDF | 1,0 |
Минимальная версия UMDF | 2,0 |
Верхняя часть | wdfrequest.h (включая Wdf.h) |
Библиотека | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Правила соответствия DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), RequestGetStatusValid(kmdf) |