Freigeben über


FltQueueGenericWorkItem-Funktion (fltkernel.h)

FltQueueGenericWorkItem stellt ein Arbeitselement, das keinem bestimmten E/A-Vorgang zugeordnet ist, an eine Arbeitswarteschlange.

Syntax

NTSTATUS FLTAPI FltQueueGenericWorkItem(
  [in]           PFLT_GENERIC_WORKITEM         FltWorkItem,
  [in]           PVOID                         FltObject,
  [in]           PFLT_GENERIC_WORKITEM_ROUTINE WorkerRoutine,
  [in]           WORK_QUEUE_TYPE               QueueType,
  [in, optional] PVOID                         Context
);

Parameter

[in] FltWorkItem

Zeiger auf das Arbeitselement, das der Arbeitswarteschlange hinzugefügt werden soll. Das Arbeitselement muss durch Aufrufen von FltAllocateGenericWorkItem zugeordnet worden sein.

[in] FltObject

Undurchsichtiger Filter (PFLT_FILTER) oder instance -Zeiger (PFLT_INSTANCE) für den Aufrufer.

[in] WorkerRoutine

Zeiger auf eine vom Aufrufer bereitgestellte Workerroutine. Diese Routine wird wie folgt deklariert:

typedef VOID
(*PFLT_GENERIC_WORKITEM_ROUTINE) (
 _In_ PFLT_GENERIC_WORKITEM FltWorkItem,
 _In_ PVOID FltObject,
 _In_opt_ PVOID Context
      );

FltWorkItem

Undurchsichtiger Zeiger auf eine generische Arbeitselementstruktur.

FltObject

Undurchsichtiger Filterzeiger, der als FltObject-Parameter von FltQueueGenericWorkItem übergeben wurde.

Kontext

Kontextinformationszeiger, der als Context-Parameter von FltQueueGenericWorkItem übergeben wurde. Dieser Parameter ist optional.

[in] QueueType

Gibt die Warteschlange an, in die das Arbeitselement eingefügt werden soll, auf das FltWorkItem verweist. QueueType kann eine der folgenden Optionen sein:

Wert Bedeutung
CriticalWorkQueue Fügen Sie das Arbeitselement in die Warteschlange ein, aus der ein Systemthread mit einem Echtzeitprioritätsattribut das Arbeitselement verarbeitet.
DelayedWorkQueue Fügen Sie das Arbeitselement in die Warteschlange ein, aus der ein Systemthread mit einem Attribut mit variabler Priorität das Arbeitselement verarbeitet.
 

Der QueueType-WertHyperCriticalWorkQueue ist für die Systemverwendung reserviert.

[in, optional] Context

Zeiger auf vom Aufrufer definierte Kontextinformationen, die als Context-Parameter der im WorkerRoutine-Parameter angegebenen Rückrufroutine übergeben werden sollen. Dieser Parameter ist optional.

Rückgabewert

FltQueueGenericWorkItem gibt STATUS_SUCCESS oder einen geeigneten NTSTATUS-Wert zurück, z. B. einen der folgenden:

Rückgabecode Beschreibung
STATUS_FLT_DELETING_OBJECT
Der Minifiltertreiber wird entladen. Dies ist ein Fehlercode.

Hinweise

FltQueueGenericWorkItem fügt ein Arbeitselement, das keinem bestimmten E/A-Vorgang zugeordnet ist, in eine Systemarbeitswarteschlange ein. Die angegebene WorkerRoutine-Rückrufroutine wird im Kontext eines Systemthreads unter IRQL PASSIVE_LEVEL aufgerufen.

Um ein Arbeitselement zuzuordnen, rufen Sie FltAllocateGenericWorkItem auf.

Um das Arbeitselement frei zu geben, wenn es nicht mehr benötigt wird, rufen Sie FltFreeGenericWorkItem auf.

Anforderungen

Anforderung Wert
Zielplattform Universell
Header fltkernel.h (fltkernel.h einschließen)
Bibliothek FltMgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Weitere Informationen

FltAllocateGenericWorkItem

FltFreeGenericWorkItem