共用方式為


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

傳遞為 FltQueueGenericWorkItemFltObject 參數的不透明篩選指標。

上下文

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

[in] QueueType

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

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

QueueTypeHyperCriticalWorkQueue 保留供系統使用。

[in, optional] Context

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

傳回值

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

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

言論

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

若要設定工作專案,請呼叫 FltAllocateGenericWorkItem

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

要求

要求 價值
目標平臺 普遍
標頭 fltkernel.h (包括 Fltkernel.h)
連結庫 FltMgr.lib
DLL Fltmgr.sys
IRQL <= DISPATCH_LEVEL

另請參閱

FltAllocateGenericWorkItem

FltFreeGenericWorkItem