KsRemoveIrpFromCancelableQueue-Funktion (ks.h)
Die KsRemoveIrpFromCancelableQueue-Funktion löst die nächste nicht eingeschränkte IRP aus der angegebenen Warteschlange auf, die abgebrochen werden kann, und entfernt den abbruchfähigen status. Die Funktion durchsucht die Liste, bis ein IRP gefunden wird, das eine Abbruchroutine aufweist oder bis das Ende der Liste erreicht ist. Die Funktion minimiert die Verwendung der Drehsperre zum Abbrechen, indem sie in den meisten Fällen die bereitgestellte Spinsperre verwendet, um den Zugriff zu synchronisieren. Die Funktion kann auf IRQ-Ebene DISPATCH_LEVEL oder niedriger aufgerufen werden.
Syntax
KSDDKAPI PIRP KsRemoveIrpFromCancelableQueue(
[in, out] PLIST_ENTRY QueueHead,
[in] PKSPIN_LOCK SpinLock,
[in] KSLIST_ENTRY_LOCATION ListLocation,
[in] KSIRP_REMOVAL_OPERATION RemovalOperation
);
Parameter
[in, out] QueueHead
Zeigt auf den Kopf der Warteschlange, aus der die IRP entfernt werden soll.
[in] SpinLock
Verweist auf die Spin-Sperre des Treibers für den Warteschlangenzugriff.
[in] ListLocation
Gibt an, ob diese IRP vom Anfang oder Ende der Warteschlange stammen soll.
[in] RemovalOperation
Gibt an, ob der IRP aus der Liste entfernt oder einfach abgerufen wird, indem die Cancel-Funktion auf NULL festgelegt wird. Wenn es nur erworben wird, muss das IRP später mit KsReleaseIrpOnCancelableQueue freigegeben oder mit KsRemoveSpecificIrpFromCancelableQueue vollständig entfernt werden.
Rückgabewert
Die KsRemoveIrpFromCancelableQueue-Funktion gibt den nächsten nicht erfüllten IRP in der Liste zurück, oder sie gibt NULL zurück, wenn keine gefunden wurde oder wenn ein nicht bereits erworbener IRP nicht gefunden werden kann.
Hinweise
Diese Enumerationen werden in den vorherigen Parametern verwendet, um zu steuern, wo und wie das IRP entfernt wird.
typedef enum {
KsListEntryTail,
KsListEntryHead
} KSLIST_ENTRY_LOCATION;
typedef enum {
KsAcquireOnly,
KsAcquireAndRemove
} KSIRP_REMOVAL_OPERATION;
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ks.h (einschließlich Ks.h) |
Bibliothek | Ks.lib |