FltQueueGenericWorkItem 函式 (fltkernel.h)

FltQueueGenericWorkItem 會將未與特定 I/O 作業相關聯的工作專案張貼至工作佇列。

語法

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

參數

[in] FltWorkItem

要加入至工作佇列之工作專案的指標。 工作項目必須透過呼叫 FltAllocateGenericWorkItem 來配置。

[in] FltObject

不透明篩選 (PFLT_FILTER) 或呼叫端的實例 (PFLT_INSTANCE) 指標。

[in] WorkerRoutine

呼叫端提供背景工作例程的指標。 此例程宣告如下:

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

FltWorkItem

泛型工作項目結構的不透明指標。

FltObject

傳遞為 FltQueueGenericWorkItem之 FltObject 參數的不透明篩選指標。

Context

傳遞為 FltQueueGenericWorkItemContext 參數的內容資訊指標。 這是選擇性參數。

[in] QueueType

指定要插入 FltWorkItem 所指向工作專案的佇列。 QueueType 可以是下列其中一項:

意義
CriticalWorkQueue 將工作專案插入佇列,其中具有即時優先順序屬性的系統線程會處理工作專案。
DelayedWorkQueue 將工作專案插入佇列,其中具有變數優先順序屬性的系統線程會處理工作專案。
 

QueueTypeHyperCriticalWorkQueue 會保留給系統使用。

[in, optional] Context

要當做 WorkerRoutine 參數中所指定回呼例程之 Context 參數傳遞之呼叫端定義內容資訊的指標。 這是選擇性參數。

傳回值

FltQueueGenericWorkItem 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

傳回碼 Description
STATUS_FLT_DELETING_OBJECT
正在卸除迷你篩選驅動程式。 這是錯誤碼。

備註

FltQueueGenericWorkItem 會將未與特定 I/O 作業相關聯的工作專案插入系統工作佇列。 在 IRQL PASSIVE_LEVEL,會在系統線程的內容中呼叫指定的 WorkerRoutine 回呼例程。

若要配置工作專案,請呼叫 FltAllocateGenericWorkItem

若要在不再需要時釋出工作專案,請呼叫 FltFreeGenericWorkItem

規格需求

需求
目標平台 Universal
標頭 fltkernel.h (包含 Fltkernel.h)
程式庫 FltMgr.lib
Dll Fltmgr.sys
IRQL <= DISPATCH_LEVEL

另請參閱

FltAllocateGenericWorkItem

FltFreeGenericWorkItem