ZwGetNotificationResourceManager-Funktion (wdm.h)
Die ZwGetNotificationResourceManager-Routine ruft die nächste Transaktionsbenachrichtigung aus der Benachrichtigungswarteschlange eines angegebenen Ressourcen-Managers ab.
Syntax
NTSYSCALLAPI NTSTATUS ZwGetNotificationResourceManager(
[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
);
Parameter
[in] ResourceManagerHandle
Ein Handle für ein Resource Manager-Objekt , das durch einen vorherigen Aufruf von ZwCreateResourceManager oder ZwOpenResourceManager abgerufen wurde. Das Handle muss RESOURCEMANAGER_GET_NOTIFICATION Zugriff auf das Objekt haben.
[out] TransactionNotification
Ein Zeiger auf einen vom Aufrufer zugewiesenen Puffer, der Informationen über die abgerufene Benachrichtigung empfängt. Der Puffer muss groß genug sein, um eine TRANSACTION_NOTIFICATION-Struktur sowie zusätzliche benachrichtigungsspezifische Argumente zu enthalten.
[in] NotificationLength
Die Länge des Puffers in Bytes, auf den der TransactionNotification-Parameter verweist.
[in] Timeout
Ein Zeiger auf einen Wert, der eine relative oder absolute Zeit in Einheiten von 100 Nanosekunden angibt. Dieser Zeiger ist optional und kann NULL sein.
Wenn der Zeiger NULL ist, wird ZwGetNotificationResourceManager erst zurückgegeben, wenn eine Transaktionsbenachrichtigung verfügbar ist. Wenn ein Zeitwert angegeben wird, gibt ZwGetNotificationResourceManager zurück, wenn eine Benachrichtigung verfügbar ist oder die angegebene Zeit verstrichen ist, je nachdem, was zuerst eintritt.
Ein negativer Wert gibt eine Zeit an, die relativ zur aktuellen Systemzeit ist. Ein relativer Zeitwert von fünf Sekunden verursacht beispielsweise ein Timeout von ZwGetNotificationResourceManager fünf Sekunden nach dem Aufruf.
Ein positiver Wert gibt eine absolute Zeit an, die tatsächlich relativ zu 00:00, 1. Januar 1601 ist. Wenn ein absoluter Zeitwert angegeben wird, fügt das Betriebssystem den absoluten Zeitwert dem Zeitwert hinzu, der 00:00, 1. Januar 1601 darstellt.
Wenn der Aufrufer einen Nullwert angibt (anstelle eines NULL-Zeigers ), gibt ZwGetNotificationResourceManager sofort zurück, unabhängig davon, ob eine Benachrichtigung verfügbar ist.
[out, optional] ReturnLength
Ein optionaler Zeiger auf eine Variable. Wenn dieser Zeiger nicht NULL ist und der Wert des NotificationLength-Parameters zu klein ist, liefert ZwGetNotificationResourceManager die erforderliche Länge in der Variablen und gibt STATUS_BUFFER_TOO_SMALL zurück.
[in] Asynchronous
Ein ULONG-Wert, der null sein muss. ZwGetNotificationResourceManager unterstützt keine asynchronen Benachrichtigungen. Verwenden Sie TmEnableCallbacks , um asynchrone Benachrichtigungen zu aktivieren.
[in, optional] AsynchronousContext
Ein Zeiger auf einen ULONG-Wert. Dieser Zeiger muss NULL sein.
Rückgabewert
ZwGetNotificationResourceManager gibt STATUS_SUCCESS zurück, wenn der Vorgang erfolgreich ist und eine Benachrichtigung verfügbar ist. Andernfalls gibt diese Routine möglicherweise einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Das Timeoutintervall, das timeout angibt, verstrichen, bevor eine Benachrichtigung verfügbar wurde. |
|
Das angegebene Handle ist kein Handle für ein Resource Manager-Objekt. |
|
Das Objekthandle ist ungültig. |
|
Der Aufrufer hat keinen geeigneten Zugriff auf das Resource Manager-Objekt. |
|
Der Wert des NotificationLength-Parameters ist zu klein. |
Die Routine gibt möglicherweise andere NTSTATUS-Werte zurück.
Hinweise
Verwenden Sie die ZwGetNotificationResourceManager-Routine , um Benachrichtigungen synchron abzurufen. Verwenden Sie die TmEnableCallbacks-Routine , um asynchrone Benachrichtigungen zu aktivieren.
Die empfangene TRANSACTION_NOTIFICATION-Struktur enthält den Eintragsschlüssel, den der Ressourcen-Manager beim Aufrufen von ZwCreateEnlistment angegeben hat. Sie können den Eintragsschlüssel verwenden, um die Eintragsliste zu identifizieren, für die die Benachrichtigung gilt.
Weitere Informationen zur ZwGetNotificationResourceManager-Routine finden Sie unter Erstellen eines Resource Manager.
NtGetNotificationResourceManager und ZwGetNotificationResourceManager sind zwei Versionen derselben Windows Native System Services-Routine.
Bei Aufrufen von Kernelmodustreibern können sich die NtXxx - und ZwXxx-Versionen einer Windows Native System Services-Routine anders verhalten, wie sie Eingabeparameter verarbeiten und interpretieren. Weitere Informationen zur Beziehung zwischen den Nt Xxx- und ZwXxx-Versionen einer Routine finden Sie unter Verwenden von Nt- und Zw-Versionen der systemeigenen Systemdienstroutinen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar in Windows Vista und höheren Betriebssystemversionen. |
Zielplattform | Universell |
Header | wdm.h (include Wdm.h, Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | = PASSIVE_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm) |