estructura WORK_QUEUE_ITEM (wdm.h)
La estructura WORK_QUEUE_ITEM se usa para publicar elementos de trabajo en una cola de trabajo del sistema.
Advertencia
Use esta estructura con extrema precaución. Consulte la sección Comentarios siguiente.
Sintaxis
typedef struct _WORK_QUEUE_ITEM {
LIST_ENTRY List;
PWORKER_THREAD_ROUTINE WorkerRoutine;
__volatile PVOID Parameter;
} WORK_QUEUE_ITEM, *PWORK_QUEUE_ITEM;
Miembros
List
Estructura de lista vinculada doblemente. Esta estructura se usa para agregar el elemento de trabajo a la cola de trabajo del sistema.
WorkerRoutine
Puntero a una rutina de devolución de llamada que procesa este elemento de trabajo cuando el elemento de trabajo está en cola. Esta rutina de devolución de llamada se declara de la siguiente manera:
VOID
(*PWORKER_THREAD_ROUTINE)(
IN PVOID Parameter
);
Parámetro
Puntero de información de contexto especificado en el miembro Parameter .
Parameter
Puntero a la información de contexto que se va a pasar a la rutina de devolución de llamada especificada en el miembro WorkerRoutine .
Comentarios
Para inicializar una estructura de WORK_QUEUE_ITEM, llame a ExInitializeWorkItem.
Para publicar el elemento de trabajo inicializado en una cola de trabajo del sistema, llame a ExQueueWorkItem.
ExInitializeWorkItem y ExQueueWorkItem solo se pueden usar en casos en los que el elemento de trabajo especificado no está asociado a ningún objeto de dispositivo o pila de dispositivos. En todos los demás casos, los controladores deben usar IoAllocateWorkItem, IoFreeWorkItem y IoQueueWorkItem, ya que solo estas rutinas garantizan que el objeto de dispositivo asociado al elemento de trabajo especificado permanezca disponible hasta que se haya procesado el elemento de trabajo.
Requisitos
Requisito | Valor |
---|---|
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h) |