FltCbdqDisable-Funktion (fltkernel.h)

FltCbdqDisable deaktiviert die Rückrufdatenwarteschlange eines Minifiltertreibers.

Syntax

VOID FLTAPI FltCbdqDisable(
  [in, out] PFLT_CALLBACK_DATA_QUEUE Cbdq
);

Parameter

[in, out] Cbdq

Zeiger auf die Rückrufdatenwarteschlange.

Rückgabewert

Keine

Bemerkungen

FltCbdqDisable deaktiviert eine Rückrufdatenwarteschlange, sodass ihr keine weiteren Elemente hinzugefügt werden können.

Minifiltertreiber können die FltCbdqXxx-Routinen verwenden, um eine Rückrufdatenwarteschlange für IRP-basierte E/A-Vorgänge zu implementieren. Mithilfe dieser Routinen können Minifiltertreiber ihre Warteschlangen abbruchsicher machen. das System verarbeitet den E/A-Abbruch für die Minifiltertreiber transparent.

Die FltCbdqXxx-Routinen können nur für IRP-basierte E/A-Vorgänge verwendet werden. Verwenden Sie das Makro FLT_IS_IRP_OPERATION , um zu bestimmen, ob eine bestimmte Rückrufdatenstruktur einen IRP-basierten E/A-Vorgang darstellt.

Ein Minifiltertreiber ruft normalerweise FltCbdqDisable während instance Teardown- oder Minifiltertreiber-Entladung auf. Nach dem Aufrufen dieser Routine sollte der Minifiltertreiber die Warteschlange leeren oder leeren. Dies kann durch wiederholtes Aufrufen von FltCbdqRemoveNextIo erfolgen, bis keine weiteren Elemente in der Warteschlange verbleiben.

Ausführliche Informationen zum Erstellen einer Rückrufdatenwarteschlange finden Sie unter FltCbdqInitialize . Verwenden Sie FltCbdqInsertIo , um der Warteschlange eine E/A-Anforderung hinzuzufügen. Verwenden Sie FltCbdqRemoveIo , um eine bestimmte E/A-Anforderung aus der Warteschlange zu entfernen, oder FltCbdqRemoveNextIo , um die nächste verfügbare E/A-Anforderung zu entfernen.

Um die Warteschlange nach dem Deaktivieren erneut zu aktivieren, rufen Sie FltCbdqEnable auf.

Wenn die Warteschlange durch eine Drehsperre anstelle eines Mutex-Objekts oder einer Ressourcenvariable geschützt ist, kann der Aufrufer von FltCbdqDisable unter IRQL <= DISPATCH_LEVEL ausgeführt werden. Wenn ein Mutex oder eine Ressource verwendet wird, muss der Aufrufer unter IRQL <= APC_LEVEL ausgeführt werden.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (include Fltkernel.h)
IRQL Weitere Informationen finden Sie im Abschnitt mit den Hinweisen.

Weitere Informationen

FLT_CALLBACK_DATA_QUEUE

FLT_IS_IRP_OPERATION

FltCbdqEnable

FltCbdqInitialize

FltCbdqInsertIo

FltCbdqRemoveIo

FltCbdqRemoveNextIo