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