Partilhar via


Objetos de chave do Registro

O driver do sistema PortCls implementa a interface IRegistryKey para o benefício dos drivers de miniporta. Um objeto IRegistryKey representa uma chave do Registro. Os drivers de miniporta usam objetos de chave do Registro para fazer o seguinte:

  • Criar e excluir chaves do Registro

  • Enumerar chaves do Registro

  • Consultar e definir chaves do Registro

Ao consultar um objeto de chave do Registro para obter informações sobre uma entrada do Registro sob a chave especificada, a consulta pode gerar as informações em um dos três formatos, cada um dos quais usa uma estrutura de consulta de chave diferente. A tabela a seguir mostra os valores de enumeração KEY_INFORMATION_CLASS que indicam qual das três estruturas de consulta de chave é produzida pela consulta.

Valor KEY_INFORMATION_CLASS Key-Query Estrutura

KeyBasicInformation

KEY_BASIC_INFORMATION

KeyFullInformation

KEY_FULL_INFORMATION

KeyNodeInformation

KEY_NODE_INFORMATION

Para abrir uma chave do Registro existente ou criar uma nova chave do Registro, um driver de adaptador pode chamar a função PcNewRegistryKey e um driver de miniporta pode chamar o método IPort::NewRegistryKey do driver de porta. As duas chamadas são semelhantes, exceto que a função PcNewRegistryKey requer dois parâmetros adicionais, DeviceObject e SubDevice. Para obter mais informações, consulte PcNewRegistryKey.

Quando um driver de miniporta cria um novo objeto IRegistryKey , o objeto abre uma subchave existente ou cria uma nova subchave do Registro, se nenhuma existir. Em ambos os casos, o objeto de chave do registo armazena o identificador para a chave. Quando aquele objeto é liberado posteriormente e a contagem de referências do objeto diminui até zero, o objeto fecha automaticamente o seu identificador para a chave.

A interface IRegistryKey suporta os seguintes métodos:

IRegistryKey::DeleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey