REG_CREATE_KEY_INFORMATION_V1 Struktur (wdm.h)
Die REG_CREATE_KEY_INFORMATION_V1 Struktur enthält Informationen, die ein Filtertreiber RegistryCallback Routine verwenden kann, wenn ein Registrierungsschlüssel erstellt wird.
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;
Angehörige
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 Member den \REGISTRY Schlüssel an, der das Stammverzeichnis der Registrierungsstruktur ist. Wenn der Pfad relativ ist, beginnt der Pfad mit einem anderen Zeichen als "\" und ist relativ zum Schlüssel, der vom RootObject-Element-Element angegeben wird.
RootObject
Ein Zeiger auf ein Registrierungsschlüsselobjekt, das den Stammregistrierungsschlüssel für den Pfad darstellt, der vom Member CompleteName angegeben wird.
ObjectType
Dieses Mitglied ist für die Verwendung durch das Betriebssystem reserviert. Treiber dürfen nicht auf dieses Mitglied 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 die 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-werden.
SecurityDescriptor
Ein Zeiger auf eine SECURITY_DESCRIPTOR Struktur, die Sicherheitsinformationen für das Schlüsselobjekt enthält. Dieser Zeiger wurde vom SecurityDescriptor Mitglied der OBJECT_ATTRIBUTES Struktur abgerufen, die als Eingabeparameter im Aufruf übergeben wurde, um den neuen Registrierungsschlüssel zu erstellen.
SecurityQualityOfService
Ein Zeiger auf eine SECURITY_QUALITY_OF_SERVICE Struktur. Diese Struktur gibt an, ob ein Server den Client imitieren kann, der versucht, den Registrierungsschlüssel zu erstellen, und, falls der Identitätswechsel zulässig ist, in dem 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 Mitglied 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 Element finden Sie in der Beschreibung des Parameters Disposition des 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 treiberdefinierte Kontextinformationen, die die RegistryCallback Routine des Treibers bereitstellen können.
RootObjectContext
Ein Zeiger auf treiberdefinierte 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 dieses Element NULL-ist, wird der Vorgang im kontextfremden Kontext ausgeführt.
Version
Die Strukturversionsnummer. 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 | Strukturversion |
---|---|
0 | REG_CREATE_KEY_INFORMATION |
1 | REG_CREATE_KEY_INFORMATION_V1 |
Zukünftige Versionen dieser Struktur können neue Member hinzufügen, aber die Elemente, die bereits in vorhandenen Versionen der Struktur definiert sind, nicht ändern. Dieses Element wird in der REG_CREATE_KEY_INFORMATION_V1 Struktur definiert, die in Windows 7 und höheren Versionen von Windows-Betriebssystemen unterstützt wird. In der REG_CREATE_KEY_INFORMATION Struktur, die Windows Vista unterstützt, wird dieses Element Reservierten benannt und auf Null festgelegt. Filtertreiber sollten sich auf die Versionsnummer und nicht auf die Betriebssystemversion verlassen, um zu bestimmen, welche Version der verwendeten Struktur verwendet wird.
RemainingName
Ein Zeiger auf eine UNICODE_STRING Struktur, die den relativen Pfad des neuen Registrierungsschlüssels enthält. Dieses Element drückt immer den Pfad des neuen Schlüssels relativ zum Pfad des Schlüssels aus, der durch das RootObject Member angegeben wird. Im Gegensatz dazu kann das CompleteName Member einen absoluten Pfad enthalten, wenn das RootObject Member den \REGISTRY Schlüssel angibt.
Wow64Flags
Enthält die Wow64-Flags aus der Zugriffsmaske, die als Eingabeparameter im Aufruf übergeben wurde, um den neuen Registrierungsschlüssel zu erstellen. Dieses Mitglied gibt an, ob ein 32-Bit-Clientprogramm, das auf 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 Objektattribut-Flags aus dem Attributes Member der OBJECT_ATTRIBUTES Struktur, die als Eingabeparameter im Aufruf übergeben wurde, um den neuen Registrierungsschlüssel zu erstellen. 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 Anruf durchführt, um den neuen Schlüssel zu erstellen. Dieses Element enthält einen der folgenden MODE-Enumerationswerte aus der Wdm.h-Headerdatei:
- KernelMode-
- UserMode-
Bemerkungen
Der Konfigurations-Manager übergibt diese Struktur an die RegistryCallback Routine jedes Mal, wenn ein Thread versucht, einen Schlüssel zu erstellen, z. B. wenn ein Benutzermodusthread RegCreateKey oder RegCreateKeyExaufruft oder wenn ein Kernelmodustreiber ZwateKeyaufruft.
Diese Struktur ist eine erweiterte Version der REG_CREATE_KEY_INFORMATION Struktur, die Windows Vista unterstützt. Die ersten 14 Member, CompleteName über Transaction, sind in den beiden Strukturen identisch. Die letzten fünf Elemente der REG_CREATE_KEY_INFORMATION_V1-Struktur, Version bis 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 GrantedAccess-, Dispositions-und ResultObject Member angeben.
Die REG_CREATE_KEY_INFORMATION_V1 Struktur ist eine von einer Reihe von Strukturen, die ein Filtertreiber über seine RegistryCallback- Routine empfangen kann. Weitere Informationen zu Registrierungsfiltervorgängen finden Sie unter Filtern von Registrierungsaufrufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Verfügbar unter Windows 7 und höheren Versionen der Windows-Betriebssysteme. |
Header- | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |