IoAcquireCancelSpinLock 関数 (wdm.h)
IoAcquireCancelSpinLock ルーチンは、マルチプロセッサ セーフな方法で IRP のキャンセル可能な状態遷移を同期します。
構文
void IoAcquireCancelSpinLock(
PKIRQL Irql
);
パラメーター
Irql
[out] IoReleaseCancelSpinLock の後続の呼び出しのために現在の IRQL を保存する変数へのポインター。 通常、 Irql はローカル変数としてスタックに保存されます。
戻り値
なし
解説
デバイス オブジェクトで I/O マネージャーが指定したデバイス キューを使用するドライバーは、 IoSetCancelRoutine を使用して IRP のキャンセル可能な状態を変更するたびに、キャンセル スピン ロックを保持している必要があります。
独自の IRP キューを管理するドライバーは、 IoSetCancelRoutine を呼び出すときにキャンセル スピン ロックを保持する必要はありません。
キャンセル スピン ロックの所有者は、 IoReleaseCancelSpinLock を呼び出して、すぐに解放する必要があります。
ドライバー提供の Cancel ルーチンは、 キャンセル スピン ロックが保持された状態で呼び出されます。 取り消す IRP が完了したら、キャンセル スピン ロックを解放する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 |
Header | wdm.h |
IRQL | <=DISPATCH_LEVEL |
DDI コンプライアンス規則 | CancelSpinLock(storport)、 CancelSpinLock(wdm)、 CancelSpinlockRelease(wdm)、 HwStorPortProhibitedDDIs(storport)、 SpinLockSafe(storport)、 SpinLockSafe(wdm) |