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 例程會在密鑰物件的句柄關閉或驅動程式呼叫 CmUnRegisterCallback 以取消註冊 RegistryCallback 例程之後收到 RegNtCallbackObjectContextCleanup 通知。 當 RegistryCallback 例程收到此通知時,例程應該釋放為對象內容配置的任何資源。
如果 CmSetCallbackObjectContext 在 RegNtCallbackObjectContextCleanup 通知之前呼叫, 則 OldContext 仍可由接收另一個通知的 RegistryCallback 參考。 OldContext 不應該在 RegNtCallbackObjectContextCleanup 通知之前釋出。
如需 CmSetCallbackObjectContext 和篩選登錄作業的詳細資訊,請參閱 篩選登錄呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 從 Windows Vista 開始提供。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | <= APC_LEVEL |