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