Compartilhar via


Objetos de chave do Registro

O driver do sistema PortCls implementa a interface IRegistryKey para o benefício de drivers de miniporta. Um objeto IRegistryKey representa uma chave do Registro. Os drivers de miniport 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 é gerada pela consulta.

Valor KEY_INFORMATION_CLASS Estrutura Key-Query

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 miniporto 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 Registro armazena o identificador na chave. Quando esse objeto é liberado posteriormente e sua contagem de referência diminui para zero, o objeto fecha automaticamente seu identificador para a chave.

A interface IRegistryKey dá suporte aos seguintes métodos:

IRegistryKey::D eleteKey

IRegistryKey::EnumerateKey

IRegistryKey::EnumerateValueKey

IRegistryKey::NewSubKey

IRegistryKey::QueryKey

IRegistryKey::QueryRegistryValues

IRegistryKey::QueryValueKey

IRegistryKey::SetValueKey