struttura WORK_QUEUE_ITEM (wdm.h)

La struttura WORK_QUEUE_ITEM viene usata per pubblicare elementi di lavoro in una coda di lavoro di sistema.

Avviso

Usare questa struttura con estrema cautela. Vedere la sezione Osservazioni seguente.

Sintassi

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

Members

List

Struttura dell'elenco collegato doubly. Questa struttura viene usata per aggiungere l'elemento di lavoro alla coda di lavoro di sistema.

WorkerRoutine

Puntatore a una routine di callback che elabora questo elemento di lavoro quando l'elemento di lavoro viene dequeued. Questa routine di callback viene dichiarata come segue:

VOID
(*PWORKER_THREAD_ROUTINE)(
    IN PVOID Parameter
    );

Parametro

Puntatore alle informazioni di contesto specificato nel membro Parameter .

Parameter

Puntatore alle informazioni sul contesto da passare alla routine di callback specificata nel membro WorkerRoutine .

Commenti

Per inizializzare una struttura WORK_QUEUE_ITEM, chiamare ExInitializeWorkItem.

Per pubblicare l'elemento di lavoro inizializzato in una coda di lavoro di sistema, chiamare ExQueueWorkItem.

ExInitializeWorkItem e ExQueueWorkItem possono essere usati solo nei casi in cui l'elemento di lavoro specificato non è associato ad alcun oggetto dispositivo o stack di dispositivi. In tutti gli altri casi, i driver devono usare IoAllocateWorkItem, IoFreeWorkItem e IoQueueWorkItem, perché solo queste routine assicurano che l'oggetto dispositivo associato all'elemento di lavoro specificato rimanga disponibile fino a quando non viene elaborato l'elemento di lavoro.

Requisiti

Requisito Valore
Intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Vedi anche

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem