Функция 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 одной из следующих структур:

[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

См. также раздел

CmRegisterCallbackEx

CmUnRegisterCallback

REG_CREATE_KEY_INFORMATION

REG_CREATE_KEY_INFORMATION_V1

RegistryCallback