Funzione FltPrepareComplete (fltkernel.h)

La routine FltPrepareComplete riconosce una notifica di TRANSACTION_NOTIFY_PREPREPARE.

Sintassi

NTSTATUS FLTAPI FltPrePrepareComplete(
  [in]           PFLT_INSTANCE Instance,
  [in]           PKTRANSACTION Transaction,
  [in, optional] PFLT_CONTEXT  TransactionContext
);

Parametri

[in] Instance

Puntatore istanza opaca per il chiamante.

[in] Transaction

Puntatore delle transazioni opaco per la transazione.

[in, optional] TransactionContext

Puntatore al contesto delle transazioni del driver minifilter.

Valore restituito

FltPrepareComplete restituisce STATUS_SUCCESS o un valore NTSTATUS appropriato, ad esempio quanto segue:

Codice restituito Descrizione
STATUS_NOT_FOUND
Il driver minifilter non ha impostato un contesto sulla transazione. Si tratta di un codice di errore.

Commenti

Un driver minifilter incluso in una transazione può ricevere una notifica di TRANSACTION_NOTIFY_PREPREPARE quando la transazione entra nella fase di pre-preparazione per il commit. Per inviare la notifica al driver minifilter, il gestore filtri chiama la routine TransactionNotificationCallback del driver minifilter. Il driver minifilter riconosce questa notifica in uno dei due modi seguenti:

  • La routine TransactionNotificationCallback del driver minifilter esegue qualsiasi elaborazione necessaria e restituisce STATUS_SUCCESS. In questo caso, il driver minifilter non chiama FltPrepareComplete.
  • La routine TransactionNotificationCallback del driver minifilter pubblica qualsiasi elaborazione necessaria per un thread di lavoro e restituisce STATUS_PENDING. Dopo aver eseguito l'elaborazione in modo asincrono, la routine di lavoro del driver minifilter deve chiamare FltPrepareComplete per indicare che è stata completata l'elaborazione. Se la routine di lavoro del driver minifilter non chiama FltPrepareComplete, l'operazione di pre-preparazione delle transazioni non può essere completata dalla gestione transazioni kernel.
Per registrare una routine TransactionNotificationCallback, un driver minifilter archivia l'indirizzo di una routine di tipo PFLT_TRANSACTION_NOTIFICATION_CALLBACK nel membro TransactionNotificationCallbackdella strutturaFLT_REGISTRATION che il driver minifilter passa come parametro Di registrazione di FltRegisterFilter.

Per eseguire l'inserimento in una transazione, chiamare FltEnlistInTransaction.

Per allocare un nuovo contesto di transazione, chiamare FltAllocateContext.

Per recuperare un contesto di transazione, chiamare FltGetTransactionContext.

Per eliminare un contesto di transazione, chiamare FltDeleteTransactionContext o FltDeleteContext.

Per impostare un contesto di transazione, chiamare FltSetTransactionContext.

Requisiti

Requisito Valore
Client minimo supportato Questa routine è disponibile in Windows Vista e versioni successive.
Piattaforma di destinazione Universale
Intestazione fltkernel.h (includere Fltkernel.h)
Libreria FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

Vedi anche

FLT_REGISTRATION

FltAllocateContext

FltCommitComplete

FltDeleteContext

FltDeleteTransactionContext

FltEnlistInTransaction

FltGetTransactionContext

FltPrepareComplete

FltRegisterFilter

FltReleaseContext

FltRollbackComplete

FltRollbackEnlistment

FltSetTransactionContext

PFLT_TRANSACTION_NOTIFICATION_CALLBACK