pub type IOUSBDeviceInterface942 = IOUSBDeviceStruct942;Available on crate features
AppleUSBDefinitions and IOUSBLib and USB and libc only.Expand description
The object you use to access USB devices from user space, returned by the IOUSBFamily version 900.4.2 and above.
The functions listed here include all of the functions defined for IOUSBDeviceInterface650, and some new functions that are available on macOS 10.14 and later. Super: IOUSBDeviceInterface650
See also Apple’s documentation
Aliased Type§
pub struct IOUSBDeviceInterface942 {Show 50 fields
pub QueryInterface: Option<unsafe extern "C-unwind" fn(*mut c_void, CFUUIDBytes, *mut *mut c_void) -> i32>,
pub AddRef: Option<unsafe extern "C-unwind" fn(*mut c_void) -> u32>,
pub Release: Option<unsafe extern "C-unwind" fn(*mut c_void) -> u32>,
pub CreateDeviceAsyncEventSource: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut *mut CFRunLoopSource) -> i32>,
pub GetDeviceAsyncEventSource: Option<unsafe extern "C-unwind" fn(*mut c_void) -> *mut CFRunLoopSource>,
pub CreateDeviceAsyncPort: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>,
pub GetDeviceAsyncPort: Option<unsafe extern "C-unwind" fn(*mut c_void) -> u32>,
pub USBDeviceOpen: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>,
pub USBDeviceClose: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>,
pub GetDeviceClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub GetDeviceSubClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub GetDeviceProtocol: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub GetDeviceVendor: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>,
pub GetDeviceProduct: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>,
pub GetDeviceReleaseNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>,
pub GetDeviceAddress: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>,
pub GetDeviceBusPowerAvailable: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>,
pub GetDeviceSpeed: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub GetNumberOfConfigurations: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub GetLocationID: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>,
pub GetConfigurationDescriptorPtr: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, *mut *mut IOUSBConfigurationDescriptor) -> i32>,
pub GetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub SetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> i32>,
pub GetBusFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> i32>,
pub ResetDevice: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>,
pub DeviceRequest: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest) -> i32>,
pub DeviceRequestAsync: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest, Option<unsafe extern "C-unwind" fn(*mut c_void, i32, *mut c_void)>, *mut c_void) -> i32>,
pub CreateInterfaceIterator: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBFindInterfaceRequest, *mut u32) -> i32>,
pub USBDeviceOpenSeize: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>,
pub DeviceRequestTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO) -> i32>,
pub DeviceRequestAsyncTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO, Option<unsafe extern "C-unwind" fn(*mut c_void, i32, *mut c_void)>, *mut c_void) -> i32>,
pub USBDeviceSuspend: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> i32>,
pub USBDeviceAbortPipeZero: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>,
pub USBGetManufacturerStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub USBGetProductStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub USBGetSerialNumberStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>,
pub USBDeviceReEnumerate: Option<unsafe extern "C-unwind" fn(*mut c_void, u32) -> i32>,
pub GetBusMicroFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> i32>,
pub GetIOUSBLibVersion: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32, *mut u32) -> i32>,
pub GetBusFrameNumberWithTime: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> i32>,
pub GetUSBDeviceInformation: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>,
pub RequestExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32, *mut u32) -> i32>,
pub ReturnExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32) -> i32>,
pub GetExtraPowerAllocated: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, *mut u32) -> i32>,
pub GetBandwidthAvailableForDevice: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>,
pub SetConfigurationV2: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, bool, bool) -> i32>,
pub RegisterForNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64, Option<unsafe extern "C-unwind" fn(*mut c_void, i32, *mut c_void, *mut c_void)>, *mut c_void, *mut u64) -> i32>,
pub UnregisterNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> i32>,
pub AcknowledgeNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> i32>,
pub GetDeviceAsyncNotificationPort: Option<unsafe extern "C-unwind" fn(*mut c_void) -> *mut IONotificationPort>,
/* private fields */
}Fields§
§QueryInterface: Option<unsafe extern "C-unwind" fn(*mut c_void, CFUUIDBytes, *mut *mut c_void) -> i32>§AddRef: Option<unsafe extern "C-unwind" fn(*mut c_void) -> u32>§Release: Option<unsafe extern "C-unwind" fn(*mut c_void) -> u32>§CreateDeviceAsyncEventSource: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut *mut CFRunLoopSource) -> i32>§GetDeviceAsyncEventSource: Option<unsafe extern "C-unwind" fn(*mut c_void) -> *mut CFRunLoopSource>§CreateDeviceAsyncPort: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>§GetDeviceAsyncPort: Option<unsafe extern "C-unwind" fn(*mut c_void) -> u32>§USBDeviceOpen: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>§USBDeviceClose: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>§GetDeviceClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§GetDeviceSubClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§GetDeviceProtocol: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§GetDeviceVendor: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>§GetDeviceProduct: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>§GetDeviceReleaseNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>§GetDeviceAddress: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> i32>§GetDeviceBusPowerAvailable: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>§GetDeviceSpeed: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§GetNumberOfConfigurations: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§GetLocationID: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>§GetConfigurationDescriptorPtr: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, *mut *mut IOUSBConfigurationDescriptor) -> i32>§GetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§SetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> i32>§GetBusFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> i32>§ResetDevice: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>§DeviceRequest: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest) -> i32>§DeviceRequestAsync: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest, Option<unsafe extern "C-unwind" fn(*mut c_void, i32, *mut c_void)>, *mut c_void) -> i32>§CreateInterfaceIterator: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBFindInterfaceRequest, *mut u32) -> i32>§USBDeviceOpenSeize: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>§DeviceRequestTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO) -> i32>§DeviceRequestAsyncTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO, Option<unsafe extern "C-unwind" fn(*mut c_void, i32, *mut c_void)>, *mut c_void) -> i32>§USBDeviceSuspend: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> i32>§USBDeviceAbortPipeZero: Option<unsafe extern "C-unwind" fn(*mut c_void) -> i32>§USBGetManufacturerStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§USBGetProductStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§USBGetSerialNumberStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> i32>§USBDeviceReEnumerate: Option<unsafe extern "C-unwind" fn(*mut c_void, u32) -> i32>§GetBusMicroFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> i32>§GetIOUSBLibVersion: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32, *mut u32) -> i32>§GetBusFrameNumberWithTime: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> i32>§GetUSBDeviceInformation: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>§RequestExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32, *mut u32) -> i32>§ReturnExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32) -> i32>§GetExtraPowerAllocated: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, *mut u32) -> i32>§GetBandwidthAvailableForDevice: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> i32>§SetConfigurationV2: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, bool, bool) -> i32>§RegisterForNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64, Option<unsafe extern "C-unwind" fn(*mut c_void, i32, *mut c_void, *mut c_void)>, *mut c_void, *mut u64) -> i32>§UnregisterNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> i32>§AcknowledgeNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> i32>§GetDeviceAsyncNotificationPort: Option<unsafe extern "C-unwind" fn(*mut c_void) -> *mut IONotificationPort>Returns the IONotificationPort for this IOService instance. Availability: This function is only available with IOUSBDeviceInterface942 and above.
Parameter self: Pointer to the IOUSBDeviceInterface.
Returns: Returns the IONotificationPortRef if one exists, MACH_PORT_NULL otherwise.