次の方法で共有


IRequestCallbackCancel::OnCancel メソッド (wudfddi.h)

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

OnCancel メソッドは、アプリケーションが Microsoft Win32 CancelIo、CancelIoEx、または CancelSynchronousIo 関数を介して I/O 操作を取り消したときに呼び出されます。

構文

void OnCancel(
  [in] IWDFIoRequest *pWdfRequest
);

パラメーター

[in] pWdfRequest

取り消すフレームワーク要求オブジェクトを表す IWDFIoRequest インターフェイスへのポインター。

戻り値

なし

解説

フレームワークは OnCancel メソッドを呼び出して、 pWdfRequest パラメーターが識別する I/O 要求を取り消します。 ドライバーはまず、I/O 要求を取り消すことができるかどうかを判断する必要があります。 要求を取り消すことができる場合、ドライバーはそれを取り消す必要があります。 要求を取り消す方法の詳細については、「 I/O 要求の取り消し」を参照してください。

ドライバーが要求をキャンセルした場合、ドライバーは、CompletionStatus パラメーターを HRESULT_FROM_WIN32(ERROR_OPERATION_ABORTED) に設定して IWDFIoRequest::Complete メソッドを呼び出して要求を完了する必要もあります。

フレームワークは、要求の取り消しを有効にし、IRequestCallbackCancel インターフェイスを登録するために、ドライバーが以前に IWDFIoRequest::MarkCancelable メソッドを呼び出していない限り、要求を取り消すために OnCancel を呼び出しません。

User-Mode Driver Framework (UMDF) では、キューごとに 1 つの OnCancel メソッドのみを使用できます。 そのため、ドライバーが特定のキューに関連付けられている要求に対して IWDFIoRequest::MarkCancelable を呼び出してフレームワークがこれらの要求を取り消せるようにする場合、ドライバーは同じ要求コールバック オブジェクトの IRequestCallbackCancel インターフェイスへのポインターを渡す必要があります。 その後、各要求を取り消すために、フレームワークは、この要求コールバック オブジェクトの OnCancel メソッドの呼び出しで、要求の IWDFIoRequest インターフェイスへのポインターを渡します。

要件

要件
対象プラットフォーム Windows
ヘッダー wudfddi.h (Wudfddi.h を含む)

こちらもご覧ください

IRequestCallbackCancel

IWDFIoRequest

IWDFIoRequest::Complete

IWDFIoRequest::MarkCancelable