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類型值。
言論
從 Windows Vista 開始,CmSetCallbackObjectContext 例程可供使用。
驅動程式的 RegistryCallback 例程可以在建立或開啟對象之後,針對任何登錄機碼物件呼叫 CmSetCallbackObjectContext (也就是在建立作業的通知后通知期間、開啟作業或任何後續的通知,至句柄關閉的前置通知)。
如果驅動程式呼叫 CmSetCallbackObjectContext,驅動程式的 RegistryCallback 例程將會收到 RegNtCallbackObjectContextCle 在索引鍵物件的句柄關閉或驅動程式呼叫 CmUnRegisterCallback 以取消註冊 RegistryCallback 例程之後, 通知。 當 RegistryCallback 例程收到此通知時,例程應該釋放為對象內容配置的任何資源。
如果在 RegNtCallbackObjectContextCleanup 通知之前呼叫 CmSetCallbackObjectContextContext,OldContext 仍可透過 RegistryCallback 來參考,以接收另一個通知。 OldContext 不應該在 RegNtCallbackObjectContextCleanup 通知之前發行。
如需 CmSetCallbackObjectContext 和篩選登錄作業的詳細資訊,請參閱 篩選登錄呼叫。
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | 從 Windows Vista 開始提供。 |
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |