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
驅動程式先前透過呼叫 CmRegisterCallback 或 CmRegisterCallbackEx 例程取得的 Cookie 值。
[in] Object
驅動程式的 RegistryCallback 回呼例程在其中一個 REG_XXX_KEY_INFORMATION 結構 成員 中收到的指標值。
[out, optional] ObjectID
位置的指標,接收唯一標識符的指標,表示物件 所指定之登錄機碼。 這個參數是選擇性的,而且可以 NULL。
[out, optional] ObjectName
接收 UNICODE_STRING 結構指標之位置的指標。 這個結構包含 Object 指定之登錄機碼對象名稱。 物件名稱實際上是物件所代表之登錄機碼的完整路徑名稱。 呼叫端不得寫入這個 UNICODE_STRING 結構或釋放它。 這個參數是選擇性的,而且可以 NULL。
傳回值
如果作業成功,CmCallbackGetKeyObjectID 會傳回STATUS_SUCCESS。 可能的錯誤傳回值包括下列狀態代碼。
傳回碼 | 描述 |
---|---|
STATUS_INVALID_PARAMETER | Cookie 或 Object 參數無效。 |
言論
從 Windows Vista 開始,CmCallbackGetKeyObjectID 例程可供使用。 從 Windows 8 開始,此例程的改良版本 CmCallbackGetKeyObjectIDEx。 只有在 Windows 8 和更新版本中執行的驅動程式應該呼叫 CmCallbackGetKeyObjectIDEx,而不是 CmCallbackGetKeyObjectID。
驅動程式可以使用 CmCallbackGetKeyObjectID,藉由為 ObjectID 或 ObjectName 參數提供非NULL 值,以取得登錄機碼標識符、對象名稱或兩者。
在驅動程式取得標識碼或名稱之後,在驅動程式的 RegistryCallback 例程收到句柄關閉的預先通知之前,標識碼或名稱才有效。
驅動程式不得修改物件名稱。
如果兩個登錄機碼物件代表相同的登錄機碼,則這兩個對象的機碼標識碼都相同。
如需 CmCallbackGetKeyObjectID 和登錄篩選作業的詳細資訊,請參閱 篩選登錄呼叫。
要求
要求 | 價值 |
---|---|
目標平臺 | 普遍 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
連結庫 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |