Compartilhar via


estrutura WORK_QUEUE_ITEM (wdm.h)

A estrutura WORK_QUEUE_ITEM é usada para postar itens de trabalho em uma fila de trabalho do sistema.

Aviso

Use essa estrutura com extrema cautela. Consulte a seção Comentários a seguir.

Sintaxe

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

Membros

List

Estrutura de lista duplamente vinculada. Essa estrutura é usada para adicionar o item de trabalho à fila de trabalho do sistema.

WorkerRoutine

Ponteiro para uma rotina de retorno de chamada que processa esse item de trabalho quando o item de trabalho é desemqueuado. Essa rotina de retorno de chamada é declarada da seguinte maneira:

VOID
(*PWORKER_THREAD_ROUTINE)(
    IN PVOID Parameter
    );

Parâmetro

Ponteiro de informações de contexto especificado no membro Parameter .

Parameter

Ponteiro para informações de contexto a serem passadas para a rotina de retorno de chamada especificada no membro WorkerRoutine .

Comentários

Para inicializar uma estrutura WORK_QUEUE_ITEM, chame ExInitializeWorkItem.

Para postar o item de trabalho inicializado em uma fila de trabalho do sistema, chame ExQueueWorkItem.

ExInitializeWorkItem e ExQueueWorkItem só podem ser usados em casos em que o item de trabalho especificado não está associado a nenhum objeto de dispositivo ou pilha de dispositivos. Em todos os outros casos, os drivers devem usar IoAllocateWorkItem, IoFreeWorkItem e IoQueueWorkItem, pois somente essas rotinas garantem que o objeto do dispositivo associado ao item de trabalho especificado permaneça disponível até que o item de trabalho seja processado.

Requisitos

Requisito Valor
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h, Fltkernel.h)

Confira também

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem