次の方法で共有


IWDFIoRequest2::Requeue メソッド (wudfddi.h)

[警告: UMDF 2 は UMDF の最新バージョンであり、UMDF 1 よりも優先されます。 すべての新しい UMDF ドライバーは、UMDF 2 を使用して記述する必要があります。 UMDF 1 には新機能が追加されておらず、新しいバージョンのWindows 10では UMDF 1 のサポートが制限されています。 ユニバーサル Windows ドライバーでは UMDF 2 を使用する必要があります。 詳細については、「UMDF を使用したはじめに」を参照してください。

Requeue メソッドは、ドライバーに配信された I/O キューの先頭に I/O 要求を返します。

構文

HRESULT Requeue();

戻り値

Requeue は、操作が成功した場合S_OKを返します。 それ以外の場合、このメソッドは次のいずれかの値を返す可能性があります。

リターン コード 説明
HRESULT_FROM_WIN32 (ERROR_INVALID_OPERATION)
この値は、次のいずれかが発生した場合に返されます。
  • 指定された I/O 要求が I/O キューから送信されませんでした。
  • ドライバーは I/O 要求を所有していません。
  • 要求は取り消し可能です。
  • キューのディスパッチ方法は手動ではありません。
 

このメソッドは、Winerror.h に含まれる他の値のいずれかを返す場合があります。

注釈

ドライバーは、I/O キューの手動ディスパッチ メソッドを使用する場合にのみ Requeue を呼び出すことができます。

次のコード例は、 IQueueCallbackStateChange::OnStateChange コールバック関数のセグメントを示しています。 セグメントは、I/O から I/O 要求を取得し、その要求をキューに返します。

void 
CMyQueue::OnStateChange(
    __in IWDFIoQueue* pWdfQueue,
    __in WDF_IO_QUEUE_STATE 
    )
{
    HRESULT hr;
    IWDFIoRequest* Request;
...
    //
    // Get the IWDFIoRequest interface of the next request.
    //
    hr = pWdfQueue->RetrieveNextRequest(&Request);
...
    //
    // Declare an IWDFIoRequest2 interface pointer and obtain the
    // IWDFIoRequest2 interface from the IWDFIoRequest interface.
    //
    CComQIPtr<IWDFIoRequest2> r2 = Request;

    //
    // Add code here to determine whether to process or requeue the request.
    //
...
    //
    // Requeue the request.
    //
    hr = r2->Requeue();
    if (FAILED(hr)) goto Error;
...
}

要件

要件
サポート終了 UMDF 2.0 以降では使用できません。
対象プラットフォーム デスクトップ
最小 UMDF バージョン 1.9
Header wudfddi.h (Wudfddi.h を含む)
[DLL] WUDFx.dll

こちらもご覧ください

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest2