Función NtGetNotificationResourceManager (wdm.h)
La rutina ZwGetNotificationResourceManager recupera la siguiente notificación de transacción de la cola de notificaciones de un administrador de recursos especificado.
Sintaxis
__kernel_entry NTSYSCALLAPI NTSTATUS NtGetNotificationResourceManager(
[in] HANDLE ResourceManagerHandle,
[out] PTRANSACTION_NOTIFICATION TransactionNotification,
[in] ULONG NotificationLength,
[in] PLARGE_INTEGER Timeout,
[out, optional] PULONG ReturnLength,
[in] ULONG Asynchronous,
[in, optional] ULONG_PTR AsynchronousContext
);
Parámetros
[in] ResourceManagerHandle
Identificador de un objeto de administrador de recursos obtenido por una llamada anterior a ZwCreateResourceManager o ZwOpenResourceManager. El identificador debe tener RESOURCEMANAGER_GET_NOTIFICATION acceso al objeto .
[out] TransactionNotification
Puntero a un búfer asignado por el autor de la llamada que recibe información sobre la notificación recuperada. El búfer debe ser lo suficientemente grande como para contener una estructura de TRANSACTION_NOTIFICATION más argumentos adicionales específicos de la notificación.
[in] NotificationLength
Longitud, en bytes, del búfer al que apunta el parámetro TransactionNotification .
[in] Timeout
Puntero a un valor que especifica un tiempo relativo o absoluto, en unidades de 100 nanosegundos. Este puntero es opcional y puede ser NULL.
Si el puntero es NULL, ZwGetNotificationResourceManager no devuelve hasta que haya disponible una notificación de transacción. Si se especifica un valor de hora, ZwGetNotificationResourceManager devuelve cuando una notificación está disponible o después de que transcurre el tiempo especificado, lo que ocurra primero.
Un valor negativo especifica una hora relativa a la hora actual del sistema. Por ejemplo, un valor de tiempo relativo de cinco segundos hace que ZwGetNotificationResourceManager agote el tiempo de espera cinco segundos después de llamar a .
Un valor positivo especifica una hora absoluta, que realmente es relativa a 00:00, 1 de enero de 1601. Si se especifica un valor de hora absoluto, el sistema operativo agrega el valor de hora absoluto al valor de hora que representa 00:00, 1 de enero de 1601.
Si el autor de la llamada especifica un valor cero (en lugar de un puntero NULL ), ZwGetNotificationResourceManager devuelve inmediatamente, si una notificación está disponible o no.
[out, optional] ReturnLength
Puntero opcional a una variable. Si este puntero no es NULL y el valor del parámetro NotificationLength es demasiado pequeño, ZwGetNotificationResourceManager proporciona la longitud necesaria en la variable y devuelve STATUS_BUFFER_TOO_SMALL.
[in] Asynchronous
Valor de ULONG que debe ser cero. ZwGetNotificationResourceManager no admite notificaciones asincrónicas. Use TmEnableCallbacks para habilitar las notificaciones asincrónicas.
[in, optional] AsynchronousContext
Puntero a un valor de ULONG. Este puntero debe ser NULL.
Valor devuelto
ZwGetNotificationResourceManager devuelve STATUS_SUCCESS si la operación se realiza correctamente y hay disponible una notificación. De lo contrario, esta rutina podría devolver uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
Intervalo de tiempo de espera que el tiempo de espera especifica transcurrido antes de que una notificación esté disponible. |
|
El identificador especificado no es un identificador para un objeto de Resource Manager. |
|
El identificador de objeto no es válido. |
|
El autor de la llamada no tiene el acceso adecuado al objeto de Resource Manager. |
|
El valor del parámetro NotificationLength es demasiado pequeño. |
La rutina podría devolver otros valores NTSTATUS.
Comentarios
Use la rutina ZwGetNotificationResourceManager para obtener notificaciones de forma sincrónica. Use la rutina TmEnableCallbacks para habilitar las notificaciones asincrónicas.
La estructura de TRANSACTION_NOTIFICATION recibida contiene la clave de inscripción que el administrador de recursos especificó cuando llamó a ZwCreateEnlistment. Puede usar la clave de inscripción para identificar la inscripción a la que se aplica la notificación.
Para obtener más información sobre la rutina ZwGetNotificationResourceManager, consulte Creación de un Resource Manager.
NtGetNotificationResourceManager y ZwGetNotificationResourceManager son dos versiones de la misma rutina de Windows Native System Services.
En el caso de las llamadas desde controladores en modo kernel, las versiones NtXxx y ZwXxx de una rutina de Servicios del sistema nativo de Windows se pueden comportar de forma diferente en la forma en que controlan e interpretan los parámetros de entrada. Para obtener más información sobre la relación entre las versiones NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Disponible en Windows Vista y versiones posteriores del sistema operativo. |
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Wdm.h, Ntifs.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe |
IRQL | = PASSIVE_LEVEL |
Reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte también
Uso de las versiones Nt y Zw de las rutinas nativas de Servicios del sistema