DeviceInformationKind 열거형

정의

DeviceInformation 개체의 종류를 지정하는 상수를 정의합니다.

public enum class DeviceInformationKind
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
enum class DeviceInformationKind
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public enum DeviceInformationKind
var value = Windows.Devices.Enumeration.DeviceInformationKind.unknown
Public Enum DeviceInformationKind
상속
DeviceInformationKind
특성

Windows 요구 사항

디바이스 패밀리
Windows 10 (10.0.10240.0에서 도입되었습니다.)
API contract
Windows.Foundation.UniversalApiContract (v1.0에서 도입되었습니다.)

필드

AssociationEndpoint 5

DeviceInformation 개체는 AEP(디바이스 연결 엔드포인트)를 나타냅니다. 일반적으로 AAP는 무선 또는 네트워크 프로토콜을 통해 검색된 디바이스를 나타냅니다. 이러한 엔드포인트 중 일부는 먼저 디바이스를 페어링할 필요 없이 사용할 수 있습니다. CanPair를 사용하여 디바이스가 페어링을 지원하는지 확인하고 IsPaired를 사용하여 디바이스가 이미 시스템과 페어링되었는지 확인합니다. AssociationEndpoint 개체만 페어링에 NULL이 아닌 값을 갖습니다. 네트워크를 통해 페어링하는 방법에 대한 자세한 내용은 네트워크를 통해 디바이스 열거를 참조하세요. AssociationEndpoint 개체는 단일 AssociationEndpointContainer 개체의 자식이며 0개 이상의 AssociationEndpointService 개체를 포함할 수 있습니다.

이 개체의 ID 입니다.

AssociationEndpointContainer 6

DeviceInformation 개체는 AEP(연결 엔드포인트) 컨테이너를 나타냅니다. AssociationEndpointContainer 개체는 연결된 AssociationEndpoint 개체가 둘 이상 있을 수 있는 단일 물리적 디바이스를 나타냅니다. 예를 들어 텔레비전이 서로 다른 두 네트워크 프로토콜을 지원하는 경우 AssociationEndpointContainer 는 텔레비전이 됩니다. 또한 각 프로토콜을 나타내는 두 개의 AssociationEndpoint 개체가 있습니다.

이 개체의 ID 는 문자열로 AEP 컨테이너 GUID 입니다.

AssociationEndpointProtocol 9

DeviceInformation 개체는 APS(연결 엔드포인트)를 검색할 수 있는 프로토콜을 나타냅니다. 프로토콜 ID를 사용하여 연결 엔드포인트 검색을 특정 프로토콜에 scope 수 있습니다. 예를 들어 다음 선택기는 검색 범위를 Bluetooth LE 또는 Bluetooth 클래식으로 지정합니다.

자세한 내용은 비고를 참조하세요.

AssociationEndpointService 7

DeviceInformation 개체는 AEP(연결 엔드포인트) 서비스를 나타냅니다. AssociationEndpointService 개체는 디바이스에서 노출하는 기능 서비스 계약을 나타냅니다. 모든 프로토콜이 AEP 서비스를 지원하지는 않습니다. AssociationEndpointService에는 단일 부모 AssociationEndpointContainer 개체가 있을 수 있습니다.

이 개체의 ID 를 문자열로 사용합니다.

Device 3

DeviceInformation 개체는 디바이스 개체를 나타냅니다. 이를 devnode라고도 합니다. 이러한 디바이스는 디바이스 기능의 일부를 나타내는 개체이며 필요에 따라 드라이버가 로드됩니다. 실제 디바이스를 창과 페어링하면 여러 디바이스 개체가 만들어집니다. 디바이스에는 0개 이상의 DeviceInterface 개체가 있고, 하나의 DeviceContainer 개체에 대한 자식이며, 0개 또는 1개의 AssociationEndpoint 개체와 관련이 있습니다.

이 개체의 ID는 이 개체의 디바이스 instance ID입니다.

DeviceContainer 2

DeviceInformation 개체는 디바이스 컨테이너를 나타냅니다. DeviceContainer 개체는 동일한 물리적 디바이스에 있는 디바이스 개체의 컬렉션을 설명합니다. 예를 들어 다기능 프린터에는 여러 디바이스가 포함되어 있을 수 있지만 모두 부모 DeviceContainer 개체의 일부로 존재합니다.

이 개체의 ID 는 디바이스 컨테이너 GUID 를 문자열로 사용합니다.

DeviceInterface 1

DeviceInformation 개체는 PnP 디바이스 인터페이스를 나타냅니다. 일반적으로 디바이스 IOCTLS(입력 출력 컨트롤)를 사용하여 앱이 디바이스와 통신할 수 있도록 디바이스 드라이버에 의해 노출됩니다.

이 유형의 DeviceInformation 개체에는 PnP DeviceInterface 개체의 모든 속성과 부모 PnP DeviceContainer 개체의 일부 속성이 포함됩니다. 사용자가 앱 시나리오를 완료하기 위해 디바이스를 선택해야 하는 경우 이러한 속성 조합을 사용자에게 표시할 수 있습니다. DeviceInterface 개체는 하나의 DeviceContainer 개체에 대한 자식일 수 있습니다.

특정 종류를 지정하지 않고 디바이스를 열거할 때 기본 DeviceInformationKind입니다.

이 개체의 ID 는 디바이스 인터페이스 ID 또는 디바이스 인터페이스 경로입니다.

DeviceInterfaceClass 4

DeviceInformation 개체는 디바이스 인터페이스 클래스를 나타냅니다. 모든 DeviceInterface 개체는 특정 DeviceInterfaceClass에 속합니다. 이는 계약 정의와 비슷합니다. 이러한 계약은 다른 모든 PnP 개체와 마찬가지로 ID 및 속성으로 표시됩니다. DeviceInterfaceClass 개체는 고유 식별자와 이름보다 더 많은 정보를 포함합니다.

이 개체의 ID 는 문자열로 디바이스 인터페이스 클래스 GUID 입니다.

DevicePanel 8

DeviceInformation 개체는 디바이스 인클로저의 단일 물리적 얼굴을 나타냅니다.

이 개체의 ID 를 문자열로 사용합니다.

Unknown 0

개체가 알 수 없는 형식입니다. 이 값은 사용되지 않습니다.

설명

DeviceInformationKind 값을 다양한 열거형 API에 전달하여 열거하려는 디바이스의 특정 종류를 나타낼 수 있습니다. 대부분의 시나리오에서는 디바이스 선택기에서 DeviceInformation 을 받게 됩니다. DeviceInformationKind를 사용하여 특정 종류의 디바이스를 열거하는 방법을 보려면 디바이스 열거를 참조하세요.

다음 다이어그램은 다양한 디바이스 유형이 서로 상호 작용하는 방법을 보여줍니다. 또한 관계를 함께 연결하는 속성을 나타냅니다. 성능상의 이유로 대부분의 관계 연결은 한 방향으로만 이동합니다. 이에 대한 예외는 AepContainer입니다. System.Devices.AepContainer.Children 덕분에 자식 개체 목록이 포함됩니다.

DeviceInformationKind 관계

위 다이어그램의 각 줄은 개체 형식 간의 관계가 정의되는 방식을 나타냅니다. 기본 개체에는 핵심 개체 ID가 있습니다. 그런 다음 해당 값이 해당 핵심 개체 ID와 같은 관련 개체에 속성이 있습니다.

예를 들어 DeviceInterfaceClass 에 대한 0~N DeviceInterface 개체가 있습니다. 따라서 DeviceInterfaceClass 개체가 나타내는 디바이스 인터페이스 클래스의 0~N DeviceInterface 개체가 존재합니다. DeviceInterfaceClass 개체의 핵심 개체 ID는 디바이스 인터페이스 클래스 GUID입니다. DeviceInterface 개체에는 DEVPKEY_DeviceInterface_ClassGuid 속성이 있습니다. 해당 속성의 값(GUID)은 DeviceInterface 개체의 디바이스 인터페이스 클래스(즉, 인터페이스 유형)를 나타냅니다. 물론 해당 값은 관련 DeviceInterfaceClass 개체의 핵심 개체 ID와 같습니다.

몇 가지 예제를 더 살펴보겠습니다. 다음은 디바이스 개체가 웹캠에 매핑되는 방법의 예입니다. 컨테이너 1개, 디바이스 노드 4개(약식 devnode) 및 확장된 devnode에는 5개의 디바이스 인터페이스가 있습니다(그 중 3개는 활성화됨).

웹캠에 대한 디바이스 개체

선택한(강조 표시된) 디바이스 인터페이스의 속성을 살펴보면 속성이 개체 모델을 함께 연결하는 데 어떻게 사용되는지 확인할 수 있습니다. 표시된 키 이름은 실제로 Win32 버전입니다(예: DEVPKEY_DeviceInterface_ClassGuid). Windows 런타임(WinRT)에서 속성은 속성 시스템에 의해 매핑됩니다(디바이스(Windows 속성 시스템 참조)). 따라서 DEVPKEY_DeviceInterface_ClassGuid 해당하는 속성은 System.Device.InterfaceClassGuid입니다.

X

예를 들어 디바이스 인터페이스 클래스 ID(클래스 GUID라고도 함)를 알고 있는 경우 해당 ID(핵심 ID)가 있는 디바이스 인터페이스 클래스 개체를 찾을 수 있습니다. 아래 그림에서는 카메라 디바이스 인터페이스 클래스일 뿐임을 알 수 있습니다. 해당 디바이스 인터페이스 클래스에 대한 자세한 정보를 볼 수 있습니다. 이 디바이스 인터페이스 클래스에 있는 모든 디바이스 인터페이스에는 아래 표시된 클래스 GUID와 동일한 DEVPKEY_DeviceInterface_ClassGuid 속성 값이 있습니다.

X

다음은 또 다른 예입니다. 이번에는 Bluetooth 헤드셋을 사용합니다. devnode가 선택됩니다. 또한 연결 엔드포인트 개체에 매핑되는 AEP ID가 강조 표시되어 있습니다. 디바이스 개체와Aep 개체 간의 관계를 보여 줍니다. DEVPKEY_Aep_AepId (Win32) 또는 System.Devices.Aep.AepId (WinRT)는 이러한 두 개체 형식을 함께 일치시킬 수 있는 방법입니다. devnode는 쌍을 이루는 디바이스의 경우 DEVPKEY_Aep_AepId 속성 값을 갖습니다. 그런 다음, 해당 값을 사용하여 코어 ID가 값과 일치하는 Aep 개체를 찾을 수 있습니다.

X

다음은 ID와 함께 속한 패널을 보여 주는 devnode의 예입니다. 패널은 개인용 컴퓨터의 섀시 위쪽에 있는 USB 포트를 나타냅니다. 이는 DevicePanel (그림 맨 위에 있음)과 디바이스 (또는 devnode, 그림 아래쪽)의 관계를 보여 줍니다. Devnodes 및 디바이스 인터페이스에는 System.Devices.Panel.PanelId 속성 값이 있을 수 있습니다. 그런 다음, 해당 값을 사용하여 코어 ID가 값과 일치하는 DevicePanel 개체를 찾을 수 있습니다.

X

AssociationEndpointProtocol 상수의 경우 AQS 선택기 문자열의 예는 다음과 같습니다.

System.Devices.Aep.ProtocolId:="{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}" (Bluetooth 클래식의 경우) 또는 System.Devices.Aep.ProtocolId:=:"{bb7bb05e-5972-42b5-94fc-76eaa7084d49}" (Bluetooth LE의 경우).

System.Devices.Aep.ProtocolId는 propsys에서 프로토콜의 이름입니다. DEVPKEY_Aep_ProtocolId Win32 DEVPKEY입니다.

다음은 프로토콜을 열거하는 방법 및 AEP 속성과 일치하는 방법(대괄호 안에 주석 포함)의 대표적인 예입니다.

> pairtool /enum-protocols
...
Protocol ID:                Bluetooth [DEVPKEY_Aep_ProviderName]
Protocol Provider Name:     Bluetooth
Protocol Name:              Bluetooth Classic
Universal Protocol ID:      {e0cbf06c-cd8b-4647-bb8a-263b43f0f974} [DEVPKEY_Aep_ProtocolId // <propertyDescription name="System.Devices.Aep.ProtocolId" formatID="{3B2CE006-5E61-4FDE-BAB8-9B8AAC9B26DF}" propID="5">]
Protocol Provider Class ID: {4aa383d6-337a-43d3-a3fa-c14b26004130}

Protocol ID:                BluetoothLE [DEVPKEY_Aep_ProviderName]
Protocol Provider Name:     BluetoothLE
Protocol Name:              Bluetooth Low Energy
Universal Protocol ID:      {bb7bb05e-5972-42b5-94fc-76eaa7084d49} [DEVPKEY_Aep_ProtocolId]
Protocol Provider Class ID: {0829c308-d361-49f4-828b-506d552029ef} 
...
> pairtool /enum-endpoints

BluetoothLE#BluetoothLEdc:46:28:6a:16:01-20:4c:03:45:07:ca
  1)DEVPKEY_Aep_ContainerId [SYS] (null) DEVPROP_TYPE_GUID 16 {72888bff-567a-54f9-861a-73a3f2df469c} 
...
  30)DEVPKEY_Aep_ProviderName [SYS] (null) DEVPROP_TYPE_STRING 24 "BluetoothLE"
  33)DEVPKEY_Aep_ProtocolId [SYS] (null) DEVPROP_TYPE_GUID 16 {bb7bb05e-5972-42b5-94fc-76eaa7084d49}

버전 기록

Windows 버전 SDK 버전 추가된 값
1809 17763 DevicePanel

적용 대상

추가 정보