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) |