Condividi tramite


Funzione NtRecoverEnlistment (wdm.h)

La routine ZwRecoverEnlistment avvia un'operazione di ripristino per la transazione associata a un'integrazione specificata.

Sintassi

__kernel_entry NTSYSCALLAPI NTSTATUS NtRecoverEnlistment(
  [in]           HANDLE EnlistmentHandle,
  [in, optional] PVOID  EnlistmentKey
);

Parametri

[in] EnlistmentHandle

Handle per un oggetto di integrazione ottenuto da una chiamata precedente a ZwCreateEnlistment o ZwOpenEnlistment. L'handle deve avere ENLISTMENT_RECOVER accesso all'oggetto.

[in, optional] EnlistmentKey

Puntatore al valore della chiave di integrazione specificato in precedenza come parametro EnlistmentKey per ZwCreateEnlistment. Questo parametro è facoltativo e può essere NULL se resource manager non ha fornito una chiave di integrazione quando ha chiamato ZwCreateEnlistment.

Valore restituito

ZwRecoverEnlistment restituisce STATUS_SUCCESS se l'operazione ha esito positivo. In caso contrario, questa routine potrebbe restituire uno dei valori seguenti:

Codice restituito Descrizione
STATUS_OBJECT_TYPE_MISMATCH
L'handle specificato non è un handle per un oggetto di integrazione.
STATUS_INVALID_HANDLE
L'handle dell'oggetto non è valido.
STATUS_TRANSACTION_REQUEST_NOT_VALID
La transazione o il relativo inserimento non è nello stato corretto.
STATUS_PENDING
KTM ha aggiunto una notifica di commit, rollback o in dubbio alla coda di notifica di Resource Manager e il gestore delle risorse non usa una routine di callback ResourceManagerNotification.
STATUS_ACCESS_DENIED
Il chiamante non dispone dell'accesso appropriato all'oggetto di integrazione.
 

La routine potrebbe restituire altri valori NTSTATUS .

Osservazioni

Dopo che un gestore risorse chiama ZwRecoverEnlistment, KTM recapita un TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK o TRANSACTION_NOTIFY_INDOUBT notifica per l'integrazione. Pertanto, a meno che il gestore delle risorse non usi una routine di callback ResourceManagerNotification, deve chiamare immediatamente ZwGetNotificationResourceManager se ZwRecoverEnlistment restituisce STATUS_SUCCESS o STATUS_PENDING.

Per altre informazioni su ZwRecoverEnlistment, vedere Gestione delle operazioni di ripristino.

NtRecoverEnlistment e ZwRecoverEnlistment sono due versioni della stessa routine di Servizi di sistema nativi di Windows.

Per le chiamate da driver in modalità kernel, le NtXxx e ZwXxx versioni di una routine di Windows Native System Services possono comportarsi in modo diverso nel modo in cui gestiscono e interpretano i parametri di input. Per altre informazioni sulla relazione tra le versioni NtXxx e ZwXxx di una routine, vedere Using Nt and Zw Versions of the Native System Services Routines.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile in Windows Vista e versioni successive del sistema operativo.
piattaforma di destinazione Universale
intestazione wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
regole di conformità DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Vedere anche

ResourceManagerNotification

TmRecoverEnlistment

uso di versioni Nt e Zw delle routine di Servizi di sistema nativi

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment