次の方法で共有


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 パラメーターとして渡された不透明なフィルター ポインター。

Context

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 を呼び出します。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

FltAllocateGenericWorkItem

FltFreeGenericWorkItem