次の方法で共有


KsCancelIo 関数 (ks.h)

KsCancelIo 関数は、指定したキャンセル リストのすべての IRP を取り消します。 一覧の IRP に取り消しルーチンがない場合は、取り消しビットのみが IRP に設定されます。 この関数は、IRQ レベルDISPATCH_LEVEL以下で呼び出すことができます。

構文

KSDDKAPI VOID KsCancelIo(
  [in, out] PLIST_ENTRY QueueHead,
  [in]      PKSPIN_LOCK SpinLock
);

パラメーター

[in, out] QueueHead

取り消す IRP を含むドライバーが管理するキューの先頭を指定します。

[in] SpinLock

キュー アクセスの呼び出し元によって割り当てられたスピン ロックをポイントします。 このポインターのコピーは、必要に応じてキャンセル ルーチンで使用するために IRP のKSQUEUE_SPINLOCK_IRP_STORAGE (Irp) に保持されます。

戻り値

何一つ

備考

KsCancelIo は、特定のドライバーが管理するキュー内のすべての IRP を取り消します。 IRP にキャンセル ルーチンがある場合は、キャンセル ルーチンが呼び出されます。 それ以外の場合、IRP のキャンセル フラグは TRUE に設定されます。 IRP は、このルーチンによってキューから削除されません。 IRP で指定されたキャンセル ルーチンまたはその他のドライバーが提供する機能によって IRP が削除されることを確認するドライバーの唯一の責任です。

取り消される IRP にドライバーが提供するキャンセル ルーチンがある場合は、KSQUEUE_SPINLOCK_IRP_STORAGEを呼び出すことによって IRP からキャンセル スピン ロックを取得できます。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー ks.h (Ks.h を含む)
ライブラリ Ks.lib
IRQL < DISPATCH_LEVEL

関連項目

KsAddIrpToCancelableQueue する