Поделиться через


Метод 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

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send