Ler em inglês

Partilhar 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

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

Parâmetros

[in] DeviceObject

Ponteiro para o de objeto de dispositivo físico (PDO) 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 são 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 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 de ZwCreateKey para obter uma descrição de cada KEY_xxx acesso à direita.

[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.

Valor de retorno

IoOpenDeviceRegistryKey retornará STATUS_SUCCESS se a chamada tiver sido bem-sucedida. Os valores de retorno de erro possíveis 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.

Observações

O driver deve chamar ZwClose para fechar a alça retornada dessa rotina quando o acesso não for mais necessário.

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

Os aplicativos de instalação no 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 diretivas INF AddReg em um arquivo INF.

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

Requisitos

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

Consulte também

introdução às chaves do Registro para drivers

ACCESS_MASK

ZwCreateKey

ZwClose

nós de dispositivo e pilhas de dispositivo