次の方法で共有


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 値を返します。

リターン コード 形容
STATUS_NOT_FOUND
ミニフィルター ドライバーは、トランザクションにコンテキストを設定しませんでした。 これはエラー コードです。

備考

トランザクションに参加しているミニフィルター ドライバーは、トランザクションがコミットフェーズの事前準備に入ったときにTRANSACTION_NOTIFY_PREPREPARE通知を受け取ることができます。 ミニフィルター ドライバーに通知を送信するには、フィルター マネージャーは、ミニフィルター ドライバーの TransactionNotificationCallback ルーチンを呼び出します。 ミニフィルター ドライバーは、次の 2 つの方法のいずれかでこの通知を確認します。

  • ミニフィルター ドライバーの TransactionNotificationCallback ルーチンは、必要な処理を実行し、STATUS_SUCCESSを返します。 この場合、ミニフィルター ドライバーは FltPrePrepareComplete 呼び出しません。
  • ミニフィルター ドライバーの TransactionNotificationCallback ルーチンは、ワーカー スレッドに必要な処理をポストし、STATUS_PENDINGを返します。 処理を非同期的に実行した後、ミニフィルター ドライバーの作業ルーチンは、FltPrePrepareComplete 呼び出して、この処理が完了したことを示す必要があります。 ミニフィルター ドライバーの作業ルーチンが FltPrePrepareComplete 呼び出さない場合は、カーネル トランザクション マネージャーがトランザクションの事前準備操作を完了できません。
TransactionNotificationCallback ルーチンを登録するために、ミニフィルター ドライバーは、PFLT_TRANSACTION_NOTIFICATION_CALLBACK 型のルーチンのアドレスを、ミニフィルター ドライバーが FltRegisterFilter Registration パラメーターとして渡す FLT_REGISTRATION 構造体の TransactionNotificationCallback メンバー格納します。

トランザクションに参加するには、FltEnlistInTransaction 呼び出します。

新しいトランザクション コンテキストを割り当てるには、FltAllocateContext 呼び出します。

トランザクション コンテキストを取得するには、FltGetTransactionContext 呼び出します。

トランザクション コンテキストを削除するには、FltDeleteTransactionContext 呼び出すか、FltDeleteContext します。

トランザクション コンテキストを設定するには、FltSetTransactionContext を呼び出します。

必要条件

要件 価値
サポートされる最小クライアント このルーチンは、Windows Vista 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

関連項目

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete する

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction する

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete する

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK