Метод 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 возвращает значение состояния, заданное платформой для описания сбоя. Драйвер может вызывать GetStatus (но неIWDFIoRequest::GetCompletionParams) для получения текущего состояния запроса, но в этом случае GetStatus возвращает тот же код сбоя, который возвращенной отправки.
Примеры
В следующем примере кода отправляется запрос ввода-вывода в целевой объект ввода-вывода. Если вызов отправки выполнен успешно, в примере получается интерфейс 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 (include Wudfddi.h) |
DLL | WUDFx.dll |
См. также
IRequestCallbackRequestCompletion::OnCompletion
IWDFIoRequest::CompleteWithInformation