Freigeben über


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
Diese Flagbits werden in den Headerdateien "Wdm.h" und "Winnt.h" definiert. Weitere Informationen zu diesen Kennzeichen finden Sie unter Registry Key Security and Access Rights.

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
Weitere Informationen zu diesen Flags finden Sie unter OBJECT_ATTRIBUTES.

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-
Diese Sicherheitsüberprüfung ähnelt der von der SeAccessCheck Routine ausgeführten Überprüfung, die über einen AccessMode--Parameter verfügt, der entweder auf UserMode- oder KernelMode-festgelegt werden kann. Wenn CheckAccessMode- auf UserMode-festgelegt ist, führt der Konfigurations-Manager eine vollständige Sicherheitszugriffsprüfung aus, unabhängig davon, ob der Aufruf aus dem Benutzermodus oder kernelmodus stammt. Weitere Informationen zum Erzwingen von Sicherheitsüberprüfungen im Benutzermodus für einen Aufruf, der im Kernelmodus stammt, finden Sie in der Beschreibung des OBJ_FORCE_ACCESS_CHECK Flags im Attributes Member der OBJECT_ATTRIBUTES-Struktur.

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)

Siehe auch

CmSetCallbackObjectContext-

OBJECT_ATTRIBUTES

ObOpenObjectByPointer-

REG_CREATE_KEY_INFORMATION

RegCreateKey-

RegCreateKeyEx-

RegistryCallback-

SECURITY_DESCRIPTOR

SECURITY_QUALITY_OF_SERVICE

UNICODE_STRING

ZwCreateKey-