Функция CmSetCallbackObjectContext (wdm.h)
Подпрограмма CmSetCallbackObjectContext связывает новые сведения контекста с указанным объектом реестра и подпрограммой обратного вызова.
Синтаксис
NTSTATUS CmSetCallbackObjectContext(
[in, out] PVOID Object,
[in] PLARGE_INTEGER Cookie,
[in] PVOID NewContext,
[out, optional] PVOID *OldContext
);
Параметры
[in, out] Object
Указатель на объект раздела реестра, для который драйвер предоставляет сведения о контексте. Драйвер получает этот указатель из элемента ResultObject одной из следующих структур:
REG_OPEN_KEY_INFORMATION
REG_OPEN_KEY_INFORMATION_V1
[in] Cookie
Указатель на значение LARGE_INTEGER, определяющее подпрограмму обратного вызова, с которым необходимо связать контекст. Подпрограмма CmRegisterCallbackEx предоставила это значение при регистрации процедуры обратного вызова.
[in] NewContext
Указатель на сведения о контексте, определяемые драйвером.
[out, optional] OldContext
Указатель на расположение, которое получает указатель на контекстные сведения, ранее связанные драйвером с указанным объектом и файлом cookie. Этот параметр является необязательным и может иметь значение NULL.
Возвращаемое значение
CmSetCallbackObjectContext возвращает STATUS_SUCCESS или другое соответствующее значение типа NTSTATUS.
Комментарии
Подпрограмма CmSetCallbackObjectContext доступна начиная с Windows Vista.
Подпрограмма RegistryCallback драйвера может вызывать CmSetCallbackObjectContext для любого объекта раздела реестра после создания или открытия объекта (т. е. во время последующего уведомления об операции создания, операции открытия или любого последующего уведомления до предварительного уведомления о закрытии дескриптора).
Если драйвер вызывает CmSetCallbackObjectContext, подпрограмма RegistryCallback драйвера получит уведомление RegNtCallbackObjectContextCleanup после закрытия дескриптора объекта ключа или после вызова драйвером CmUnRegisterCallback для отмены регистрации подпрограммы RegistryCallback . Когда подпрограмма RegistryCallback получает это уведомление, она должна освободить все ресурсы, выделенные для контекста объекта.
Если перед уведомлением RegNtCallbackObjectContext вызывается CmSetCallbackObjectContextCleanup, RegistryCallback может ссылаться на OldContext, который получает другое уведомление. OldContext не следует выпускать до уведомления RegNtCallbackObjectContextCleanup .
Дополнительные сведения об операциях cmSetCallbackObjectContext и фильтрации реестра см. в разделе Фильтрация вызовов реестра.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно начиная с Windows Vista. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |