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 を する