Fonction FltQueueGenericWorkItem (fltkernel.h)

FltQueueGenericWorkItem publie un élément de travail qui n’est pas associé à une opération d’E/S spécifique dans une file d’attente de travail.

Syntaxe

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
);

Paramètres

[in] FltWorkItem

Pointeur vers l’élément de travail à ajouter à la file d’attente de travail. L’élément de travail doit avoir été alloué en appelant FltAllocateGenericWorkItem.

[in] FltObject

Filtre opaque (PFLT_FILTER) ou pointeur instance (PFLT_INSTANCE) pour l’appelant.

[in] WorkerRoutine

Pointeur vers une routine worker fournie par l’appelant. Cette routine est déclarée comme suit :

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

FltWorkItem

Pointeur opaque vers une structure d’élément de travail générique.

FltObject

Pointeur de filtre opaque qui a été passé en tant que paramètre FltObject de FltQueueGenericWorkItem.

Context

Pointeur d’informations de contexte passé en tant que paramètre Context de FltQueueGenericWorkItem. Ce paramètre est facultatif.

[in] QueueType

Spécifie la file d’attente dans laquelle l’élément de travail vers lequel FltWorkItem pointe doit être inséré. QueueType peut être l’un des éléments suivants :

Valeur Signification
CriticalWorkQueue Insérez l’élément de travail dans la file d’attente à partir de laquelle un thread système avec un attribut de priorité en temps réel traite l’élément de travail.
DelayedWorkQueue Insérez l’élément de travail dans la file d’attente à partir de laquelle un thread système avec un attribut de priorité variable traite l’élément de travail.
 

La valeur QueueTypeHyperCriticalWorkQueue est réservée à l’utilisation système.

[in, optional] Context

Pointeur vers les informations de contexte définies par l’appelant à passer en tant que paramètre Context de la routine de rappel spécifiée dans le paramètre WorkerRoutine . Ce paramètre est facultatif.

Valeur renvoyée

FltQueueGenericWorkItem retourne STATUS_SUCCESS ou une valeur NTSTATUS appropriée, telle que l’une des suivantes :

Code de retour Description
STATUS_FLT_DELETING_OBJECT
Le pilote minifilter est en cours de déchargement. Il s’agit d’un code d’erreur.

Remarques

FltQueueGenericWorkItem insère un élément de travail qui n’est pas associé à une opération d’E/S spécifique dans une file d’attente de travail système. La routine de rappel WorkerRoutine spécifiée est appelée dans le contexte d’un thread système, au PASSIVE_LEVEL IRQL.

Pour allouer un élément de travail, appelez FltAllocateGenericWorkItem.

Pour libérer l’élément de travail lorsqu’il n’est plus nécessaire, appelez FltFreeGenericWorkItem.

Configuration requise

Condition requise Valeur
Plateforme cible Universal
En-tête fltkernel.h (inclure Fltkernel.h)
Bibliothèque FltMgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Voir aussi

FltAllocateGenericWorkItem

FltFreeGenericWorkItem