REG_CREATE_KEY_INFORMATION_V1-Struktur (wdm.h)
Die REG_CREATE_KEY_INFORMATION_V1-Struktur enthält Informationen, die die RegistryCallback-Routine eines Filtertreibers beim Erstellen eines Registrierungsschlüssels verwenden kann.
Syntax
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;
Member
CompleteName
Ein Zeiger auf eine UNICODE_STRING-Struktur , die den Pfad des neuen Registrierungsschlüssels enthält. Der Pfad kann absolut oder relativ sein. Wenn der Pfad absolut ist, enthält diese Struktur einen vollqualifizierten Pfad, der mit dem Zeichen "\" beginnt. Für einen absoluten Pfad gibt das RootObject-Element den Schlüssel \REGISTRY an, bei dem es sich um das Stammverzeichnis der Registrierungsstruktur handelt. Wenn der Pfad relativ ist, beginnt der Pfad mit einem anderen Zeichen als "\" und ist relativ zum Schlüssel, der vom RootObject-Element angegeben wird.
RootObject
Ein Zeiger auf ein Registrierungsschlüsselobjekt, das den Stammregistrierungsschlüssel für den Pfad darstellt, der vom CompleteName-Element angegeben wird.
ObjectType
Dieses Element ist für die Verwendung durch das Betriebssystem reserviert. Treiber dürfen nicht auf diesen Member zugreifen.
Options
Gibt die Optionen für die Schlüsselerstellungsroutine an, die zum Erstellen oder Öffnen des neuen Schlüssels verwendet werden soll. Weitere Informationen finden Sie in der Beschreibung des CreateOptions-Parameters der ZwCreateKey-Routine und der Beschreibung des OpenOptions-Parameters der ZwOpenKeyEx-Routine .
Class
Ein Zeiger auf eine UNICODE_STRING Struktur, die die Objektklasse des neuen Schlüssels identifiziert. Weitere Informationen zu diesem Member finden Sie im Class-Parameter der ZwCreateKey-Routine . Dieser Zeigerwert kann NULL sein.
SecurityDescriptor
Ein Zeiger auf eine SECURITY_DESCRIPTOR-Struktur , die Sicherheitsinformationen für das Schlüsselobjekt enthält. Dieser Zeiger wurde vom SecurityDescriptor-Member der OBJECT_ATTRIBUTES-Struktur abgerufen, das beim Aufruf zum Erstellen des neuen Registrierungsschlüssels als Eingabeparameter übergeben wurde.
SecurityQualityOfService
Ein Zeiger auf eine SECURITY_QUALITY_OF_SERVICE-Struktur . Diese Struktur gibt an, ob ein Server die Identität des Clients annehmen kann, der versucht, den Registrierungsschlüssel zu erstellen, und, wenn der Identitätswechsel zulässig ist, den Umfang, in dem er zulässig ist.
DesiredAccess
Die Zugriffsmaske, die vom Thread angegeben wurde, der versucht, den Registrierungsschlüssel zu erstellen. Weitere Informationen zu dieser Zugriffsmaske finden Sie in der Beschreibung des DesiredAccess-Parameters der ZwCreateKey-Routine .
GrantedAccess
Eine Zugriffsmaske, die die Zugriffsrechte angibt, die dem Thread gewährt wurden, der versucht, den Registrierungsschlüssel zu erstellen. Weitere Informationen zu diesem Member finden Sie im folgenden Abschnitt Hinweise.
Disposition
Ein Wert, der angibt, ob der angeforderte Registrierungsvorgang einen neuen Schlüssel erstellt oder einen vorhandenen Schlüssel öffnet. Weitere Informationen zu diesem Member finden Sie in der Beschreibung des Disposition-Parameters der ZwCreateKey-Routine und im folgenden Abschnitt Hinweise.
ResultObject
Ein Zeiger auf einen Speicherort, der die Adresse des Schlüsselobjekts empfängt, das den erstellten Registrierungsschlüssel darstellt.
CallContext
Optionale vom Treiber definierte Kontextinformationen, die die RegistryCallback-Routine des Treibers bereitstellen kann.
RootObjectContext
Ein Zeiger auf vom Treiber definierte Kontextinformationen, die der Treiber dem Stamm des Pfads des Registrierungsobjekts zugeordnet hat, indem die CmSetCallbackObjectContext-Routine aufgerufen wird.
Transaction
Ein Zeiger auf ein Transaktionsobjekt für den Registrierungsvorgang. Sie können diesen Zeiger auf die ObOpenObjectByPointer-Routine bereitstellen, um das entsprechende Transaktionshandle abzurufen. Wenn dieser Member NULL ist, wird der Vorgang im Nichttransaktionskontext ausgeführt.
Version
Die Versionsnummer der Struktur. Dieses Element unterscheidet die REG_CREATE_KEY_INFORMATION-Struktur in Windows Vista von der REG_CREATE_KEY_INFORMATION_V1-Struktur in Windows 7 und höheren Versionen von Windows. Die folgenden Versionsnummern sind derzeit definiert.
Versionsnummer | Version der Struktur |
---|---|
0 | REG_CREATE_KEY_INFORMATION |
1 | REG_CREATE_KEY_INFORMATION_V1 |
In zukünftigen Versionen dieser Struktur werden möglicherweise neue Member hinzugefügt, aber die Member, die bereits in vorhandenen Versionen der Struktur definiert sind, nicht geändert. Dieser Member ist in der REG_CREATE_KEY_INFORMATION_V1-Struktur definiert, die in Windows 7 und höheren Versionen der Windows-Betriebssysteme unterstützt wird. In der REG_CREATE_KEY_INFORMATION Struktur, die Windows Vista unterstützt, wird dieser Member Reserviert genannt und auf Null festgelegt. Filtertreiber sollten sich auf die Versionsnummer und nicht auf die Betriebssystemversion verlassen, um zu bestimmen, welche Version der Struktur sie verwenden.
RemainingName
Ein Zeiger auf eine UNICODE_STRING-Struktur , die den relativen Pfad des neuen Registrierungsschlüssels enthält. Dieses Element gibt immer den Pfad des neuen Schlüssels relativ zum Pfad des Schlüssels aus, der vom RootObject-Element angegeben wird. Im Gegensatz dazu kann das CompleteName-Element einen absoluten Pfad enthalten, wenn das RootObject-Element den Schlüssel \REGISTRY angibt.
Wow64Flags
Enthält die Wow64-Flags aus der Zugriffsmaske, die als Eingabeparameter im Aufruf zum Erstellen des neuen Registrierungsschlüssels übergeben wurde. Dieses Element gibt an, ob ein 32-Bit-Clientprogramm, das unter einer 64-Bit-Version von Windows ausgeführt wird, versucht, einen Registrierungsschlüssel zu erstellen. Dieses Element ist auf null oder auf eines der folgenden Flagbits festgelegt:
- KEY_WOW64_32KEY
- KEY_WOW64_64KEY
Attributes
Enthält die Objektattributflags aus dem Attribute-Member der OBJECT_ATTRIBUTES-Struktur , die beim Aufruf zum Erstellen des neuen Registrierungsschlüssels als Eingabeparameter übergeben wurde. Dieses Element kann mindestens eins der folgenden Flagbits enthalten:
- OBJ_KERNEL_HANDLE
- OBJ_FORCE_ACCESS_CHECK
- OBJ_OPENLINK
CheckAccessMode
Gibt an, wie der Konfigurations-Manager die Sicherheitszugriffsprüfung für den Aufruf zum Erstellen des neuen Schlüssels durchführt. Dieses Element enthält einen der folgenden MODE-Enumerationswerte aus der Wdm.h-Headerdatei:
- KernelMode
- Usermode
Hinweise
Der Konfigurations-Manager übergibt diese Struktur jedes Mal an die RegistryCallback-Routine , wenn ein Thread versucht, einen Schlüssel zu erstellen, z. B. wenn ein Benutzermodusthread RegCreateKey oder RegCreateKeyEx aufruft oder wenn ein Kernelmodustreiber ZwCreateKey aufruft.
Diese Struktur ist eine erweiterte Version der REG_CREATE_KEY_INFORMATION-Struktur , die Von Windows Vista unterstützt wird. Die ersten 14 Member, CompleteName bis Transaction, sind in den beiden Strukturen identisch. Die letzten fünf Elemente der REG_CREATE_KEY_INFORMATION_V1-StrukturVersion über CheckAccessMode sind nicht Teil der REG_CREATE_KEY_INFORMATION-Struktur .
Wenn die RegistryCallback-Routine des Treibers STATUS_CALLBACK_BYPASS für eine RegNtPreCreateKeyEx-Benachrichtigung zurückgibt, muss der Treiber die Werte für die Member GrantedAccess, Disposition und ResultObject angeben.
Die REG_CREATE_KEY_INFORMATION_V1-Struktur ist eine von mehreren Strukturen, die ein Filtertreiber über seine RegistryCallback-Routine empfangen kann. Weitere Informationen zu Registrierungsfiltervorgängen finden Sie unter Filtern von Registrierungsaufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Verfügbar unter Windows 7 und höheren Versionen der Windows-Betriebssysteme. |
Header | wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |