Compartilhar via


Função IoOpenDeviceRegistryKey (wdm.h)

A rotina IoOpenDeviceRegistryKey retorna um identificador para um local de estado do Registro para uma instância de dispositivo específica.

Sintaxe

NTSTATUS IoOpenDeviceRegistryKey(
  [in]  PDEVICE_OBJECT DeviceObject,
  [in]  ULONG          DevInstKeyType,
  [in]  ACCESS_MASK    DesiredAccess,
  [out] PHANDLE        DeviceRegKey
);

Parâmetros

[in] DeviceObject

Ponteiro para o PDO (objeto de dispositivo físico) da instância do dispositivo para a qual o local de estado do Registro deve ser aberto.

[in] DevInstKeyType

Especifica sinalizadores que indicam se uma chave de hardware específica do dispositivo ou uma chave de software específica do driver deve ser aberta. Os sinalizadores também indicam se a chave é relativa ao perfil de hardware atual. Para obter mais informações sobre chaves de hardware e software, consulte Introdução às Chaves do Registro para Drivers.

Os sinalizadores são definidos da seguinte maneira:

PLUGPLAY_REGKEY_DEVICE

Abra a chave de hardware do dispositivo, um local de estado do registro específico do dispositivo que contém informações sobre o dispositivo. Esse sinalizador não pode ser especificado com PLUGPLAY_REGKEY_DRIVER.

PLUGPLAY_REGKEY_DRIVER

Abra a chave de software do dispositivo, um local de estado do registro específico do dispositivo para armazenar informações específicas do driver. Esse sinalizador não pode ser especificado com PLUGPLAY_REGKEY_DEVICE.

PLUGPLAY_REGKEY_CURRENT_HWPROFILE

Os perfis de hardware foram preteridos e o estado não deve ser armazenado em relação a um perfil de hardware.

Abra uma chave relativa ao perfil de hardware atual para obter informações de dispositivo ou driver. Isso permite que o driver acesse informações de configuração específicas do perfil de hardware. O chamador deve especificar PLUGPLAY_REGKEY_DEVICE ou PLUGPLAY_REGKEY_DRIVER com esse sinalizador.

[in] DesiredAccess

Especifica o valor ACCESS_MASK que representa o acesso que o chamador precisa para a chave. Consulte a rotina ZwCreateKey para obter uma descrição de cada direito de acesso KEY_XXX .

[out] DeviceRegKey

Ponteiro para um buffer alocado pelo chamador que, no retorno bem-sucedido, contém um identificador para o local de estado do Registro solicitado.

Retornar valor

IoOpenDeviceRegistryKey retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Os possíveis valores retornados por erro incluem o seguinte:

Código de retorno Descrição
STATUS_INVALID_PARAMETER Possivelmente indica que o chamador especificou um conjunto ilegal de sinalizadores DevInstKeyType ou forneceu um DeviceObject que não é um PDO válido.

Comentários

O driver deve chamar ZwClose para fechar o identificador retornado dessa rotina quando o acesso não for mais necessário.

As chaves do Registro abertas por essa rotina não sãovolatile.

Os aplicativos de instalação do modo de usuário podem acessar essas chaves do Registro usando CM_Open_DevNode_Key ou funções de informações do dispositivo , como SetupDiOpenDevRegKey ou SetupDiCreateDevRegKey.

Para preencher previamente o estado nesses locais de estado do Registro no momento da instalação do pacote de driver, use as diretivas AddReg do INF em um arquivo INF.

Os chamadores de IoOpenDeviceRegistryKey devem estar em execução em IRQL = PASSIVE_LEVEL no contexto de um thread do sistema.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL (consulte a seção Comentários)
Regras de conformidade de DDI HwStorPortProhibitedDIs(storport), PowerIrpDDis(wdm)

Confira também

Introdução às Chaves do Registro para Drivers

ACCESS_MASK

ZwCreateKey

ZwClose

Nós de dispositivo e pilhas de dispositivos