DeviceInformationKind Enumeración
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define constantes que especifican un tipo de objeto 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
- Herencia
-
DeviceInformationKind
- Atributos
Requisitos de Windows
Familia de dispositivos |
Windows 10 (se introdujo en la versión 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (se introdujo en la versión v1.0)
|
Campos
AssociationEndpoint | 5 | El objeto DeviceInformation representa un punto de conexión de asociación de dispositivo (AEP). Los AEP suelen representar un dispositivo detectado a través de un protocolo inalámbrico o de red. Algunos de estos puntos de conexión se pueden usar sin necesidad de emparejar primero el dispositivo. Usa CanPair para determinar si un dispositivo admite el emparejamiento e Is Pair para determinar si un dispositivo ya está emparejado con el sistema. Solo los objetos AssociationEndpoint tienen un valor distinto de NULL para emparejamiento. Para obtener más información sobre el emparejamiento a través de una red, consulte Enumerar dispositivos a través de una red. Un objeto AssociationEndpoint es un elemento secundario de un único objeto AssociationEndpointContainer y puede contener 0 o más objetos AssociationEndpointService . Identificador de este objeto. |
AssociationEndpointContainer | 6 | El objeto DeviceInformation representa un contenedor de punto de conexión de asociación (AEP). Un objeto AssociationEndpointContainer representa un único dispositivo físico que puede tener más de un objeto AssociationEndpoint asociado. Por ejemplo, si un televisor admite dos protocolos de red diferentes, AssociationEndpointContainer sería el televisor. También tendría dos objetos AssociationEndpoint para representar cada protocolo. El identificador de este objeto es el GUID del contenedor de AEP como una cadena. |
AssociationEndpointProtocol | 9 | El objeto DeviceInformation representa un protocolo a través del cual se pueden detectar puntos de conexión de asociación (AEP). Puede limitar el ámbito de una detección de puntos de conexión de asociación a protocolos específicos mediante el identificador de protocolo. Por ejemplo, el siguiente selector limita la detección a Bluetooth LE o Bluetooth Classic. Consulta Comentarios para obtener más información. |
AssociationEndpointService | 7 | El objeto DeviceInformation representa un servicio de punto de conexión de asociación (AEP). Un objeto AssociationEndpointService representa un contrato de servicio funcional expuesto por el dispositivo. No todos los protocolos admiten servicios de AEP. Un associationEndpointService puede tener un único objeto AssociationEndpointContainer primario. Identificador de este objeto como una cadena. |
Device | 3 | El objeto DeviceInformation representa un objeto de dispositivo. Esto también se podría denominar devnode. Estos dispositivos son objetos que representan una parte de la funcionalidad del dispositivo y, opcionalmente, tienen controladores cargados en ellos. Cuando un dispositivo físico está emparejado con ventanas, se crean varios objetos Device para él. Un dispositivo contiene 0 o más objetos DeviceInterface , es un elemento secundario de un objeto DeviceContainer y está relacionado con 0 o 1 objetos AssociationEndpoint . El identificador de este objeto es el identificador de instancia del dispositivo para este objeto. |
DeviceContainer | 2 | El objeto DeviceInformation representa un contenedor de dispositivos. Los objetos DeviceContainer describen una colección de objetos de dispositivo que existen en el mismo dispositivo físico. Por ejemplo, una impresora de varias funciones puede tener varios dispositivos diferentes incluidos, pero todos existirían como parte del objeto Primario DeviceContainer . El identificador de este objeto es el GUID del contenedor de dispositivos como una cadena. |
DeviceInterface | 1 | El objeto DeviceInformation representa una interfaz de dispositivo PnP. Estos se exponen mediante controladores de dispositivo para permitir que una aplicación se comunique con el dispositivo, normalmente mediante IOCTLS del dispositivo (controles de salida de entrada). Este tipo de objeto DeviceInformation contiene todas las propiedades del objeto PnP DeviceInterface más algunas propiedades del objeto PnP DeviceContainer primario. Esta combinación de propiedades se puede presentar al usuario cuando el usuario necesita seleccionar un dispositivo para completar un escenario de aplicación. Un objeto DeviceInterface solo puede ser secundario para un objeto DeviceContainer . Este es el valor predeterminado DeviceInformationKind al enumerar dispositivos sin especificar un tipo específico. El identificador de este objeto es el identificador de la interfaz del dispositivo o la ruta de acceso de la interfaz del dispositivo. |
DeviceInterfaceClass | 4 | El objeto DeviceInformation representa una clase de interfaz de dispositivo. Cada objeto DeviceInterface pertenece a un determinado DeviceInterfaceClass. Esto es similar a una definición de contrato. Estos contratos se representan con un identificador y propiedades, al igual que todos los demás objetos PnP. Los objetos DeviceInterfaceClass contienen poco más información que un identificador único y posiblemente un nombre. El identificador de este objeto es el GUID de la clase de interfaz de dispositivo como una cadena. |
DevicePanel | 8 | El objeto DeviceInformation representa una sola cara física de un gabinete de dispositivo. Identificador de este objeto como una cadena. |
Unknown | 0 | El objeto es de un tipo desconocido. Este valor no se utiliza. |
Comentarios
Se puede pasar un valor DeviceInformationKind a las distintas API de enumeración para indicar el tipo específico de dispositivo que desea enumerar. En la mayoría de los escenarios, recibirá deviceInformation del selector de dispositivos. Para ver cómo enumerar sobre tipos específicos de dispositivos mediante DeviceInformationKind, consulte Enumerar dispositivos.
En el diagrama siguiente se muestra cómo interactúan los distintos tipos de dispositivo entre sí. También indica las propiedades que unen las relaciones. Por motivos de rendimiento, muchas de las conexiones de relación solo van en una dirección. La excepción a esto es AepContainer. Contiene una lista de sus objetos secundarios gracias a System.Devices.AepContainer.Children.
![Relaciones de DeviceInformationKind](windows.devices.enumeration/images/device_type_interaction.png?view=winrt-26100)
Cada línea del diagrama anterior representa cómo se definen las relaciones entre los tipos de objeto. Un objeto principal tiene un identificador de objeto principal. Y, a continuación, hay una propiedad en el objeto relacionado cuyo valor es igual a ese identificador de objeto principal.
Por ejemplo, hay de 0 a N objetos DeviceInterface para un DeviceInterfaceClass. Por lo tanto, de 0 a N objetos DeviceInterface existen que son de la clase de interfaz de dispositivo representada por el objeto DeviceInterfaceClass . El identificador de objeto principal del objeto DeviceInterfaceClass es un GUID de clase de interfaz de dispositivo. Los objetos DeviceInterface a su vez tienen una propiedad denominada DEVPKEY_DeviceInterface_ClassGuid. El valor de esa propiedad (un GUID) indica cuál es la clase de interfaz de dispositivo del objeto DeviceInterface (es decir, qué tipo de interfaz es). Y, por supuesto, ese valor es igual al identificador de objeto principal del objeto DeviceInterfaceClass relacionado.
Veamos algunos ejemplos más. A continuación se muestra un ejemplo de cómo se asignan los objetos de dispositivo en una cámara web. Puede ver un contenedor, cuatro nodos de dispositivo (devnodes for short) y el nodo dev expandido tiene cinco interfaces de dispositivo (tres de las cuales están habilitadas).
![Objetos de dispositivo para una cámara web](windows.devices.enumeration/images/example_1.png?view=winrt-26100)
Al examinar las propiedades de la interfaz de dispositivo seleccionada (resaltada), puede ver cómo se usan las propiedades para vincular el modelo de objetos. Los nombres de clave que se muestran son de hecho las versiones de Win32 (por ejemplo, DEVPKEY_DeviceInterface_ClassGuid). En el Windows Runtime (WinRT), el sistema de propiedades asigna las propiedades (vea Dispositivos (Sistema de propiedades de Windows), por lo que el equivalente de DEVPKEY_DeviceInterface_ClassGuid es System.Device.InterfaceClassGuid.
![X](windows.devices.enumeration/images/example_2.png?view=winrt-26100)
Por ejemplo, si conoce un identificador de clase de interfaz de dispositivo (también conocido como GUID de clase), puede encontrar el objeto de clase de interfaz de dispositivo con ese identificador (que es su identificador principal). En la ilustración siguiente, puede ver que simplemente es una clase de interfaz de dispositivo Cámaras ; y puedes ver más información sobre esa clase de interfaz de dispositivo. Cualquier interfaz de dispositivo que esté en esta clase de interfaz de dispositivo tendrá un valor de propiedad DEVPKEY_DeviceInterface_ClassGuid igual al GUID de clase que se muestra a continuación.
![X](windows.devices.enumeration/images/example_3.png?view=winrt-26100)
Este es otro ejemplo; esta vez de un auricular Bluetooth. El devnode está seleccionado. Y resaltado es el identificador de AEP al que se asigna para el objeto de extremo de asociación. Esto muestra la relación entre objetos Device y objetos Aep . DEVPKEY_Aep_AepId (Win32) o System.Devices.Aep.AepId (WinRT) es la manera de combinar esos dos tipos de objeto. El devnode tendrá un valor de propiedad DEVPKEY_Aep_AepId si procede de un dispositivo emparejado. A continuación, puede usar ese valor para buscar un objeto Aep cuyo identificador principal coincida con el valor.
![X](windows.devices.enumeration/images/example_4.png?view=winrt-26100)
Y este es un ejemplo de un nodo de desarrollo que muestra a qué panel pertenece, junto con su identificador. El panel representa los puertos USB en la parte superior del chasis de un equipo personal. Esto ilustra la relación entre DevicePanel (en la parte superior de la ilustración) y Device (o devnode; en la parte inferior de la ilustración). Los devnodes y las interfaces de dispositivo pueden tener un valor de propiedad System.Devices.Panel.PanelId . Después, puede usar ese valor para buscar un objeto DevicePanel cuyo identificador principal coincida con el valor.
![X](windows.devices.enumeration/images/example_5.png?view=winrt-26100)
Para la constante AssociationEndpointProtocol , una cadena de selector de AQS de ejemplo es:
System.Devices.Aep.ProtocolId:="{e0cbf06c-cd8b-4647-bb8a-263b43f0f974}"
(para Bluetooth Classic) o System.Devices.Aep.ProtocolId:=:"{bb7bb05e-5972-42b5-94fc-76eaa7084d49}"
(para Bluetooth LE).
System.Devices.Aep.ProtocolId es el nombre del protocolo en propsys; y DEVPKEY_Aep_ProtocolId es el DEVPKEY de Win32.
Este es un ejemplo representativo de cómo se muestra un protocolo y cómo coincide con las propiedades de AEP (con anotaciones entre corchetes).
> 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}
Historial de versiones
Versión de Windows | Versión del SDK | Valor agregado |
---|---|---|
1809 | 17763 | DevicePanel |