次の方法で共有


IWDFIoQueue::P urge メソッド (wudfddi.h)

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

Purge メソッドは、新しい受信 I/O 要求を拒否し、未処理のすべての要求を取り消すようフレームワークに指示します。

構文

void Purge(
  [in, optional] IQueueCallbackStateChange *pPurgeComplete
);

パラメーター

[in, optional] pPurgeComplete

フレームワークが呼び出すメソッドがドライバーにキュー状態を配信する IQueueCallbackStateChange インターフェイスへのポインター。 フレームワークは、すべての要求が取り消された後に メソッドを呼び出します。 このパラメーターは省略可能であり、 NULL にすることができます

戻り値

なし

解説

フレームワークは、キュー内の未処理の要求を取り消します。 ドライバーに配信され、取り消し可能とマークされた要求の場合、フレームワークは IRequestCallbackCancel::OnCancel を呼び出します。

ドライバーは、常に次のいずれかの方法のみが進行中であることを確認する必要があります。

たとえば、ドライバーが以前に Purge を呼び出した場合、 pPurgeComplete パラメーターが指すインターフェイスの メソッドからの通知を待機してから 、Stop または Drain を呼び出す必要があります。 この規則に違反すると、ホスト プロセスが終了します。

次のコード例は、キューへの要求を停止する方法を示しています。

VOID
CUmdfHidFile::OnCleanupFile(
    __in IWDFFile* /* WdfFile */
    )
/*++
    This method handles the cleanup operation for the file object.  
    Because the file is disabled, no new reports should be added to the ring buffer.
--*/
{
    this->Disable();

    //
    // Stop all current requests to read reports.
    //

    m_GetReportQueue->Purge(NULL);
}

要件

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

こちらもご覧ください

IQueueCallbackStateChange

IRequestCallbackCancel::OnCancel

IWDFIoQueue

IWDFIoQueue::D rain

IWDFIoQueue::Stop