Partager via


Fonction NtGetNotificationResourceManager (wdm.h)

La routine ZwGetNotificationResourceManager récupère les de notification de transaction de suivantes à partir de la file d’attente de notification d’un gestionnaire de ressources spécifié.

Syntaxe

__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
);

Paramètres

[in] ResourceManagerHandle

Handle vers un objet Resource Manager obtenu par un appel précédent à ZwCreateResourceManager ou ZwOpenResourceManager. Le handle doit avoir RESOURCEMANAGER_GET_NOTIFICATION accès à l’objet.

[out] TransactionNotification

Pointeur vers une mémoire tampon allouée par l’appelant qui reçoit des informations sur la notification récupérée. La mémoire tampon doit être suffisamment grande pour contenir une structure TRANSACTION_NOTIFICATION ainsi que d’autres arguments spécifiques à la notification.

[in] NotificationLength

Longueur, en octets, de la mémoire tampon vers laquelle pointe le paramètre TransactionNotification .

[in] Timeout

Pointeur vers une valeur qui spécifie un temps relatif ou absolu, en unités de 100 nanosecondes. Ce pointeur est facultatif et peut être NULL.

Si le pointeur est NULL, ZwGetNotificationResourceManager ne retourne pas tant qu’une notification de transaction n’est pas disponible. Si une valeur de temps est spécifiée, ZwGetNotificationResourceManager retourne lorsqu’une notification est disponible ou après l’expiration du délai spécifié, selon ce qui se produit en premier.

Une valeur négative spécifie une heure relative à l’heure système actuelle. Par exemple, une valeur de temps relative de cinq secondes entraîne ZwGetNotificationResourceManager d’expirer cinq secondes après son appel.

Une valeur positive spécifie un temps absolu, qui est en fait relatif à 00:00, le 1er janvier 1601. Si une valeur d’heure absolue est spécifiée, le système d’exploitation ajoute la valeur de temps absolue à la valeur de temps qui représente 00:00, le 1er janvier 1601.

Si l’appelant spécifie une valeur zéro (au lieu d’un pointeur NULL), ZwGetNotificationResourceManager retourne immédiatement, qu’une notification soit disponible ou non.

[out, optional] ReturnLength

Pointeur facultatif vers une variable. Si ce pointeur n’est pas NULL et si la valeur du paramètre NotificationLength est trop petite, ZwGetNotificationResourceManager fournit la longueur requise dans la variable et retourne STATUS_BUFFER_TOO_SMALL.

[in] Asynchronous

Valeur ULONG qui doit être égale à zéro. ZwGetNotificationResourceManager ne prend pas en charge les notifications asynchrones. Utilisez TmEnableCallbacks pour activer les notifications asynchrones.

[in, optional] AsynchronousContext

Pointeur vers une valeur ULONG. Ce pointeur doit être NULL.

Valeur de retour

ZwGetNotificationResourceManager retourne STATUS_SUCCESS si l’opération réussit et qu’une notification est disponible. Sinon, cette routine peut retourner l’une des valeurs suivantes :

Retourner le code Description
STATUS_TIMEOUT
Intervalle de délai d’attente délai d’expiration spécifié avant qu’une notification ne soit disponible.
STATUS_OBJECT_TYPE_MISMATCH
Le handle spécifié n’est pas un handle pour un objet Resource Manager.
STATUS_INVALID_HANDLE
Le handle d’objet n’est pas valide.
STATUS_ACCESS_DENIED
L’appelant n’a pas d’accès approprié à l’objet Resource Manager.
STATUS_BUFFER_TOO_SMALL
La valeur du paramètre NotificationLength est trop petite.
 

La routine peut retourner d’autres valeurs NTSTATUS .

Remarques

Utilisez la routine ZwGetNotificationResourceManager pour obtenir des notifications de manière synchrone. Utilisez la routine TmEnableCallbacks pour activer les notifications asynchrones.

La structure TRANSACTION_NOTIFICATION reçue contient la clé d’inscription spécifiée par le gestionnaire de ressources lorsqu’il a appelé ZwCreateEnlistment. Vous pouvez utiliser la clé d’inscription pour identifier l’inscription à laquelle la notification s’applique.

Pour plus d’informations sur la routine ZwGetNotificationResourceManager, consultez Création d’unResource Manager.

NtGetNotificationResourceManager et ZwGetNotificationResourceManager sont deux versions de la même routine Windows Native System Services.

Pour les appels à partir de pilotes en mode noyau, les versions NtXxx et ZwXxx d’une routine Windows Native System Services peuvent se comporter différemment de la façon dont elles gèrent et interprètent les paramètres d’entrée. Pour plus d’informations sur la relation entre les versions NtXxx et ZwXxx d’une routine, consultez Using Nt and Zw Versions of the Native System Services Routines.

Exigences

Exigence Valeur
client minimum pris en charge Disponible dans Windows Vista et versions ultérieures du système d’exploitation.
plateforme cible Universel
d’en-tête wdm.h (include Wdm.h, Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL = PASSIVE_LEVEL
règles de conformité DDI HwStorPortProhibitedDDIs, PowerIrpDDis

Voir aussi

TRANSACTION_NOTIFICATION

TmEnableCallbacks

à l’aide de versions Nt et Zw des routines natives des services système

ZwCreateEnlistment

ZwCreateResourceManager

ZwOpenResourceManager