PTM_RM_NOTIFICATION función de devolución de llamada (wdm.h)
La rutina de devolución de llamada ResourceManagerNot ification de un administrador de recursos recibe y controla notificaciones de transacción.
Sintaxis
PTM_RM_NOTIFICATION PtmRmNotification;
NTSTATUS PtmRmNotification(
[in] PKENLISTMENT EnlistmentObject,
[in] PVOID RMContext,
[in] PVOID TransactionContext,
[in] ULONG TransactionNotification,
[in, out] PLARGE_INTEGER TmVirtualClock,
[in] ULONG ArgumentLength,
[in] PVOID Argument
)
{...}
Parámetros
[in] EnlistmentObject
Puntero a un objeto de inscripción de . La rutina de devolución de llamada ResourceManagerNotification recibe una notificación para la inscripción que representa este objeto.
[in] RMContext
Valor que el administrador de recursos especificó anteriormente para el parámetro RMKey de la rutina de TmEnableCallbacks.
[in] TransactionContext
Valor especificado anteriormente para el parámetro EnlistmentKey del ZwCreateEnlistment rutina.
[in] TransactionNotification
Uno de los valores de TRANSACTION_NOTIFY_XXX que se definen en Ktmtypes.h. Este valor especifica el tipo de notificación de transacción que KTM envió al autor de la llamada.
[in, out] TmVirtualClock
Puntero a una ubicación que contiene el valor del reloj virtual en el momento en que KTM preparó la notificación para su entrega al administrador de recursos. Si la rutina de devolución de llamada aumenta este valor antes de que se devuelva, KTM actualiza el reloj virtual al nuevo valor. (Normalmente, los administradores de recursos no modifican el valor del reloj virtual).
[in] ArgumentLength
Longitud, en bytes, del búfer al que apunta el parámetro Argumento. Este parámetro es cero si un búfer no está disponible.
[in] Argument
Puntero a un búfer que contiene argumentos específicos de la notificación. Este parámetro es NULL si la notificación de que el parámetro transactionNotification no requiere un búfer de argumentos.
Para obtener una lista de notificaciones que incluyen un búfer de argumentos adicional, vea la sección Comentarios de TRANSACTION_NOTIFICATION.
Valor devuelto
rutina de devolución de llamada ResourceManagerNotification debe devolver STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(estado) es igual a TRUE si la operación se realiza correctamente.
Normalmente, el administrador de recursos devuelve STATUS_SUCCESS si atiende la notificación de forma sincrónica y STATUS_PENDING si la notificación se envía de forma asincrónica, pero puede devolver STATUS_PENDING en cualquier caso. Sin embargo, el administrador de recursos solo puede devolver STATUS_PENDING para las notificaciones a las que responde llamando a una de las rutinas de TmXxxComplete o ZwXxxComplete.
Es decir, si el administrador de recursos debe responder a una notificación llamando a una de las rutinas de TmXxxComplete o ZwXxxComplete, puede devolver STATUS_PENDING para la notificación y llamar posteriormente a la rutina de TmXxxComplete o ZwXxxComplete.
Si se produce un error, la rutina de devolución de llamada debe devolver un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.
Observaciones
Para registrar una rutina de devolución de llamada de ResourceManagerNotification, el administrador de recursos debe llamar a TmEnableCallbacks.
Tenga en cuenta que ResourceManagerNotification rutinas de devolución de llamada reciben un puntero, en lugar de un identificador, a un objeto de inscripción. Puede pasar el puntero del objeto de inscripción al rutinas tmXxx del objeto de inscripción.
Para obtener más información sobre ResourceManagerNotification rutinas de devolución de llamada, consulte Creación de unade Resource Manager.
La rutina de devolución de llamada de ResourceManagerNotification se llama en IRQL = PASSIVE_LEVEL y debe devolverse en IRQL = PASSIVE_LEVEL.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows Vista y versiones posteriores del sistema operativo. |
de la plataforma de destino de | Escritorio |
encabezado de | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
irQL | PASSIVE_LEVEL (consulte la sección Comentarios) |