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 da Resource Manager come parametro EnlistmentKey in 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 gestione 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.

Commenti

Dopo che un gestore di risorse chiama ZwRecoverEnlistment, KTM recapita una notifica di TRANSACTION_NOTIFY_COMMIT, TRANSACTION_NOTIFY_ROLLBACK o TRANSACTION_NOTIFY_INDOUBT per l'integrazione. Pertanto, a meno che il gestore di 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 versioni NtXxx e ZwXxx di una routine di Servizi di sistema nativi di Windows 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 .For more information about the Nt Xxx and Zw versions of the Native System Services Routines.

Requisiti

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

Vedi anche

ResourceManagerNotification

TmRecoverEnlistment

Uso delle versioni Nt e Zw delle routine native di Servizi di sistema

ZwCreateEnlistment

ZwGetNotificationResourceManager

ZwOpenEnlistment