Freigeben über


WORK_QUEUE_ITEM Struktur (wdm.h)

Die WORK_QUEUE_ITEM-Struktur wird verwendet, um eine Arbeitsaufgaben in einer Systemarbeitswarteschlange zu posten.

Warnung

Verwenden Sie diese Struktur mit äußerster Vorsicht. Weitere Informationen finden Sie im Folgenden Abschnitt "Anmerkungen".

Syntax

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

Angehörige

List

Doubly linked list structure. Diese Struktur wird verwendet, um die Arbeitsaufgabe zur Systemarbeitswarteschlange hinzuzufügen.

WorkerRoutine

Zeigen Sie auf eine Rückrufroutine, die diese Arbeitsaufgabe verarbeitet, wenn die Arbeitsaufgabe aufgehoben wird. Diese Rückrufroutine wird wie folgt deklariert:

VOID
(*PWORKER_THREAD_ROUTINE)(
    IN PVOID Parameter
    );

Parameter

Kontextinformationspunkt, der im Parameter Member angegeben ist.

Parameter

Zeiger auf Kontextinformationen, die an die im WorkerRoutine Member angegebene Rückrufroutine übergeben werden sollen.

Bemerkungen

Rufen Sie ExInitializeWorkItem-auf, um eine WORK_QUEUE_ITEM Struktur zu initialisieren.

Rufen Sie ExQueueWorkItem-auf, um die initialisierte Arbeitsaufgabe in einer Systemarbeitswarteschlange zu veröffentlichen.

ExInitializeWorkItem und ExQueueWorkItem können nur in Fällen verwendet werden, in denen die angegebene Arbeitsaufgabe 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 bis zur Verarbeitung der Arbeitsaufgabe verfügbar bleibt.

Anforderungen

Anforderung Wert
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Siehe auch

ExInitializeWorkItem-

ExQueueWorkItem-

IoAllocateWorkItem-

IoFreeWorkItem-

IoQueueWorkItem-