Функция NtGetNotificationResourceManager (wdm.h)
Подпрограмма ZwGetNotificationResourceManager извлекает следующее уведомление транзакций из очереди уведомлений указанного диспетчера ресурсов.
Синтаксис
__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
);
Параметры
[in] ResourceManagerHandle
Дескриптор объекта resource manager, полученного предыдущим вызовом ZwCreateResourceManager или ZwOpenResourceManager. Дескриптор должен иметь RESOURCEMANAGER_GET_NOTIFICATION доступ к объекту.
[out] TransactionNotification
Указатель на выделенный вызывающим буфером, который получает сведения о полученном уведомлении. Буфер должен быть достаточно большим, чтобы содержать TRANSACTION_NOTIFICATION структуру, а также дополнительные аргументы, относящиеся к уведомлениям.
[in] NotificationLength
Длина буфера в байтах, на который указывает параметр TransactionNotification.
[in] Timeout
Указатель на значение, указывающее относительное или абсолютное время в единицах 100 наносекунд. Этот указатель необязателен и может быть null.
Если указатель NULL, ZwGetNotificationResourceManager не возвращается, пока не будет доступно уведомление о транзакциях. Если задано значение времени, ZwGetNotificationResourceManager возвращается, когда уведомление доступно или после истечения указанного времени, в зависимости от того, что происходит в первый раз.
Отрицательное значение указывает время, относительно текущего системного времени. Например, относительное значение времени в пять секунд приводит к тому, что ZwGetNotificationResourceManager истекает пять секунд после вызова.
Положительное значение указывает абсолютное время, которое на самом деле относительно 00:00, 1 января 1601 года. Если задано абсолютное значение времени, операционная система добавляет абсолютное значение времени к значению времени, представляющего 00:00, 1 января 1601 года.
Если вызывающий объект задает нулевое значение (вместо указателя null NULL), ZwGetNotificationResourceManager возвращается немедленно, доступно ли уведомление.
[out, optional] ReturnLength
Необязательный указатель на переменную. Если этот указатель не значение NULL, а если значение параметра NotificationLength слишком мало, ZwGetNotificationResourceManager предоставляет необходимую длину в переменной и возвращает STATUS_BUFFER_TOO_SMALL.
[in] Asynchronous
Значение ULONG, которое должно быть равно нулю. ZwGetNotificationResourceManager не поддерживает асинхронные уведомления. Используйте TmEnableCallbacks для включения асинхронных уведомлений.
[in, optional] AsynchronousContext
Указатель на значение ULONG. Этот указатель должен быть NULL.
Возвращаемое значение
ZwGetNotificationResourceManager возвращает STATUS_SUCCESS, если операция завершается успешно, а уведомление доступно. В противном случае эта подпрограмма может вернуть одно из следующих значений:
Возвращаемый код | Описание |
---|---|
|
Интервал времени ожидания, время ожидания указывает истекшее время, прежде чем уведомление стало доступным. |
|
Указанный дескриптор не является дескриптором объекта resource manager. |
|
Дескриптор объекта недопустим. |
|
Вызывающий объект не имеет соответствующего доступа к объекту resource manager. |
|
Значение параметра NotificationLength слишком мало. |
Подпрограмма может возвращать другие значения NTSTATUS .
Замечания
Используйте подпрограмму ZwGetNotificationResourceManager для синхронного получения уведомлений. Используйте подпрограмму TmEnableCallbacks, чтобы включить асинхронные уведомления.
Полученная структура TRANSACTION_NOTIFICATION содержит ключ перечисления, указанный диспетчером ресурсов при вызове ZwCreateEnlistment. Ключ перечисления можно использовать для идентификации зачисления, к которому применяется уведомление.
Дополнительные сведения о подпрограмме ZwGetNotificationResourceManager см. в созданииResource Manager.
NtGetNotificationResourceManager и ZwGetNotificationResourceManager являются двумя версиями одной подпрограммы системных служб Windows Native.
Для вызовов драйверов в режиме ядра NtXxx и ZwXxx версии подпрограммы Windows Native System Services могут вести себя по-разному в том, как они обрабатывают и интерпретируют входные параметры. Дополнительные сведения о связи между NtXxx и ZwXxx версиями подпрограммы см. в разделе Using Nt and Zw Versions of the Native System Services Routines.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно в Windows Vista и более поздних версиях операционной системы. |
целевая платформа | Всеобщий |
заголовка | wdm.h (include Wdm.h, Ntifs.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | = PASSIVE_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDDIs, PowerIrpDDis |
См. также
использование версий собственных системных служб и Zw