Función NtGetNotificationResourceManager (wdm.h)
La rutina de ZwGetNotificationResourceManager recupera la siguiente notificación de transacción de una cola de notificaciones de Resource Manager especificada.
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 resource Manager 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 TransactionNotification.
[in] Timeout
Puntero a un valor que especifica un tiempo relativo o absoluto, en unidades de 100 nanosegundos. Este puntero es opcional y se puede 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 es realmente 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, tanto si hay una notificación disponible como si no.
[out, optional] ReturnLength
Puntero opcional a una variable. Si este puntero no es null, y si el valor del parámetro notificationLength de 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 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 puede devolver otros valores NTSTATUS de .
Observaciones
Use la rutina ZwGetNotificationResourceManager para obtener notificaciones de forma sincrónica. Use la rutina de TmEnableCallbacks para habilitar las notificaciones asincrónicas.
La estructura TRANSACTION_NOTIFICATION recibida contiene la clave de inscripción que especificó el administrador de recursos 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 de de ZwGetNotificationResourceManager, consulte Creating a Resource Manager.
NtGetNotificationResourceManager y ZwGetNotificationResourceManager son dos versiones de la misma rutina de Servicios de sistema nativo de Windows.
En el caso de las llamadas desde controladores en modo kernel, las NtXxx y Zwversiones de Xxx de una rutina de Servicios del sistema nativo de Windows pueden comportarse 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 de NtXxx y ZwXxx de una rutina, vea Using Nt and Zw Versions of the Native System Services Routines.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Disponible en Windows Vista y versiones posteriores del sistema operativo. |
de la plataforma de destino de | Universal |
encabezado de | wdm.h (include Wdm.h, Ntifs.h) |
biblioteca de | NtosKrnl.lib |
DLL de | NtosKrnl.exe |
irQL | = PASSIVE_LEVEL |
reglas de cumplimiento de DDI | HwStorPortProhibitedDIs, PowerIrpDDis |
Consulte también
usar versiones Nt y Zw de las rutinas de servicios del sistema nativo