Метод IWDFIoRequest2::GetStatus (wudfddi.h)
[Предупреждение: UMDF 2 является последней версией UMDF и заменяет UMDF 1. Все новые драйверы UMDF должны быть написаны с помощью UMDF 2. Новые функции не добавляются в UMDF 1, а поддержка UMDF 1 в более новых версиях Windows 10 ограничена. Универсальные драйверы Windows должны использовать UMDF 2. Дополнительные сведения см. в разделе начало работы с помощью UMDF.]
Метод GetStatus возвращает состояние запроса ввода-вывода.
Синтаксис
HRESULT GetStatus();
Возвращаемое значение
GetStatus возвращает значение состояния типа HRESULT. Это значение указывает текущее состояние запроса ввода-вывода, представленного интерфейсом IWDFIoRequest2 .
Комментарии
Драйвер может вызвать GetStatus после вызова IWDFIoRequest::Send для отправки запроса ввода-вывода целевому объекту ввода-вывода.
-
Если вызов драйвера отправки завершается успешно, GetStatus возвращает значение состояния, заданное драйвером, выполняющим указанный запрос.
Если драйвер указывает WDF_REQUEST_SEND_OPTION_SYNCHRONOUS для запроса при вызове метода Send, драйвер может вызвать GetStatus (или IWDFIoRequest::GetCompletionParams) сразу после вызова Send.
Если драйвер не указывает WDF_REQUEST_SEND_OPTION_SYNCHRONOUS при вызове метода Send, драйвер обычно вызывает GetStatus (или IWDFIoRequest::GetCompletionParams) из функции обратного вызова IRequestCallbackRequestCompletion::OnCompletion .
- Если вызов драйвера к send завершается сбоем, функция Send возвращает значение состояния, заданное платформой для описания сбоя. Драйвер может вызвать GetStatus (но неIWDFIoRequest::GetCompletionParams), чтобы получить текущее состояние запроса, но в этом случае GetStatus возвращает тот же код сбоя, что и Send .
Примеры
В следующем примере кода отправляется запрос ввода-вывода в целевой объект ввода-вывода. Если вызов Send завершается успешно, пример получает интерфейс IWDFIoRequest2 , вызывает GetStatus для получения значения состояния запроса, а затем вызывает IWDFIoRequest::CompleteWithInformation для завершения запроса ввода-вывода.
HRESULT hrSend = S_OK;
...
hrSend = fxRequest->Send(m_pIoTarget,
WDF_REQUEST_SEND_OPTION_SYNCHRONOUS,
0);
if (SUCCEEDED(hrSend))
{
//
// If send succeeded, complete the request and specify
// the current status value.
//
CComQIPtr<IWDFIoRequest2> fxRequest2 = fxRequest;
hrSend = fxRequest2->GetStatus();
fxRequest->CompleteWithInformation(hrSend, 0);
}
...
Требования
Требование | Значение |
---|---|
Дата окончания поддержки | Недоступно в UMDF 2.0 и более поздних версиях. |
Целевая платформа | Персональный компьютер |
Минимальная версия UMDF | 1,9 |
Верхняя часть | wudfddi.h (включая Wudfddi.h) |
DLL | WUDFx.dll |
См. также раздел
IRequestCallbackRequestCompletion::OnCompletion
IWDFIoRequest::CompleteWithInformation