Funzione NtGetNotificationResourceManager (wdm.h)
La routine ZwGetNotificationResourceManager recupera la notifica della transazione successiva dalla coda di notifica di un gestore risorse specificato.
Sintassi
__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
);
Parametri
[in] ResourceManagerHandle
Handle per un oggetto resource manager ottenuto da una chiamata precedente a ZwCreateResourceManager o ZwOpenResourceManager. L'handle deve avere RESOURCEMANAGER_GET_NOTIFICATION l'accesso all'oggetto .
[out] TransactionNotification
Puntatore a un buffer allocato dal chiamante che riceve informazioni sulla notifica recuperata. Il buffer deve essere sufficientemente grande da contenere una struttura TRANSACTION_NOTIFICATION più argomenti aggiuntivi specifici della notifica.
[in] NotificationLength
Lunghezza, in byte, del buffer a cui punta il parametro TransactionNotification .
[in] Timeout
Puntatore a un valore che specifica un tempo relativo o assoluto, in unità di 100 nanosecondi. Questo puntatore è facoltativo e può essere NULL.
Se il puntatore è NULL, ZwGetNotificationResourceManager non restituisce finché non è disponibile una notifica di transazione. Se viene specificato un valore di ora, ZwGetNotificationResourceManager restituisce quando è disponibile una notifica o dopo la scadenza del tempo specificato, a ogni occorrenza.
Un valore negativo specifica un'ora relativa all'ora di sistema corrente. Ad esempio, un valore di tempo relativo di cinque secondi fa sì che ZwGetNotificationResourceManager timeout cinque secondi dopo la chiamata.
Un valore positivo specifica un'ora assoluta, che è effettivamente relativa alle 00:00, 1 gennaio 1601. Se viene specificato un valore di ora assoluto, il sistema operativo aggiunge il valore di ora assoluto al valore di ora che rappresenta 00:00, 1 gennaio 1601.
Se il chiamante specifica un valore zero (anziché un puntatore NULL ), ZwGetNotificationResourceManager restituisce immediatamente se una notifica è disponibile o meno.
[out, optional] ReturnLength
Puntatore facoltativo a una variabile. Se questo puntatore non è NULL e se il valore del parametro NotificationLength è troppo piccolo, ZwGetNotificationResourceManager fornisce la lunghezza richiesta nella variabile e restituisce STATUS_BUFFER_TOO_SMALL.
[in] Asynchronous
Valore ULONG che deve essere zero. ZwGetNotificationResourceManager non supporta le notifiche asincrone. Usare TmEnableCallbacks per abilitare le notifiche asincrone.
[in, optional] AsynchronousContext
Puntatore a un valore ULONG. Questo puntatore deve essere NULL.
Valore restituito
ZwGetNotificationResourceManager restituisce STATUS_SUCCESS se l'operazione ha esito positivo e se è disponibile una notifica. In caso contrario, questa routine potrebbe restituire uno dei valori seguenti:
Codice restituito | Descrizione |
---|---|
|
Intervallo di timeout specificato da Timeout prima della disponibilità di una notifica. |
|
L'handle specificato non è un handle per un oggetto resource manager. |
|
L'handle dell'oggetto non è valido. |
|
Il chiamante non dispone dell'accesso appropriato all'oggetto resource manager. |
|
Il valore del parametro NotificationLength è troppo piccolo. |
La routine potrebbe restituire altri valori NTSTATUS.
Commenti
Usare la routine ZwGetNotificationResourceManager per ottenere le notifiche in modo sincrono. Usare la routine TmEnableCallbacks per abilitare le notifiche asincrone.
La struttura TRANSACTION_NOTIFICATION ricevuta contiene la chiave di integrazione specificata dal gestore risorse quando viene chiamata ZwCreateEnlistment. È possibile usare la chiave di integrazione per identificare l'integrazione a cui si applica la notifica.
Per altre informazioni sulla routine ZwGetNotificationResourceManager, vedere Creazione di un Resource Manager.
NtGetNotificationResourceManager e ZwGetNotificationResourceManager 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, PowerIrpDDis |
Vedi anche
Uso delle versioni Nt e Zw delle routine native di Servizi di sistema