共用方式為


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();

傳回值

如果作業成功,重新排入佇列 會傳回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
標頭 wudfddi.h (包括 Wudfddi.h)
DLL WUDFx.dll

另請參閱

IWDFIoQueue::RetrieveNextRequest

IWDFIoRequest2