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
FltQueueGenericWorkItem の Context パラメーターとして渡されたコンテキスト情報ポインター。 このパラメーターは省略可能です。
[in] QueueType
FltWorkItem が指す作業項目を挿入するキューを指定します。 QueueType には、次のいずれかを指定できます。
値 | 意味 |
---|---|
CriticalWorkQueue | リアルタイム優先度属性を持つシステム スレッドが作業項目を処理するキューに作業項目を挿入します。 |
DelayedWorkQueue | 可変優先度属性を持つシステム・スレッドが作業項目を処理するキューに作業項目を挿入します。 |
QueueType 値 HyperCriticalWorkQueue は、システムで使用するために予約されています。
[in, optional] Context
WorkerRoutine パラメーターで指定されたコールバック ルーチンの Context パラメーターとして渡される呼び出し元定義のコンテキスト情報へのポインター。 このパラメーターは省略できます。
戻り値
FltQueueGenericWorkItem は、次のいずれかのSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
ミニフィルター ドライバーがアンロードされています。 これはエラー コードです。 |
注釈
FltQueueGenericWorkItem は、特定の I/O 操作に関連付けられていない作業項目をシステム作業キューに挿入します。 指定された WorkerRoutine コールバック ルーチンは、IRQL PASSIVE_LEVELで、システム スレッドのコンテキストで呼び出されます。
作業項目を割り当てるには、 FltAllocateGenericWorkItem を呼び出します。
作業項目が不要になったときに作業項目を解放するには、 FltFreeGenericWorkItem を呼び出します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
[DLL] | Fltmgr.sys |
IRQL | <= DISPATCH_LEVEL |