REG_CREATE_KEY_INFORMATION_V1結構 (wdm.h)
REG_CREATE_KEY_INFORMATION_V1 結構包含篩選驅動程式的 RegistryCallback 例程在建立登錄機碼時可以使用的資訊。
語法
typedef struct _REG_CREATE_KEY_INFORMATION_V1 {
PUNICODE_STRING CompleteName;
PVOID RootObject;
PVOID ObjectType;
ULONG Options;
PUNICODE_STRING Class;
PVOID SecurityDescriptor;
PVOID SecurityQualityOfService;
ACCESS_MASK DesiredAccess;
ACCESS_MASK GrantedAccess;
PULONG Disposition;
PVOID *ResultObject;
PVOID CallContext;
PVOID RootObjectContext;
PVOID Transaction;
ULONG_PTR Version;
PUNICODE_STRING RemainingName;
ULONG Wow64Flags;
ULONG Attributes;
KPROCESSOR_MODE CheckAccessMode;
} REG_CREATE_KEY_INFORMATION_V1, REG_OPEN_KEY_INFORMATION_V1, *PREG_CREATE_KEY_INFORMATION_V1, *PREG_OPEN_KEY_INFORMATION_V1;
成員
CompleteName
包含新登錄機碼路徑 之UNICODE_STRING 結構的指標。 這個路徑可為絕對路徑或相對路徑。 如果路徑是絕對的,這個結構會包含以 “\” 字元開頭的完整路徑。 如果是絕對路徑, RootObject 成員會指定 \REGISTRY 機碼,這是登錄樹狀目錄的根目錄。 如果路徑是相對的,路徑會以 “\” 以外的字元開頭,且相對於 RootObject 成員所指定的索引鍵。
RootObject
登錄機碼物件的指標,代表 CompleteName 成員所指定之路徑的根登錄機碼。
ObjectType
此成員會保留供作業系統使用。 驅動程式不得存取此成員。
Options
指定要用來建立或開啟新金鑰之金鑰建立例程的選項。 如需詳細資訊,請參閱 ZwCreateKey 例程的 CreateOptions 參數描述,以及 ZwOpenKeyEx 例程之 OpenOptions 參數的描述。
Class
識別新索引鍵物件類別 之UNICODE_STRING 結構的指標。 如需此成員的詳細資訊,請參閱 ZwCreateKey 例程的 Class 參數。 此指標值可以是 NULL。
SecurityDescriptor
包含金鑰物件安全性資訊的 SECURITY_DESCRIPTOR 結構的指標。 此指標是從呼叫中當做輸入參數傳遞的 OBJECT_ATTRIBUTES 結構的 SecurityDescriptor 成員取得,以建立新的登錄機碼。
SecurityQualityOfService
SECURITY_QUALITY_OF_SERVICE 結構的指標。 此結構指出伺服器是否可以模擬嘗試建立登錄機碼的用戶端,如果允許模擬,則允許它的範圍。
DesiredAccess
嘗試建立登錄機碼之線程所指定的存取掩碼。 如需此存取遮罩的詳細資訊,請參閱 ZwCreateKey 例程的 DesiredAccess 參數描述。
GrantedAccess
存取掩碼,表示已授與嘗試建立登錄機碼之線程的訪問許可權。 如需此成員的詳細資訊,請參閱下列一節。
Disposition
值,指出要求的登錄作業是否會建立新的機碼,或開啟現有的機碼。 如需此成員的詳細資訊,請參閱 ZwCreateKey 例程的 Disposition 參數描述,以及下列一節。
ResultObject
位置的指標,接收代表所建立登錄機碼之機碼對象的位址。
CallContext
驅動程式的 RegistryCallback 例程可以提供的選擇性驅動程式定義內容資訊。
RootObjectContext
驅動程式定義內容資訊的指標,驅動程式藉由呼叫 CmSetCallbackObjectContext 例程,與登錄物件路徑的根目錄相關聯。
Transaction
登錄作業之交易物件的指標。 您可以提供這個指標給 ObOpenObjectByPointer 例程,以取得對應的交易句柄。 如果這個成員是 NULL,則會在非交易內容中執行作業。
Version
結構版本號碼。 這個成員會區分 Windows Vista 中的 REG_CREATE_KEY_INFORMATION 結構,與 Windows 7 和更新版本中 的 REG_CREATE_KEY_INFORMATION_V1 結構。 目前已定義下列版本號碼。
版本號碼 | 結構的版本 |
---|---|
0 | REG_CREATE_KEY_INFORMATION |
1 | REG_CREATE_KEY_INFORMATION_V1 |
此結構的未來版本可能會新增成員,但不會變更已在現有結構版本中定義的成員。 這個成員定義於 Windows 7 和更新版本的 Windows 作業系統所支援的 REG_CREATE_KEY_INFORMATION_V1 結構中。 在 Windows Vista 支援的 REG_CREATE_KEY_INFORMATION 結構中,此成員的名稱為 [保留 ],且設定為零。 篩選驅動程式應該依賴版本號碼,而不是操作系統版本,以判斷其所使用的結構版本。
RemainingName
包含新登錄機碼相對路徑 之UNICODE_STRING 結構的指標。 這個成員一律會表示新索引鍵的路徑,相對於 RootObject 成員所指定的索引鍵路徑。 相反地,如果 RootObject 成員指定 \REGISTRY 機碼,CompleteName 成員可以包含絕對路徑。
Wow64Flags
包含從存取掩碼傳遞為輸入參數的 Wow64 旗標,以在呼叫中建立新的登錄機碼。 這個成員指出在64位版本的Windows上執行的32位用戶端程式是否嘗試建立登錄機碼。 此成員設定為零或設定為下列其中一個旗標位:
- KEY_WOW64_32KEY
- KEY_WOW64_64KEY
Attributes
包含呼叫中傳遞為輸入參數之 OBJECT_ATTRIBUTES 結構之 Attributes 成員的物件屬性旗標,以建立新的登錄機碼。 此成員可能包含下列一或多個旗標位:
- OBJ_KERNEL_HANDLE
- OBJ_FORCE_ACCESS_CHECK
- OBJ_OPENLINK
CheckAccessMode
指出組態管理員如何執行安全性存取檢查,以進行呼叫以建立新的密鑰。 此成員包含 Wdm.h 頭檔中的下列其中一個 MODE 列舉值:
- KernelMode
- UserMode
備註
組態管理員會在每次線程嘗試建立機碼時,將此結構傳遞至 RegistryCallback 例程,例如,當使用者模式線程呼叫 RegCreateKey 或 RegCreateKeyEx,或內核模式驅動程式呼叫 ZwCreateKey 時。
此結構是 Windows Vista 支援的 REG_CREATE_KEY_INFORMATION 結構的擴充版本。 前14個成員 CompleteName 到 Transaction 在兩個結構中完全相同。 REG_CREATE_KEY_INFORMATION_V1 結構的最後 五個成員: Version 到 CheckAccessMode,不是 REG_CREATE_KEY_INFORMATION 結構的一部分。
如果驅動程式的 RegistryCallback 例程傳回 RegNtPreCreateKeyEx 通知的STATUS_CALLBACK_BYPASS,驅動程式必須提供 GrantedAccess、 Disposition 和 ResultObject 成員的值。
REG_CREATE_KEY_INFORMATION_V1 結構是篩選驅動程式可透過其 RegistryCallback 例程接收的其中一個結構。 如需登錄篩選作業的詳細資訊,請參閱 篩選登錄呼叫。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows 7 和更新版本的 Windows 作業系統。 |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |