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