UsbInterface Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Fournit des informations sur l’interface USB, y compris ses points de terminaison, le nombre de paramètres secondaires pris en charge par l’interface et obtient l’ensemble du descripteur défini pour ces paramètres. Il obtient également des canaux associés aux points de terminaison pris en charge par l’interface.
public ref class UsbInterface sealed
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
class UsbInterface final
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
public sealed class UsbInterface
Public NotInheritable Class UsbInterface
- Héritage
- Attributs
Configuration requise pour Windows
Famille d’appareils |
Windows 10 (introduit dans 10.0.10240.0)
|
API contract |
Windows.Foundation.UniversalApiContract (introduit dans v1.0)
|
Exemples
Cet exemple de code montre comment analyser des descripteurs et obtenir des objets de canal. L’exemple suppose que l’application a déjà obtenu l’objet UsbDevice .
using Windows.Devices.Usb;
using Windows.Storage.Streams;
protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
UsbDevice device;
UInt32 readLen = 8;
// Get the UsbDevice object. Not shown.
...
UsbInterface myInterface = null;
//
// Need to find this descriptor after an interface descriptor:
//
// ===>Class-Specific Video Control Interface Header Descriptor<===
// bLength: 0x0D
// bDescriptorType: 0x24
// bDescriptorSubtype:0x01
// bcdVDC: 0x0100
// wTotalLength: 0x00D9 -> Validated
// dwClockFreq: 0x02DC6C00 = (48000000) Hz
// bInCollection: 0x01
// baInterfaceNr[1]: 0x01
// USB Video Class device: spec version 1.0
//
foreach (var interf in device.Configuration.UsbInterfaces)
{
foreach (var setting in interf.InterfaceSettings)
{
var descriptors = setting.Descriptors;
// First descriptor in the setting must be the interface descriptor
if (descriptors.Count >= 2 &&
UsbInterfaceDescriptor.TryParse(descriptors[0], null) ==
true &&
descriptors[1].Length == 0x0D &&
descriptors[1].DescriptorType == 0x24)
{
Windows.Storage.Streams.Buffer buffer = new Windows.Storage.Streams.Buffer(readLen);
descriptors[1].readDescriptorBuffer(buffer);
Windows.Storage.Streams.DataReader reader = Windows.Storage.Streams.DataReader.FromBuffer(buffer);
reader.ReadByte(); // bLength
reader.ReadByte(); // bDescriptorType
byte bDescriptorSubType = reader.ReadByte();
if (bDescriptorSubType == 0x01)
{
// This is our interface.
myInterface = interf;
ushort bcdVDC = reader.ReadUInt16();
ushort wTotalLength = reader.ReadUInt16();
byte lsb = reader.ReadByte();
uint dwClockFreq = (reader.ReadUInt16() << 8) + lsb;
byte bInCollection = reader.ReadByte();
byte baInterfaceNr1 = reader.ReadByte();
await setting.SelectSettingAsync();
}
break;
}
}
if (myInterface != null)
{
break;
}
}
if (myInterface == null)
{
ShowError("Video Control Interface descriptor not found");
return;
}
// Pipes are now available to communicate with endpoints
UsbInterruptInPipe interruptIn = myInterface.InterruptInPipes[0];
UsbBulkOutPipe bulkOut = myInterface.BulkOutPipes[0];
}
Propriétés
BulkInPipes |
Obtient un tableau d’objets qui représentent des canaux que l’hôte a ouverts pour communiquer avec les points de terminaison IN en bloc définis dans le paramètre actuel du paramètre d’interface USB. |
BulkOutPipes |
Obtient un tableau d’objets qui représentent des canaux que l’hôte a ouverts pour communiquer avec les points de terminaison OUT en bloc définis dans le paramètre actuel de l’interface USB. |
Descriptors |
Obtient un tableau d’objets qui représentent des descripteurs pour tous les autres paramètres qui font partie de cette interface USB. |
InterfaceNumber |
Obtient le numéro d’interface qui identifie l’interface USB. Cette valeur est le champ bInterfaceNumber d’un descripteur d’interface USB standard. |
InterfaceSettings |
Obtient un tableau d’objets qui représentent d’autres paramètres définis pour l’interface USB. |
InterruptInPipes |
Obtient un tableau d’objets qui représentent des canaux que l’hôte a ouverts pour communiquer avec des points de terminaison IN d’interruption définis dans le paramètre actuel de l’interface USB. |
InterruptOutPipes |
Obtient un tableau d’objets qui représentent des canaux que l’hôte a ouverts pour communiquer avec des points de terminaison OUT d’interruption définis dans le paramètre actuel de l’interface USB. |