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 do 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 vinculada duplamente. 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 é desativado. 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 parâmetro.

Parameter

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

Observações

Para inicializar uma estrutura de 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 dispositivo. Em todos os outros casos, os drivers devem usar IoAllocateWorkItem, IoFreeWorkIteme 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)

Consulte também

ExInitializeWorkItem

ExQueueWorkItem

IoAllocateWorkItem

IoFreeWorkItem

IoQueueWorkItem