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)

Consulte también

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem