pub struct IOUSBDeviceStruct650 {Show 49 fields
pub QueryInterface: Option<unsafe extern "C-unwind" fn(*mut c_void, REFIID, *mut LPVOID) -> HRESULT>,
pub AddRef: Option<unsafe extern "C-unwind" fn(*mut c_void) -> ULONG>,
pub Release: Option<unsafe extern "C-unwind" fn(*mut c_void) -> ULONG>,
pub CreateDeviceAsyncEventSource: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut *mut CFRunLoopSource) -> IOReturn>,
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 mach_port_t) -> IOReturn>,
pub GetDeviceAsyncPort: Option<unsafe extern "C-unwind" fn(*mut c_void) -> mach_port_t>,
pub USBDeviceOpen: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>,
pub USBDeviceClose: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>,
pub GetDeviceClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub GetDeviceSubClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub GetDeviceProtocol: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub GetDeviceVendor: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> IOReturn>,
pub GetDeviceProduct: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> IOReturn>,
pub GetDeviceReleaseNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> IOReturn>,
pub GetDeviceAddress: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut USBDeviceAddress) -> IOReturn>,
pub GetDeviceBusPowerAvailable: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>,
pub GetDeviceSpeed: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub GetNumberOfConfigurations: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub GetLocationID: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>,
pub GetConfigurationDescriptorPtr: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, *mut IOUSBConfigurationDescriptorPtr) -> IOReturn>,
pub GetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub SetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> IOReturn>,
pub GetBusFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> IOReturn>,
pub ResetDevice: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>,
pub DeviceRequest: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest) -> IOReturn>,
pub DeviceRequestAsync: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest, IOAsyncCallback1, *mut c_void) -> IOReturn>,
pub CreateInterfaceIterator: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBFindInterfaceRequest, *mut io_iterator_t) -> IOReturn>,
pub USBDeviceOpenSeize: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>,
pub DeviceRequestTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO) -> IOReturn>,
pub DeviceRequestAsyncTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO, IOAsyncCallback1, *mut c_void) -> IOReturn>,
pub USBDeviceSuspend: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> IOReturn>,
pub USBDeviceAbortPipeZero: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>,
pub USBGetManufacturerStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub USBGetProductStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub USBGetSerialNumberStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>,
pub USBDeviceReEnumerate: Option<unsafe extern "C-unwind" fn(*mut c_void, u32) -> IOReturn>,
pub GetBusMicroFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> IOReturn>,
pub GetIOUSBLibVersion: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32, *mut u32) -> IOReturn>,
pub GetBusFrameNumberWithTime: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> IOReturn>,
pub GetUSBDeviceInformation: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>,
pub RequestExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32, *mut u32) -> IOReturn>,
pub ReturnExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32) -> IOReturn>,
pub GetExtraPowerAllocated: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, *mut u32) -> IOReturn>,
pub GetBandwidthAvailableForDevice: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>,
pub SetConfigurationV2: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, bool, bool) -> IOReturn>,
pub RegisterForNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64, IOAsyncCallback2, *mut c_void, *mut u64) -> IOReturn>,
pub UnregisterNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> IOReturn>,
pub AcknowledgeNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> IOReturn>,
/* private fields */
}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 650.4.0 and above.
The functions listed here include all of the functions defined for IOUSBDeviceInterface500, and some new functions that are available on Mac OS X version 10.9 and later. Super: IOUSBDeviceInterface500
See also Apple’s documentation
Fields§
§QueryInterface: Option<unsafe extern "C-unwind" fn(*mut c_void, REFIID, *mut LPVOID) -> HRESULT>§AddRef: Option<unsafe extern "C-unwind" fn(*mut c_void) -> ULONG>§Release: Option<unsafe extern "C-unwind" fn(*mut c_void) -> ULONG>§CreateDeviceAsyncEventSource: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut *mut CFRunLoopSource) -> IOReturn>§GetDeviceAsyncEventSource: Option<unsafe extern "C-unwind" fn(*mut c_void) -> *mut CFRunLoopSource>§CreateDeviceAsyncPort: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut mach_port_t) -> IOReturn>§GetDeviceAsyncPort: Option<unsafe extern "C-unwind" fn(*mut c_void) -> mach_port_t>§USBDeviceOpen: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>§USBDeviceClose: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>§GetDeviceClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§GetDeviceSubClass: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§GetDeviceProtocol: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§GetDeviceVendor: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> IOReturn>§GetDeviceProduct: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> IOReturn>§GetDeviceReleaseNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u16) -> IOReturn>§GetDeviceAddress: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut USBDeviceAddress) -> IOReturn>§GetDeviceBusPowerAvailable: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>§GetDeviceSpeed: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§GetNumberOfConfigurations: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§GetLocationID: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>§GetConfigurationDescriptorPtr: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, *mut IOUSBConfigurationDescriptorPtr) -> IOReturn>§GetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§SetConfiguration: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> IOReturn>§GetBusFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> IOReturn>§ResetDevice: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>§DeviceRequest: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest) -> IOReturn>§DeviceRequestAsync: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequest, IOAsyncCallback1, *mut c_void) -> IOReturn>§CreateInterfaceIterator: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBFindInterfaceRequest, *mut io_iterator_t) -> IOReturn>§USBDeviceOpenSeize: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>§DeviceRequestTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO) -> IOReturn>§DeviceRequestAsyncTO: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut IOUSBDevRequestTO, IOAsyncCallback1, *mut c_void) -> IOReturn>§USBDeviceSuspend: Option<unsafe extern "C-unwind" fn(*mut c_void, u8) -> IOReturn>§USBDeviceAbortPipeZero: Option<unsafe extern "C-unwind" fn(*mut c_void) -> IOReturn>§USBGetManufacturerStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§USBGetProductStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§USBGetSerialNumberStringIndex: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u8) -> IOReturn>§USBDeviceReEnumerate: Option<unsafe extern "C-unwind" fn(*mut c_void, u32) -> IOReturn>§GetBusMicroFrameNumber: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> IOReturn>§GetIOUSBLibVersion: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32, *mut u32) -> IOReturn>§GetBusFrameNumberWithTime: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u64, *mut i32) -> IOReturn>§GetUSBDeviceInformation: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>§RequestExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32, *mut u32) -> IOReturn>§ReturnExtraPower: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, u32) -> IOReturn>§GetExtraPowerAllocated: Option<unsafe extern "C-unwind" fn(*mut c_void, u32, *mut u32) -> IOReturn>§GetBandwidthAvailableForDevice: Option<unsafe extern "C-unwind" fn(*mut c_void, *mut u32) -> IOReturn>§SetConfigurationV2: Option<unsafe extern "C-unwind" fn(*mut c_void, u8, bool, bool) -> IOReturn>Sets the configuration in the device.
Note that setting the configuration causes any existing IOUSBInterface objects attached to the IOUSBDevice to be destroyed, and all of the interfaces in the new configuration to be instantiated as new IOUSBInterface objects. The device must be open to use this function.
Parameter self: Pointer to the IOUSBDeviceInterface.
Parameter configNum: The value of the desired configuration (from IOUSBConfigurationDescriptor.bConfigurationValue)
Parameter startInterfaceMatching: true if IOUSBFamily should call IOKit to match the IOUSBInterface nubs. If false is set, the client
needs to either (1) have the “com.apple.vm.device-access” entitlement and have the IOUSBDevice authorized
via the IOKit’s IOServiceAuthorize() API or (1) have root privileges.
Parameter issueRemoteWakeup: true if IOUSBFamily should send the command to enable remote wakeup in the device
Returns: Returns kIOReturnSuccess if successful, kIOReturnNoDevice if there is no connection to an IOService, or kIOReturnNotOpen if the device is not open for exclusive access.
RegisterForNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64, IOAsyncCallback2, *mut c_void, *mut u64) -> IOReturn>Registers a callback routine to be invoked when certain events occur in the kernel.
The callback function will be called, for example when the underlying IOUSBDevice is going to be suspended due to some kind of kernel activity. It will also be called when the underlying IOUSBDevice is resumed. Availability: This function is only available with IOUSBDeviceInterface650 and above.
Parameter self: Pointer to the IOUSBDeviceInterface.
Parameter notificationMask: Specifies the desired type of notification
Parameter callback: An IOAsyncCallback2 method. Upon completion, the arg0 argument of the AsyncCallback2 will contain the
notification type, and arg1 will contain a notificationToken which should be used when calling AcknowledgeNotification
Parameter refCon: Arbitrary pointer which is passed as a parameter to the callback routine.
Parameter pRegistrationToken: A pointer to a UInt64 which will contain a registration token if the function is
successful. This registration token can then later be used to call UnregisterNotification.
Returns: Returns kIOReturnSuccess if successful, kIOReturnNoDevice if there is no connection to an IOService.
UnregisterNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> IOReturn>Unregisters a previously registered callback routine
The callback routine will no longer be invoked when events occur Availability: This function is only available with IOUSBDeviceInterface650 and above.
Parameter self: Pointer to the IOUSBDeviceInterface.
Parameter registrationToken: The registration token which was obtained in the call to RegisterForNotification
Returns: Returns kIOReturnSuccess if successful, kIOReturnNoDevice if there is no connection to an IOService.
AcknowledgeNotification: Option<unsafe extern "C-unwind" fn(*mut c_void, u64) -> IOReturn>Acknowledges a notification event
Some events in the kernel will wait for an acknowledgement from all interested parties before proceeding. For example, if an IOUSBDevice is about to be suspended, any User Code which has registered to receive that event will be notified and should acknowledge the notification when it is ready for the IOUSBDevice to be suspended. Availability: This function is only available with IOUSBDeviceInterface650 and above.
Parameter self: Pointer to the IOUSBDeviceInterface.
Parameter notificationToken: The notification token which was passed in to the callback routine
Returns: Returns kIOReturnSuccess if successful, kIOReturnNoDevice if there is no connection to an IOService.
Trait Implementations§
Source§impl Clone for IOUSBDeviceStruct650
Available on crate feature usb only.
impl Clone for IOUSBDeviceStruct650
usb only.Source§fn clone(&self) -> IOUSBDeviceStruct650
fn clone(&self) -> IOUSBDeviceStruct650
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for IOUSBDeviceStruct650
Available on crate feature usb only.
impl Debug for IOUSBDeviceStruct650
usb only.Source§impl Encode for IOUSBDeviceStruct650
Available on crate features usb and objc2 only.
impl Encode for IOUSBDeviceStruct650
usb and objc2 only.Source§impl PartialEq for IOUSBDeviceStruct650
Available on crate feature usb only.
impl PartialEq for IOUSBDeviceStruct650
usb only.Source§impl RefEncode for IOUSBDeviceStruct650
Available on crate features usb and objc2 only.
impl RefEncode for IOUSBDeviceStruct650
usb and objc2 only.Source§const ENCODING_REF: Encoding
const ENCODING_REF: Encoding
impl Copy for IOUSBDeviceStruct650
usb only.impl StructuralPartialEq for IOUSBDeviceStruct650
usb only.