estrutura REG_CREATE_KEY_INFORMATION_V1 (wdm.h)

A estrutura REG_CREATE_KEY_INFORMATION_V1 contém informações que a rotina RegistryCallback de um driver de filtro pode usar quando uma chave do Registro está sendo criada.

Sintaxe

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;

Membros

CompleteName

Um ponteiro para uma estrutura UNICODE_STRING que contém o caminho da nova chave do Registro. O caminho pode ser absoluto ou relativo. Se o caminho for absoluto, essa estrutura conterá um caminho totalmente qualificado que começa com o caractere "\". Para um caminho absoluto, o membro RootObject especifica a chave \REGISTRY , que é o diretório raiz da árvore do Registro. Se o caminho for relativo, o caminho começará com um caractere diferente de "\" e será relativo à chave especificada pelo membro RootObject .

RootObject

Um ponteiro para um objeto de chave do Registro que representa a chave do Registro raiz para o caminho especificado pelo membro CompleteName .

ObjectType

Esse membro é reservado para uso pelo sistema operacional. Os drivers não devem acessar esse membro.

Options

Especifica as opções para a rotina de criação de chave a ser usada para criar ou abrir a nova chave. Para obter mais informações, consulte a descrição do parâmetro CreateOptions da rotina ZwCreateKey e a descrição do parâmetro OpenOptions da rotina ZwOpenKeyEx .

Class

Um ponteiro para uma estrutura UNICODE_STRING que identifica a classe de objeto da nova chave. Para obter mais informações sobre esse membro, consulte o parâmetro Class da rotina ZwCreateKey . Esse valor de ponteiro pode ser NULL.

SecurityDescriptor

Um ponteiro para uma estrutura SECURITY_DESCRIPTOR que contém informações de segurança para o objeto de chave. Esse ponteiro foi obtido do membro SecurityDescriptor da estrutura OBJECT_ATTRIBUTES que foi passada como um parâmetro de entrada na chamada para criar a nova chave do Registro.

SecurityQualityOfService

Um ponteiro para uma estrutura SECURITY_QUALITY_OF_SERVICE . Essa estrutura indica se um servidor pode representar o cliente que está tentando criar a chave do Registro e, se a representação for permitida, até que ponto ela é permitida.

DesiredAccess

A máscara de acesso especificada pelo thread que está tentando criar a chave do Registro. Para obter mais informações sobre essa máscara de acesso, consulte a descrição do parâmetro DesiredAccess da rotina ZwCreateKey .

GrantedAccess

Uma máscara de acesso que indica os direitos de acesso que foram concedidos ao thread que está tentando criar a chave do Registro. Para obter mais informações sobre esse membro, consulte a seção Comentários a seguir.

Disposition

Um valor que indica se a operação de registro solicitada criará uma nova chave ou abrirá uma existente. Para obter mais informações sobre esse membro, consulte a descrição do parâmetro Disposition da rotina ZwCreateKey e a seção Comentários a seguir.

ResultObject

Um ponteiro para um local que recebe o endereço do objeto de chave que representa a chave do Registro criada.

CallContext

Informações de contexto opcionais definidas pelo driver que a rotina RegistryCallback do driver pode fornecer.

RootObjectContext

Um ponteiro para informações de contexto definidas pelo driver que o driver associou à raiz do caminho do objeto do Registro chamando a rotina CmSetCallbackObjectContext .

Transaction

Um ponteiro para um objeto de transação para a operação do Registro. Você pode fornecer esse ponteiro para a rotina ObOpenObjectByPointer para obter o identificador de transação correspondente. Se esse membro for NULL, a operação está sendo executada em contexto não transacional.

Version

O número de versão da estrutura. Esse membro distingue a estrutura de REG_CREATE_KEY_INFORMATION no Windows Vista da estrutura REG_CREATE_KEY_INFORMATION_V1 no Windows 7 e versões posteriores do Windows. Os números de versão a seguir estão definidos no momento.

Número de versão Versão da estrutura
0 REG_CREATE_KEY_INFORMATION
1 REG_CREATE_KEY_INFORMATION_V1
 

Versões futuras dessa estrutura podem adicionar novos membros, mas não alterarão os membros que já estão definidos nas versões existentes da estrutura. Esse membro é definido na estrutura REG_CREATE_KEY_INFORMATION_V1 com suporte no Windows 7 e versões posteriores dos sistemas operacionais Windows. Na estrutura REG_CREATE_KEY_INFORMATION à qual o Windows Vista dá suporte, esse membro é nomeado Reservado e é definido como zero. Os drivers de filtro devem depender do número de versão e não da versão do sistema operacional para determinar qual versão da estrutura eles estão usando.

RemainingName

Um ponteiro para uma estrutura UNICODE_STRING que contém o caminho relativo da nova chave do Registro. Esse membro sempre expressa o caminho da nova chave em relação ao caminho da chave especificada pelo membro RootObject . Por outro lado, o membro CompleteName poderá conter um caminho absoluto se o membro RootObject especificar a chave \REGISTRY .

Wow64Flags

Contém os sinalizadores Wow64 da máscara de acesso que foi passada como um parâmetro de entrada na chamada para criar a nova chave do Registro. Esse membro indica se um programa cliente de 32 bits em execução em uma versão de 64 bits do Windows está tentando criar uma chave do Registro. Esse membro é definido como zero ou como um dos seguintes bits de sinalizador:

  • KEY_WOW64_32KEY
  • KEY_WOW64_64KEY
Esses bits de sinalizador são definidos nos arquivos de cabeçalho Wdm.h e Winnt.h. Para obter mais informações sobre esses sinalizadores, consulte Segurança de Chave do Registro e Direitos de Acesso.

Attributes

Contém os sinalizadores de atributo de objeto do membro Attributes da estrutura OBJECT_ATTRIBUTES que foi passada como um parâmetro de entrada na chamada para criar a nova chave do Registro. Esse membro pode conter um ou mais dos seguintes bits de sinalizador:

  • OBJ_KERNEL_HANDLE
  • OBJ_FORCE_ACCESS_CHECK
  • OBJ_OPENLINK
Para obter mais informações sobre esses sinalizadores, consulte OBJECT_ATTRIBUTES.

CheckAccessMode

Indica como o gerenciador de configurações executa a marcar de acesso de segurança para a chamada para criar a nova chave. Esse membro contém um dos seguintes valores de enumeração MODE do arquivo de cabeçalho Wdm.h:

  • KernelMode
  • Usermode
Essa marcar de segurança é semelhante à executada pela rotina SeAccessCheck, que tem um parâmetro AccessMode que pode ser definido como UserMode ou KernelMode. Se CheckAccessMode estiver definido como UserMode, o gerenciador de configurações executará um acesso de segurança completo marcar independentemente de a chamada ter se originado no modo de usuário ou no modo kernel. Para obter mais informações sobre como forçar verificações de acesso de segurança no modo de usuário em uma chamada originária no modo kernel, consulte a descrição do sinalizador OBJ_FORCE_ACCESS_CHECK no membro Atributos da estrutura OBJECT_ATTRIBUTES .

Comentários

O gerenciador de configurações passa essa estrutura para a rotina RegistryCallback sempre que um thread tenta criar uma chave, por exemplo, quando um thread de modo de usuário chama RegCreateKey ou RegCreateKeyEx, ou quando um driver de modo kernel chama ZwCreateKey.

Essa estrutura é uma versão estendida da estrutura REG_CREATE_KEY_INFORMATION à qual o Windows Vista dá suporte. Os primeiros 14 membros, CompleteName até Transaction, são idênticos nas duas estruturas. Os últimos cinco membros da estrutura REG_CREATE_KEY_INFORMATION_V1 , Version por meio de CheckAccessMode, não fazem parte da estrutura REG_CREATE_KEY_INFORMATION .

Se a rotina RegistryCallback do driver retornar STATUS_CALLBACK_BYPASS para uma notificação RegNtPreCreateKeyEx , o driver deverá fornecer os valores para os membros GrantedAccess, Disposition e ResultObject .

A estrutura REG_CREATE_KEY_INFORMATION_V1 é uma das várias estruturas que um driver de filtro pode receber por meio de sua rotina RegistryCallback . Para obter mais informações sobre operações de filtragem de registro, consulte Filtrando chamadas de registro.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 7 e versões posteriores dos sistemas operacionais Windows.
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)

Confira também

CmSetCallbackObjectContext

OBJECT_ATTRIBUTES

ObOpenObjectByPointer

REG_CREATE_KEY_INFORMATION

RegCreateKey

RegCreateKeyEx

RegistryCallback

SECURITY_DESCRIPTOR

SECURITY_QUALITY_OF_SERVICE

UNICODE_STRING

ZwCreateKey