다음을 통해 공유


IoOpenDeviceRegistryKey 함수(wdm.h)

IoOpenDeviceRegistryKey 루틴은 특정 디바이스 instance 레지스트리 상태 위치에 대한 핸들을 반환합니다.

구문

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

매개 변수

[in] DeviceObject

레지스트리 상태 위치를 열 디바이스 instance PDO(물리적 디바이스 개체)에 대한 포인터입니다.

[in] DevInstKeyType

디바이스별 하드웨어 키 또는 드라이버 관련 소프트웨어 키를 열지 여부를 나타내는 플래그를 지정합니다. 플래그는 키가 현재 하드웨어 프로필에 상대적인지 여부도 나타냅니다. 하드웨어 및 소프트웨어 키에 대한 자세한 내용은 드라이버용 레지스트리 키 소개를 참조하세요.

플래그는 다음과 같이 정의됩니다.

PLUGPLAY_REGKEY_DEVICE

디바이스에 대한 정보가 포함된 디바이스별 레지스트리 상태 위치인 디바이스의 하드웨어 키를 엽니다. 이 플래그는 PLUGPLAY_REGKEY_DRIVER 지정할 수 없습니다.

PLUGPLAY_REGKEY_DRIVER

드라이버 관련 정보를 저장하기 위한 디바이스별 레지스트리 상태 위치인 디바이스의 소프트웨어 키를 엽니다. 이 플래그는 PLUGPLAY_REGKEY_DEVICE 사용하여 지정할 수 없습니다.

PLUGPLAY_REGKEY_CURRENT_HWPROFILE

하드웨어 프로필은 더 이상 사용되지 않으며 하드웨어 프로필을 기준으로 상태를 저장해서는 안 됩니다.

디바이스 또는 드라이버 정보에 대한 현재 하드웨어 프로필을 기준으로 키를 엽니다. 이렇게 하면 드라이버가 하드웨어 프로필 관련 구성 정보에 액세스할 수 있습니다. 호출자는 이 플래그를 사용하여 PLUGPLAY_REGKEY_DEVICE 또는 PLUGPLAY_REGKEY_DRIVER 지정해야 합니다.

[in] DesiredAccess

호출자가 키에 필요한 액세스를 나타내는 ACCESS_MASK 값을 지정합니다. 각 KEY_XXX 액세스 권한에 대한 설명은 ZwCreateKey 루틴을 참조하세요.

[out] DeviceRegKey

성공적으로 반환할 때 요청된 레지스트리 상태 위치에 대한 핸들을 포함하는 호출자가 할당한 버퍼에 대한 포인터입니다.

반환 값

IoOpenDeviceRegistryKey 는 호출이 성공하면 STATUS_SUCCESS 반환합니다. 가능한 오류 반환 값에는 다음이 포함됩니다.

반환 코드 설명
STATUS_INVALID_PARAMETER 호출자가 잘못된 DevInstKeyType 플래그 집합을 지정했거나 유효한 PDO가 아닌 DeviceObject 를 제공했음을 나타냅니다.

설명

드라이버가 ZwClose 를 호출하여 액세스가 더 이상 필요하지 않은 경우 이 루틴에서 반환된 핸들을 닫아야 합니다.

이 루틴에서 연 레지스트리 키는 비휘발성 키입니다.

사용자 모드 설정 애플리케이션은 CM_Open_DevNode_Key 또는 SetupDiOpenDevRegKey 또는 SetupDiCreateDevRegKey와 같은 디바이스 정보 함수를 사용하여 이러한 레지스트리 키 액세스할 수 있습니다.

드라이버 패키지 설치 시 이러한 레지스트리 상태 위치의 상태를 미리 채우려면 INF 파일에서 INF AddReg 지시문을 사용합니다.

IoOpenDeviceRegistryKey의 호출자는 시스템 스레드의 컨텍스트에서 IRQL = PASSIVE_LEVEL 실행되어야 합니다.

요구 사항

요구 사항
대상 플랫폼 유니버설
헤더 wdm.h(Wdm.h, Ntddk.h, Ntifs.h 포함)
라이브러리 NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL(설명 섹션 참조)
DDI 규정 준수 규칙 HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

추가 정보

드라이버용 레지스트리 키 소개

ACCESS_MASK

ZwCreateKey

ZwClose

디바이스 노드 및 디바이스 스택