Contents

init(deviceMatchingDictionary:interfaceMatchingDictionaries:interfaceMatchingOption:)

Initializes a criteria object using USB interface matching dictionaries, for the provided USB device matching criteria.

Declaration

init?(deviceMatchingDictionary: [String : any Sendable]?, interfaceMatchingDictionaries: [[String : any Sendable]], interfaceMatchingOption: AAUSBAccessoryMatchingCriteria.InterfaceMatchingOption)

Parameters

Discussion

Use createMatchingDictionaryWithVendorID:productID:bcdDevice:deviceClass:deviceSubclass:deviceProtocol:speed:productIDArray: to create a USB device matching dictionary.

Use createMatchingDictionaryWithVendorID:productID:bcdDevice:interfaceNumber:configurationValue:interfaceClass:interfaceSubclass:interfaceProtocol:speed:productIDArray: to create a USB interface matching dictionary.

See USBSpec.h in USBSpec.h User-Space in IOKit for more details about dictionary keys for the USB device/interface matching dictionaries.

Understanding interface matching options

If you initialize the criteria with AAUSBAccessoryMatchingCriteria.InterfaceMatchingOption.matchAll, then it evaluates to true for a USB accessory when

  • It matches the provided non-nil deviceMatchingDictionary, and

  • For the currently set configuration, all the interfaceMatchingDictionaries match at least one of its USB interfaces.

If you initialize the criteria is with AAUSBAccessoryMatchingCriteria.InterfaceMatchingOption.matchAny, then it evaluates to true for a USB accessory when

  • It matches the provided non-nil deviceMatchingDictionary, and

  • For the currently set configuration, any of the interfaceMatchingDictionaries match at least one of its USB interfaces.

See Also

Creating matching criteria