Ler em inglês

Compartilhar via


estrutura REG_CREATE_KEY_INFORMATION_V1 (wdm.h)

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

Sintaxe

C++
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 raiz do Registro 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 de ZwCreateKey e a descrição do parâmetro OpenOptions da rotina de 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 de ZwCreateKey. Esse valor de ponteiro pode ser NULL.

SecurityDescriptor

Um ponteiro para uma estrutura de SECURITY_DESCRIPTOR que contém informações de segurança para o objeto chave. Esse ponteiro foi obtido do SecurityDescriptor membro da estrutura de 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 de 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 de 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 do 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 Disposição da rotina de 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 definidas pelo driver opcionais que a rotina de registryCallback do driver podem 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 o rotina de ObOpenObjectByPointer para obter o identificador de transação correspondente. Se esse membro estiver NULL, a operação será executada em contexto não transacional.

Version

O número da versão da estrutura. Este membro distingue a estrutura de REG_CREATE_KEY_INFORMATION no Windows Vista da estrutura de 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 compatível com o Windows Vista, esse membro é nomeado Reservado e está 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 de Segurança de Chave de Registro e Direitos de Acesso.

Attributes

Contém os sinalizadores de atributo de objeto do Attributes membro 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 verificação de acesso de segurança para a chamada para criar a nova chave. Este membro contém um dos seguintes valores de enumeração MODE do arquivo de cabeçalho Wdm.h:

  • kernelMode
  • UserMode
Essa verificação de segurança é semelhante à executada pela rotina de 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á uma verificação de acesso de segurança completa, 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 Attributes membro da estrutura OBJECT_ATTRIBUTES.

Observações

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 no modo de usuário chama RegCreateKey ou RegCreateKeyExou quando um driver no modo kernel chama ZwCreateKey.

Essa estrutura é uma versão estendida da estrutura de REG_CREATE_KEY_INFORMATION compatível com o Windows Vista. Os primeiros 14 membros, CompleteName por meio de de Transação, são idênticos nas duas estruturas. Os últimos cinco membros da estrutura REG_CREATE_KEY_INFORMATION_V1, versão 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 de RegNtPreCreateKeyEx, o driver deverá fornecer os valores para os membros GrantedAccess, Dispositione 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 de RegistryCallback. Para obter mais informações sobre operações de filtragem de registro, consulte Filtrando chamadas de registro.

Requisitos

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

Consulte também

CmSetCallbackObjectContext

OBJECT_ATTRIBUTES

ObOpenObjectByPointer

REG_CREATE_KEY_INFORMATION

RegCreateKey

RegCreateKeyEx

RegistryCallback

SECURITY_DESCRIPTOR

SECURITY_QUALITY_OF_SERVICE

UNICODE_STRING

ZwCreateKey