FltPrePrepareComplete 関数 (fltkernel.h)
FltPrePrepareComplete ルーチンは、TRANSACTION_NOTIFY_PREPREPARE通知を確認します。
構文
NTSTATUS FLTAPI FltPrePrepareComplete(
[in] PFLT_INSTANCE Instance,
[in] PKTRANSACTION Transaction,
[in, optional] PFLT_CONTEXT TransactionContext
);
パラメーター
[in] Instance
呼び出し元の不透明なインスタンス ポインター。
[in] Transaction
トランザクションの不透明なトランザクション ポインター。
[in, optional] TransactionContext
ミニフィルター ドライバーのトランザクション コンテキストへのポインター。
戻り値
FltPrePrepareComplete は、次のようなSTATUS_SUCCESSまたは適切な NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
ミニフィルター ドライバーは、トランザクションにコンテキストを設定しませんでした。 これはエラー コードです。 |
注釈
トランザクションに参加しているミニフィルター ドライバーは、トランザクションがコミットの事前準備フェーズに入ったときに、TRANSACTION_NOTIFY_PREPREPARE通知を受け取ることができます。 ミニフィルター ドライバーに通知を送信するには、フィルター マネージャーは、ミニフィルター ドライバーの TransactionNotificationCallback ルーチンを 呼び出します。 ミニフィルター ドライバーは、次の 2 つの方法のいずれかでこの通知を確認します。
- ミニフィルター ドライバーの TransactionNotificationCallback ルーチンは、必要な処理を実行し、STATUS_SUCCESSを返します。 この場合、ミニフィルター ドライバーは FltPrePrepareComplete を呼び出しません。
- ミニフィルター ドライバーの TransactionNotificationCallback ルーチンは、必要な処理をワーカー スレッドにポストし、STATUS_PENDINGを返します。 非同期的に処理を実行した後、ミニフィルター ドライバーの作業ルーチンは FltPrePrepareComplete を呼び出して、この処理が完了したことを示す必要があります。 ミニフィルター ドライバーの作業ルーチンが FltPrePrepareComplete を呼び出さない場合、トランザクションの事前準備操作はカーネル トランザクション マネージャーで完了できません。
トランザクションに参加するには、 FltEnlistInTransaction を呼び出します。
新しいトランザクション コンテキストを割り当てるには、 FltAllocateContext を呼び出します。
トランザクション コンテキストを取得するには、 FltGetTransactionContext を呼び出します。
トランザクション コンテキストを削除するには、 FltDeleteTransactionContext または FltDeleteContext を呼び出します。
トランザクション コンテキストを設定するには、 FltSetTransactionContext を呼び出します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | このルーチンは、Windows Vista 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
[DLL] | Fltmgr.sys |
IRQL | <= APC_LEVEL |