Функция TmReferenceEnlistmentKey (wdm.h)
Подпрограмма TmReferenceEnlistmentKey увеличивает число ссылок для ключа указанного объекта зачисления и извлекает ключ.
Синтаксис
NTSTATUS TmReferenceEnlistmentKey(
[in] PKENLISTMENT Enlistment,
[out] PVOID *Key
);
Параметры
[in] Enlistment
Указатель на объект зачисления. Компонент может получать этот указатель в качестве входных данных для процедуры обратного вызова ResourceManagerNotification . Кроме того, компонент может вызвать ObReferenceObjectByHandle и предоставить дескриптор объекта, указанный при предыдущем вызове ZwCreateEnlistment, TmCreateEnlistment или ZwOpenEnlistment .
[out] Key
Указатель на переменную, которая получает ключ зачисления объекта зачисления. Вызывающий объект назначает ключ зачисления при вызове ZwCreateEnlistment или TmCreateEnlistment.
Возвращаемое значение
TmReferenceEnlistmentKey возвращает STATUS_SUCCESS, если операция выполнена успешно. В противном случае эта подпрограмма может возвращать одно из следующих значений:
Код возврата | Описание |
---|---|
|
Значение параметра Key равно NULL. |
|
Число ссылок указанного объекта зачисления уменьшено до нуля, поэтому количество ссылок нельзя увеличить. |
|
Число ссылок находится на максимальном значении (0xFFFFFFFF) и не может быть увеличено. |
Подпрограмма может возвращать другие значения NTSTATUS.
Комментарии
Подпрограмма TmReferenceEnlistmentKey увеличивает число ссылок для значения ключа объекта зачисления, а подпрограмма TmDereferenceEnlistmentKey уменьшает число.
Если диспетчер ресурсов определил значение ключа для зачисления, диспетчер ресурсов получает значение ключа при вызове ZwGetNotificationResourceManager или при вызове KTM процедуры обратного вызова ResourceManagerNotification .
Пока диспетчер ресурсов обрабатывает уведомление, он может использовать ключ в качестве указателя на временное выделение памяти и использовать счетчик ссылок, чтобы определить, когда следует освободить память.
Сведения о том, когда следует использовать подпрограммы KTM TmXxx вместо процедур ZwXxx , см. в разделе Использование подпрограмм TmXxx.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Vista и более поздних версиях операционной системы. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |