共用方式為


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 例程會在密鑰物件的句柄關閉或驅動程式呼叫 CmUnRegisterCallback 以取消註冊 RegistryCallback 例程之後收到 RegNtCallbackObjectContextCleanup 通知。 當 RegistryCallback 例程收到此通知時,例程應該釋放為對象內容配置的任何資源。

如果 CmSetCallbackObjectContextRegNtCallbackObjectContextCleanup 通知之前呼叫, 則 OldContext 仍可由接收另一個通知的 RegistryCallback 參考。 OldContext 不應該在 RegNtCallbackObjectContextCleanup 通知之前釋出。

如需 CmSetCallbackObjectContext 和篩選登錄作業的詳細資訊,請參閱 篩選登錄呼叫

規格需求

需求
最低支援的用戶端 從 Windows Vista 開始提供。
目標平台 Universal
標頭 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