次の方法で共有


FltCompletePendedPreOperation 関数 (fltkernel.h)

FltCompletePendedPreOperation は、ミニフィルター ドライバーのプリ操作コールバック (PFLT_PRE_OPERATION_CALLBACK) ルーチンにペンドされた I/O 操作の処理を再開します。

構文

VOID FLTAPI FltCompletePendedPreOperation(
                 PFLT_CALLBACK_DATA        CallbackData,
  [in]           FLT_PREOP_CALLBACK_STATUS CallbackStatus,
  [in, optional] PVOID                     Context
);

パラメーター

CallbackData

I/O 操作のコールバック データ (FLT_CALLBACK_DATA) 構造体へのポインター。 このパラメーターは必須であり、NULL にすることはできません。

[in] CallbackStatus

この I/O 操作に対してミニフィルター ドライバーが返す状態の値。 FLT_PREOP_PENDING、FLT_PREOP_SYNCHRONIZE、またはFLT_PREOP_DISALLOW_FASTIOすることはできません。 次のいずれかのFLT_PREOP_CALLBACK_STATUS値である必要があります。 これらの値の効果の詳細については、 PFLT_PRE_OPERATION_CALLBACKのリファレンス エントリの「解説」セクションを参照してください。

意味
FLT_PREOP_COMPLETE ミニフィルター ドライバーが I/O 操作を完了しています。 フィルター マネージャーは、呼び出し元またはファイル システムの下のミニフィルター ドライバーに I/O 操作を送信しません。 フィルター マネージャーは、呼び出し元より上のミニフィルター ドライバーの postoperation コールバック (PFLT_POST_OPERATION_CALLBACK) ルーチンのみを呼び出します。
FLT_PREOP_SUCCESS_NO_CALLBACK ミニフィルター ドライバーは、フィルター マネージャーに I/O 操作の制御を返しています。 フィルター マネージャーは、I/O の完了時に対応する操作後コールバックが存在する場合は呼び出しません。
FLT_PREOP_SUCCESS_WITH_CALLBACK ミニフィルター ドライバーは、フィルター マネージャーに I/O 操作の制御を返しています。 フィルター マネージャーは、I/O の完了時に対応する操作後コールバックを呼び出します。

[in, optional] Context

CallbackStatus にFLT_PREOP_SUCCESS_WITH_CALLBACKが指定されている場合、このパラメーターは、対応する操作後コールバック ルーチンに渡される省略可能なコンテキスト ポインターです。 CallbackStatus にFLT_PREOP_COMPLETEまたはFLT_PREOP_SUCCESS_NO_CALLBACKが指定されている場合、このパラメーターは NULL である必要があります。

戻り値

なし

解説

ミニフィルター ドライバーの事前操作コールバック (PFLT_PRE_OPERATION_CALLBACK) ルーチンが I/O 操作を作業キューにポストし、FLT_PREOP_PENDINGを返すと、フィルター マネージャーは操作の処理を停止します。 操作が最終的にデキューされて処理されると、ミニフィルター ドライバーは FltCompletePendedPreOperation を呼び出してフィルター マネージャーに操作を返し、ミニフィルター ドライバーで指定された CallbackStatus の指示に基づく処理を再開する必要があります。

CallbackStatus パラメーターがFLT_PREOP_COMPLETEされている場合は、IRQL <= DISPATCH_LEVELで FltCompletePendedPreOperation を呼び出すことができます。 それ以外の場合、 FltCompletePendedPreOperation の呼び出し元は IRQL <= APC_LEVELで実行されている必要があります。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
IRQL 「解説」を参照してください。

こちらもご覧ください

FLT_CALLBACK_DATA

FltCbdqInitialize

FltCompletePendedPostOperation

FltQueueDeferredIoWorkItem

PFLT_PRE_OPERATION_CALLBACK