共用方式為


IQueueCallbackIoStop::OnIoStop 方法 (wudfddi.h)

[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的UMDF驅動程式都應該使用UMDF 2撰寫。 未將新功能新增至 UMDF 1,且較新版本的 #D50B3B50DF55A42F5BAC0527541676FC0 上,UMDF 1 的支援有限。 通用 Windows 驅動程式必須使用 UMDF 2。 如需詳細資訊,請參閱使用 UMDF 使用者入門。]

OnIoStop 回呼函式會停止從指定的佇列處理指定的 I/O 要求。

語法

void OnIoStop(
  [in] IWDFIoQueue   *pWdfQueue,
  [in] IWDFIoRequest *pWdfRequest,
  [in] ULONG         ActionFlags
);

參數

[in] pWdfQueue

I/O 佇列物件的 IWDFIoQueue 介面指標,該物件會停止處理 I/O 要求。

[in] pWdfRequest

IWDFIoRequest 介面的指標,表示其處理停止的架構要求物件。

[in] ActionFlags

識別停止動作要求狀態 之WDF_REQUEST_STOP_ACTION_FLAGS型別值的有效位 OR。

傳回值

備註

驅動程式會在驅動程式呼叫 IWDFDevice::CreateIoQueue 方法來建立 I/O 佇列或設定預設 I/O 佇列時,註冊 IQueueCallbackIoStop 介面。

如果驅動程式為 I/O 佇列註冊 OnIoStop 回呼函式,當佇列的基礎裝置離開其運作 (D0) 狀態時,架構會呼叫它。 架構會針對驅動程式尚未完成的每個 I/O 要求呼叫 OnIoStop 回呼函式,包括驅動程式所擁有的要求,以及其轉送至 I/O 目標的要求。

OnIoStop 回呼函式必須完成、取消或延後進一步處理 I/O 要求。 您必須使用下列規則:

如果驅動程式擁有 I/O 要求,它必須呼叫 IWDFIoRequest::Complete 以完成或取消要求,或者必須延後進一步處理要求,然後呼叫 IWDFIoRequest2::StopAcknowledge

如果驅動程式已將 I/O 要求轉送至 I/O 目標,它必須呼叫 IWDFIoRequest::CancelSentRequest 來嘗試取消要求,或者必須延後進一步處理要求,然後呼叫 StopAcknowledge

如果在 ActionFlags 參數中設定 WdfRequestStopRequestCancelable 旗標,驅動程式必須先呼叫 IWDFIoRequest::UnmarkCancelable,再呼叫 IWDFIoRequest::Complete 來完成 (或取消) 要求或呼叫 IWDFIoRequest2::StopAcknowledge 以重新佇列要求。

規格需求

需求
目標平台 Windows
標頭 wudfddi.h (包含 Wudfddi.h)

另請參閱

IQueueCallbackIoStop

IWDFDevice::CreateIoQueue

IWDFIoQueue

IWDFIoRequest

IWDFIoRequest2::StopAcknowledge

WDF_REQUEST_STOP_ACTION_FLAGS