Compartilhar via


Função FltQueueGenericWorkItem (fltkernel.h)

FltQueueGenericWorkItem posta um item de trabalho que não está associado a uma operação de E/S específica em uma fila de trabalho.

Sintaxe

NTSTATUS FLTAPI FltQueueGenericWorkItem(
  [in]           PFLT_GENERIC_WORKITEM         FltWorkItem,
  [in]           PVOID                         FltObject,
  [in]           PFLT_GENERIC_WORKITEM_ROUTINE WorkerRoutine,
  [in]           WORK_QUEUE_TYPE               QueueType,
  [in, optional] PVOID                         Context
);

Parâmetros

[in] FltWorkItem

Ponteiro para o item de trabalho a ser adicionado à fila de trabalho. O item de trabalho deve ter sido alocado chamando FltAllocateGenericWorkItem.

[in] FltObject

O ponteiro de filtro opaco (PFLT_FILTER) ou instância (PFLT_INSTANCE) para o chamador.

[in] WorkerRoutine

Ponteiro para uma rotina de trabalho fornecida pelo chamador. Essa rotina é declarada da seguinte maneira:

typedef VOID
(*PFLT_GENERIC_WORKITEM_ROUTINE) (
 _In_ PFLT_GENERIC_WORKITEM FltWorkItem,
 _In_ PVOID FltObject,
 _In_opt_ PVOID Context
      );

FltWorkItem

Ponteiro opaco para uma estrutura de item de trabalho genérica.

FltObject

Ponteiro de filtro opaco que foi passado como o parâmetro FltObject de FltQueueGenericWorkItem.

Contexto

Ponteiro de informações de contexto que foi passado como o parâmetro Context de FltQueueGenericWorkItem. Esse parâmetro é opcional.

[in] QueueType

Especifica a fila na qual o item de trabalho para o qual FltWorkItem aponta deve ser inserido. QueueType pode ser um dos seguintes:

Valor Significado
CriticalWorkQueue Insira o item de trabalho na fila da qual um thread do sistema com um atributo de prioridade em tempo real processa o item de trabalho.
DelayedWorkQueue Insira o item de trabalho na fila da qual um thread do sistema com um atributo de prioridade variável processa o item de trabalho.
 

O valor QueueTypeHyperCriticalWorkQueue é reservado para uso do sistema.

[in, optional] Context

Ponteiro para informações de contexto definidas pelo chamador a serem passadas como o parâmetro Context da rotina de retorno de chamada especificada no parâmetro WorkerRoutine . Esse parâmetro é opcional.

Retornar valor

FltQueueGenericWorkItem retorna STATUS_SUCCESS ou um valor NTSTATUS apropriado, como um dos seguintes:

Código de retorno Descrição
STATUS_FLT_DELETING_OBJECT
O driver de minifiltro está sendo descarregado. Este é um código de erro.

Comentários

FltQueueGenericWorkItem insere um item de trabalho que não está associado a uma operação de E/S específica em uma fila de trabalho do sistema. A rotina de retorno de chamada workerroutine especificada é chamada no contexto de um thread do sistema, em IRQL PASSIVE_LEVEL.

Para alocar um item de trabalho, chame FltAllocateGenericWorkItem.

Para liberar o item de trabalho quando ele não for mais necessário, chame FltFreeGenericWorkItem.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho fltkernel.h (inclua Fltkernel.h)
Biblioteca FltMgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Confira também

FltAllocateGenericWorkItem

FltFreeGenericWorkItem