structure WORK_QUEUE_ITEM (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 prudence extrême. 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, IoFreeWorkItemet 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é.
Exigences
Exigence | Valeur |
---|---|
d’en-tête | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |