Freigeben über


IoAcquireCancelSpinLock-Funktion (wdm.h)

Die IoAcquireCancelSpinLock-Routine synchronisiert abbrechbare Zustandsübergänge für IRPs auf multiprozessorsichere Weise.

Syntax

void IoAcquireCancelSpinLock(
  PKIRQL Irql
);

Parameter

Irql

[out] Zeiger auf eine Variable, in der die aktuelle IRQL für einen nachfolgenden Aufruf von IoReleaseCancelSpinLock gespeichert werden soll. In der Regel wird irql als lokale Variable auf dem Stapel gespeichert.

Rückgabewert

Keine

Bemerkungen

Ein Treiber, der die vom E/A-Manager bereitgestellten Gerätewarteschlangen im Geräteobjekt verwendet, muss die Abbruch-Drehsperre halten, wenn er den abbrechbaren Zustand eines IRP mit IoSetCancelRoutine ändert.

Ein Treiber, der seine eigene IRP-Warteschlange verwaltet, muss beim Aufrufen von IoSetCancelRoutine nicht die Abbruch-Drehsperre enthalten.

Der Besitzer der Abbruch-Spinsperre sollte sie umgehend freigeben, indem er IoReleaseCancelSpinLock aufruft.

Eine vom Treiber bereitgestellte Cancel-Routine wird aufgerufen, wobei die Abbruchdrehsperre gehalten wird. Es muss die Abbruch-Spin-Sperre freigeben, wenn die IRP beendet wurde, um abgebrochen zu werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000
Kopfzeile wdm.h
IRQL <=DISPATCH_LEVEL
DDI-Complianceregeln CancelSpinLock(storport), CancelSpinLock(wdm), CancelSpinlockRelease(wdm), HwStorPortProhibitedDIs(storport), SpinLockSafe(storport), SpinLockSafe(wdm)

Weitere Informationen

IoReleaseCancelSpinLock

IoSetCancelRoutine