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


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

IWDFIoRequest2

IWDFIoRequest::CompleteWithInformation

IWDFIoRequest::GetCompletionParams

IWDFIoRequest::Send