Condividi tramite


Funzione FltQueueGenericWorkItem (fltkernel.h)

FltQueueGenericWorkItem pubblica un elemento di lavoro non associato a un'operazione di I/O specifica a una coda di lavoro.

Sintassi

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

Parametri

[in] FltWorkItem

Puntatore all'elemento di lavoro da aggiungere alla coda di lavoro. L'elemento di lavoro deve essere stato allocato chiamando FltAllocateGenericWorkItem.

[in] FltObject

Puntatore del filtro opaco (PFLT_FILTER) o dell'istanza (PFLT_INSTANCE) per il chiamante.

[in] WorkerRoutine

Puntatore a una routine di lavoro fornita dal chiamante. Questa routine viene dichiarata come segue:

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

FltWorkItem

Puntatore opaco a una struttura di elementi di lavoro generica.

FltObject

Puntatore di filtro opaco passato come parametro FltObject di FltQueueGenericWorkItem.

Contesto

Puntatore alle informazioni di contesto passato come parametro Context di FltQueueGenericWorkItem. Questo parametro è facoltativo e,

[in] QueueType

Specifica la coda in cui deve essere inserito l'elemento di lavoro a cui fltWorkItem punta. QueueType può essere uno dei seguenti:

Valore Significato
CriticalWorkQueue Inserire l'elemento di lavoro nella coda da cui un thread di sistema con un attributo di priorità in tempo reale elabora l'elemento di lavoro.
DelayedWorkQueue Inserire l'elemento di lavoro nella coda da cui un thread di sistema con un attributo di priorità variabile elabora l'elemento di lavoro.
 

Il valore QueueTypeHyperCriticalWorkQueue è riservato per l'uso del sistema.

[in, optional] Context

Puntatore alle informazioni sul contesto definite dal chiamante da passare come parametro Context della routine di callback specificata nel parametro WorkerRoutine . Questo parametro è facoltativo e,

Valore restituito

FltQueueGenericWorkItem restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio uno dei seguenti:

Codice restituito Descrizione
STATUS_FLT_DELETING_OBJECT
Il driver minifilter viene scaricato. Si tratta di un codice di errore.

Commenti

FltQueueGenericWorkItem inserisce un elemento di lavoro non associato a un'operazione di I/O specifica in una coda di lavoro di sistema. La routine di callback WorkerRoutine specificata viene chiamata nel contesto di un thread di sistema, in IRQL PASSIVE_LEVEL.

Per allocare un elemento di lavoro, chiamare FltAllocateGenericWorkItem.

Per liberare l'elemento di lavoro quando non è più necessario, chiama FltFreeGenericWorkItem.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione fltkernel.h (include Fltkernel.h)
Libreria FltMgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

Vedi anche

FltAllocateGenericWorkItem

FltFreeGenericWorkItem