Condividi tramite


Funzione ZwPrepareEnlistment (wdm.h)

La routine ZwPrepareEnlistment avvia l'operazione di preparazione per la transazione di un'integrazione specificata.

Sintassi

NTSYSCALLAPI NTSTATUS ZwPrepareEnlistment(
  [in]           HANDLE         EnlistmentHandle,
  [in, optional] PLARGE_INTEGER TmVirtualClock
);

Parametri

[in] EnlistmentHandle

Handle per un oggetto di integrazione ottenuto da una chiamata precedente a ZwCreateEnlistment o ZwOpenEnlistment. L'oggetto deve rappresentare un'integrazione superiore e l'handle deve avere ENLISTMENT_SUPERIOR_RIGHTS l'accesso all'oggetto.

[in, optional] TmVirtualClock

Puntatore a un valore di clock virtuale. Questo parametro è facoltativo e può essere NULL.

Valore restituito

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

Codice restituito Descrizione
STATUS_ENLISTMENT_NOT_SUPERIOR
Il chiamante non è un gestore transazioni superiore per l'integrazione.
STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED
Il chiamante non è stato registrato per ricevere notifiche di TRANSACTION_NOTIFY_PREPARE_COMPLETE.
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_ACCESS_DENIED
Il chiamante non dispone dell'accesso appropriato all'oggetto di integrazione.
STATUS_TRANSACTION_REQUEST_NOT_VALID
La transazione di integrazione non è in uno stato che consente di entrare nella fase di preparazione.
 

La routine potrebbe restituire altri valori NTSTATUS.

Commenti

Solo i gestori di transazioni superiori possono chiamare ZwPrepareEnlistment.

La routine ZwPrepareEnlistment fa sì che KTM invii notifiche TRANSACTION_NOTIFY_PREPARE a tutti i gestori di risorse che sono stati inseriti nella transazione.

I chiamanti di ZwPrepareEnlistment devono registrarsi per ricevere notifiche di TRANSACTION_NOTIFY_PREPARE_COMPLETE.

Per altre informazioni su ZwPrepareEnlistment, vedere Creating a Superior Transaction Manager and Handling Commit Operations.For more information about ZwPrepareEnlistment, see Creating a Superior Transaction Manager and Handling Commit Operations.

NtPrePrepareEnlistment e ZwPrePrepareEnlistment 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, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
Regole di conformità DDI HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

Vedi anche

TmPrepareEnlistment

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

ZwCreateEnlistment

ZwOpenEnlistment