UMDF 1.x 드라이버에서 레지스트리 사용

경고

UMDF 2는 UMDF의 최신 버전이며 UMDF 1을 대체합니다. 모든 새 UMDF 드라이버는 UMDF 2를 사용하여 작성해야 합니다. UMDF 1에 새 기능이 추가되지 않으며 최신 버전의 Windows 10 UMDF 1에 대한 지원이 제한되어 있습니다. 유니버설 Windows 드라이버는 UMDF 2를 사용해야 합니다.

보관된 UMDF 1 샘플은 Windows 11 버전 22H2 - 2022년 5월 드라이버 샘플 업데이트에서 찾을 수 있습니다.

자세한 내용은 UMDF를 사용하여 시작 참조하세요.

UMDF 기반 드라이버는 속성 저장소 개체의 인터페이스를 사용하여 레지스트리에서 값을 읽고 쓸 수 있습니다.

UMDF 기반 드라이버는 네 가지 유형의 레지스트리 키에 액세스할 수 있습니다. 드라이버는 이러한 키 아래에 하위 키와 값을 만들고 읽고 쓸 수 있습니다. UMDF 기반 드라이버에서 사용할 수 있는 레지스트리 키 유형은 다음과 같습니다.

  • 하드웨어 키

    PnP 관리자는 디바이스의 고유 식별 정보를 저장하는 각 디바이스에 대해 하드웨어 키 또는 디바이스 키를 만듭니다.

    드라이버는 하드웨어 키 아래의 일부 속성 값을 검색하고 수정할 수 있습니다. 저장된 값의 위치는 액세스하는 데 사용하는 방법에 따라 달라집니다.

    PropertyStore 메서드를 사용하여 만든 속성 값은 하드웨어 키 아래 의 \Device Parameters 하위 키에 저장됩니다. 이러한 속성에 액세스하기 위해 드라이버는 다음 방법 중 하나를 호출하여 속성 저장소 인터페이스를 가져옵니다.

    IWDFDevice::RetrieveDevicePropertyStore
    IWDFNamedPropertyStore 인터페이스에 대한 포인터를 가져옵니다.

    IWDFDeviceInitialize::RetrieveDevicePropertyStore
    IWDFNamedPropertyStore 인터페이스에 대한 포인터를 가져옵니다.

    IWDFPropertyStoreFactory::RetrieveDevicePropertyStore
    IWDFNamedPropertyStore2 인터페이스에 대한 포인터를 가져옵니다. SubkeyPath 매개 변수를 사용하여 \Device Parameters\DriverServiceName\subkey와 같은 드라이버에서 만든 하위 키 아래에 값을 지정할 수 있습니다.

    드라이버는 \Device Parameters 하위 키 내의 값에 대한 읽기 전용 액세스 권한을 가지며 \Device Parameters\WDF 또는 \DeviceParameters\WUDF에 액세스할 수 없습니다.

    통합 디바이스 속성 모델을 사용하여 만든 속성 값은 하드웨어 키 아래 의 \Properties 하위 키에 저장됩니다.

    이러한 속성에 액세스하기 위해 드라이버는 IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore 를 호출하여 속성 저장소 인터페이스를 가져옵니다. 그런 다음 드라이버는 IWDFUnifiedPropertyStore 인터페이스를 사용하여 디바이스 속성의 현재 설정을 수정하고 검색할 수 있습니다.

  • 소프트웨어 키

    레지스트리에 각 드라이버에 대한 소프트웨어 키가 포함되어 있으므로 드라이버 의 소프트웨어 키를 드라이버 키라고도 합니다. 레지스트리에는 모든 디바이스 클래스 목록이 포함되며 각 드라이버의 소프트웨어 키는 해당 디바이스 클래스 항목 아래에 있습니다. 시스템은 각 드라이버에 대한 정보를 소프트웨어 키 아래에 저장합니다.

    드라이버는 IWDFPropertyStoreFactory::RetrieveDevicePropertyStore 를 호출하여 소프트웨어 키 아래의 값에 대한 읽기 또는 쓰기 액세스 권한을 얻을 수 있습니다. 드라이버는 특정 디바이스와 연결되지 않은 드라이버 관련 정보를 읽고 쓸 수 있습니다.

  • 디바이스 인터페이스 키

    레지스트리에는 드라이버가 만든 모든 디바이스 인터페이스 클래스 에 대한 키가 포함되어 있습니다. 이러한 각 키 아래에는 드라이버가 등록한 디바이스 인터페이스 클래스의 각 instance 대한 항목이 있습니다.

    드라이버가 디바이스 인터페이스 클래스의 instance 등록한 경우 IWDFPropertyStoreFactory::RetrieveDevicePropertyStore를 호출하여 해당 instance 대한 레지스트리 항목에서 값을 읽고 쓸 수 있습니다. 드라이버는 디바이스 인터페이스에 대한 instance 관련 정보를 읽고 쓸 수 있습니다.

  • DEVICEMAP

    레지스트리에는 직렬 및 병렬 포트와 같은 이전 기술에 대한 일부 드라이버가 사용하는 HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP 키가 포함되어 있습니다. 드라이버가 DEVICEMAP 키를 사용하는 기술을 지원하는 경우 드라이버는 IWDFPropertyStoreFactory::RetrieveDevicePropertyStore를 호출하여 키 아래의 하위 키 및 값에 액세스할 수 있습니다.

드라이버가 Registry 하위 키를 열기 위해 RetrieveDevicePropertyStore 메서드 중 하나를 호출한 후 드라이버는 IWDFNamedPropertyStore, IWDFNamedPropertyStore2 또는 IWDFUnifiedPropertyStore에 의해 노출된 메서드를 사용하여 하위 키 아래에 값을 만들고 읽고 쓸 수 있습니다. IWDFNamedPropertyStore2 인터페이스를 사용하면 드라이버가 값을 삭제할 수도 있습니다.

드라이버의 레지스트리 키에 대한 자세한 내용은 레지스트리 트리 및 키 개요를 참조하세요.