共用方式為


CmCallbackGetKeyObjectID 函式 (wdm.h)

CmCallbackGetKeyObjectID 例程會擷取與指定登錄機碼對象相關聯的唯一標識符和對象名稱。

從 Windows 8 開始,登錄篩選驅動程式應該呼叫 CmCallbackGetKeyObjectIDEx 例程,而不是 CmCallbackGetKeyObjectID。 如需詳細資訊,請參閱下方的<<備註> 一節。

語法

NTSTATUS CmCallbackGetKeyObjectID(
  [in]            PLARGE_INTEGER   Cookie,
  [in]            PVOID            Object,
  [out, optional] PULONG_PTR       ObjectID,
  [out, optional] PCUNICODE_STRING *ObjectName
);

參數

[in] Cookie

驅動程式先前透過呼叫 CmRegisterCallbackCmRegisterCallbackEx 例程取得的 Cookie 值。

[in] Object

驅動程式的 RegistryCallback 回呼例程在其中一個 REG_XXX_KEY_INFORMATION 結構 成員 中收到的指標值。

警告

在某些情況下,登錄回呼通知結構可能包含無效的非 NULL 物件指標。 登錄篩選驅動程式不得將這類指標傳遞至此例程。 如需詳細資訊,請參閱登錄通知中的無效索引鍵物件指標

[out, optional] ObjectID

位置的指標,接收唯一標識符的指標,表示物件 所指定之登錄機碼。 這個參數是選擇性的,而且可以 NULL

[out, optional] ObjectName

接收 UNICODE_STRING 結構指標之位置的指標。 這個結構包含 Object 指定之登錄機碼對象名稱。 物件名稱實際上是物件所代表之登錄機碼的完整路徑名稱。 呼叫端不得寫入這個 UNICODE_STRING 結構或釋放它。 這個參數是選擇性的,而且可以 NULL

傳回值

如果作業成功,CmCallbackGetKeyObjectID 會傳回STATUS_SUCCESS。 可能的錯誤傳回值包括下列狀態代碼。

傳回碼 描述
STATUS_INVALID_PARAMETER CookieObject 參數無效。

言論

從 Windows Vista 開始,CmCallbackGetKeyObjectID 例程可供使用。 從 Windows 8 開始,此例程的改良版本 CmCallbackGetKeyObjectIDEx。 只有在 Windows 8 和更新版本中執行的驅動程式應該呼叫 CmCallbackGetKeyObjectIDEx,而不是 CmCallbackGetKeyObjectID

驅動程式可以使用 CmCallbackGetKeyObjectID,藉由為 ObjectIDObjectName 參數提供非NULL 值,以取得登錄機碼標識符、對象名稱或兩者。

在驅動程式取得標識碼或名稱之後,在驅動程式的 RegistryCallback 例程收到句柄關閉的預先通知之前,標識碼或名稱才有效。

驅動程式不得修改物件名稱。

如果兩個登錄機碼物件代表相同的登錄機碼,則這兩個對象的機碼標識碼都相同。

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

要求

要求 價值
目標平臺 普遍
標頭 wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h)
連結庫 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

另請參閱

CmCallbackGetKeyObjectIDEx

CmRegisterCallback

CmRegisterCallbackEx

RegistryCallback

UNICODE_STRING