WORK_QUEUE_ITEM-Struktur (wdm.h)
Die WORK_QUEUE_ITEM-Struktur wird verwendet, um Arbeitselemente in einer Systemarbeitswarteschlange zu posten.
Warnung
Verwenden Sie diese Struktur mit äußerster Vorsicht. Weitere Informationen finden Sie im abschnitt "Hinweise" .
Syntax
typedef struct _WORK_QUEUE_ITEM {
LIST_ENTRY List;
PWORKER_THREAD_ROUTINE WorkerRoutine;
__volatile PVOID Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
Member
List
Doppelt verknüpfte Listenstruktur. Diese Struktur wird verwendet, um das Arbeitselement der Systemarbeitswarteschlange hinzuzufügen.
WorkerRoutine
Zeiger auf eine Rückrufroutine, die dieses Arbeitselement verarbeitet, wenn das Arbeitselement entfernt wird. Diese Rückrufroutine wird wie folgt deklariert:
VOID
(*PWORKER_THREAD_ROUTINE)(
IN PVOID Parameter
);
Parameter
Kontextinformationszeiger, der im Parameter-Element angegeben ist.
Parameter
Zeiger auf Kontextinformationen, die an die Rückrufroutine übergeben werden sollen, die im WorkerRoutine-Member angegeben ist.
Hinweise
Um eine WORK_QUEUE_ITEM-Struktur zu initialisieren, rufen Sie ExInitializeWorkItem auf.
Rufen Sie ExQueueWorkItem auf, um das initialisierte Arbeitselement in einer Systemarbeitswarteschlange zu posten.
ExInitializeWorkItem und ExQueueWorkItem können nur in Fällen verwendet werden, in denen das angegebene Arbeitselement keinem Geräteobjekt oder Gerätestapel zugeordnet ist. In allen anderen Fällen sollten Treiber IoAllocateWorkItem, IoFreeWorkItem und IoQueueWorkItem verwenden, da nur diese Routinen sicherstellen, dass das dem angegebenen Arbeitselement zugeordnete Geräteobjekt verfügbar bleibt, bis das Arbeitselement verarbeitet wurde.
Anforderungen
Anforderung | Wert |
---|---|
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |