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) |