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.
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;
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
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
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
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.
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) |