| Previous | Next |
| ERROR_FLT_VOLUME_ALREADY_MOUNTED | ERROR_FLT_CONTEXT_ALREADY_LINKED |
ERROR_FLT_ALREADY_ENLISTED
Enlistment is one relationship per instance and transaction
ERROR_FLT_ALREADY_ENLISTED is returned by FltEnlistInTransaction when the caller is already enlisted in that transaction. Enlistment asks Filter Manager to deliver selected transaction notifications—such as prepare, commit, finalize, or rollback—to the minifilter’s registered transaction callback using its transaction context.
Repeated enlistment is not how a filter expands its notification mask after the fact. The driver should establish one transaction context, select the complete required mask, and make concurrent paths converge on that state. A race can otherwise allocate multiple contexts and attempt duplicate enlistment while filesystem operations for the same transaction arrive on different threads.
Transaction-state checks
- Use a single per-transaction initialization path protected by the context set race rules.
- Register
TransactionNotificationCallbackbefore attempting enlistment. - Choose commit and rollback notifications according to the state the filter must reconcile.
- Release the losing context and reuse the installed transaction context after a duplicate attempt.
References
- Microsoft: FltEnlistInTransaction
- Microsoft: transaction contexts in minifilters
- Microsoft: context installation race patterns
Looking for a different code? Search another status or error code.
