PFLT_TRANSACTION_NOTIFICATION_CALLBACK コールバック関数 (fltkernel.h)
ミニフィルター ドライバーは、 TransactionNotificationCallback ルーチンとしてPFLT_TRANSACTION_NOTIFICATION_CALLBACK型のルーチンを登録できます。
構文
PFLT_TRANSACTION_NOTIFICATION_CALLBACK PfltTransactionNotificationCallback;
NTSTATUS PfltTransactionNotificationCallback(
[in] PCFLT_RELATED_OBJECTS FltObjects,
[in] PFLT_CONTEXT TransactionContext,
[in] ULONG NotificationMask
)
{...}
パラメーター
[in] FltObjects
現在 の操作 に関連するオブジェクトの不透明なポインターを含むFLT_RELATED_OBJECTS構造体へのポインター。
[in] TransactionContext
ミニフィルター ドライバーのトランザクション コンテキストへのポインター。
[in] NotificationMask
フィルター マネージャーがミニフィルター ドライバーに送信する通知の種類を、次のいずれかの値として指定します。
値 | 意味 |
---|---|
TRANSACTION_NOTIFY_COMMIT | この通知は、トランザクションがコミットされるときに送信されます。 |
TRANSACTION_NOTIFY_COMMIT_FINALIZE | Windows Vista SP1 以降の場合、この通知は、トランザクションが完全にコミットされた場合 (つまり、TxF などのトランザクションに関連付けられているすべてのリソース マネージャーがコミットされた場合) に送信されます。 |
TRANSACTION_NOTIFY_PREPARE | この通知は、トランザクションがコミット準備フェーズに入ると送信されます。 |
TRANSACTION_NOTIFY_PREPREPARE | この通知は、トランザクションがコミットの事前準備フェーズに入ると送信されます。 |
TRANSACTION_NOTIFY_ROLLBACK | この通知は、トランザクションがロールバックまたは中止されるときに送信されます。 |
戻り値
PFLT_TRANSACTION_NOTIFICATION_CALLBACK ルーチンは、次のいずれかの NTSTATUS 値を返します。
リターン コード | 説明 |
---|---|
|
この状態値を返すは、ミニフィルター ドライバーがトランザクションで終了したことを示します。 これは成功コードです。 |
|
この状態値を返すは、ミニフィルター ドライバーがまだトランザクションで完了されていないことを示します。 これは成功コードです。 |
注釈
ミニフィルター ドライバーは、DriverEntry ルーチンから FltRegisterFilter を呼び出して自身を登録するときに、ミニフィルターの TransactionNotificationCallback ルーチンとしてPFLT_TRANSACTION_NOTIFICATION_CALLBACK型のルーチンを登録できます。
TransactionNotificationCallback ルーチンを登録するために、ミニフィルター ドライバーは、ミニフィルター ドライバーが FltRegisterFilter の Registration パラメーターとして渡すFLT_REGISTRATION構造体の TransactionNotificationCallback メンバーにPFLT_TRANSACTION_NOTIFICATION_CALLBACK型のルーチンのアドレスを格納します。
フィルター マネージャーは、ミニフィルター ドライバーが参加しているトランザクションの状態についてミニフィルター ドライバーに通知するには、このルーチンを呼び出します。
ミニフィルター ドライバーがこのコールバック ルーチンからSTATUS_PENDINGを返す場合は、通知の処理が完了したことを示すために、最終的に次のいずれかのルーチンを呼び出す必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | PFLT_TRANSACTION_NOTIFICATION_CALLBACK ルーチンは、Windows Vista 以降で使用できます。 |
対象プラットフォーム | デスクトップ |
Header | fltkernel.h (Fltkernel.h を含む) |
IRQL | PASSIVE_LEVEL |