WORK_QUEUE_ITEM structure (wdm.h)

La structure WORK_QUEUE_ITEM est utilisée pour publier des éléments de travail dans une file d’attente de travail système.

Avertissement

Utilisez cette structure avec une extrême prudence. Consultez la section Remarques suivante.

Syntaxe

typedef struct _WORK_QUEUE_ITEM {
  LIST_ENTRY             List;
  PWORKER_THREAD_ROUTINE WorkerRoutine;
  __volatile PVOID       Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;

Membres

List

Structure de liste doublement liée. Cette structure est utilisée pour ajouter l’élément de travail à la file d’attente de travail système.

WorkerRoutine

Pointeur vers une routine de rappel qui traite cet élément de travail lorsque l’élément de travail est mis en file d’attente. Cette routine de rappel est déclarée comme suit :

VOID
(*PWORKER_THREAD_ROUTINE)(
    IN PVOID Parameter
    );

Paramètre

Pointeur d’informations de contexte spécifié dans le membre Parameter .

Parameter

Pointeur vers les informations de contexte à passer à la routine de rappel spécifiée dans le membre WorkerRoutine .

Remarques

Pour initialiser une structure WORK_QUEUE_ITEM, appelez ExInitializeWorkItem.

Pour publier l’élément de travail initialisé dans une file d’attente de travail système, appelez ExQueueWorkItem.

ExInitializeWorkItem et ExQueueWorkItem ne peuvent être utilisés que dans les cas où l’élément de travail spécifié n’est associé à aucun objet d’appareil ou pile d’appareils. Dans tous les autres cas, les pilotes doivent utiliser IoAllocateWorkItem, IoFreeWorkItem et IoQueueWorkItem, car seules ces routines garantissent que l’objet d’appareil associé à l’élément de travail spécifié reste disponible jusqu’à ce que l’élément de travail ait été traité.

Configuration requise

Condition requise Valeur
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Voir aussi

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem