#defines

# UUID constants

### kIOUSBDeviceInterfaceID

    #define kIOUSBDeviceInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x5c, 0x81, 0x87, 0xd0, 0x9e, 0xf3, 0x11, 0xD4, \
     0x8b, 0x45, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61)

This UUID constant is used to obtain a device inteferface corresponding to an IOUSBDevice User Client in the kernel. The type of this device interface is IOUSBDeviceInterface. This device interface is obtained after the device interface for the service itself has been obtained (see kIOUSBDeviceUserClientTypeID).

Note: This IOUSBDeviceInterface is returned by all versions of the IOUSBFamily currently shipping (as of 10.2). However, there are some functions which are available only in IOUSBFamily version 1.8.2 and above. Access to these functions, in addition to the functions contained in IOUSBDeviceInterface, can be obtained by using one of the other UUIDs listed below.

Example

    	IOCFPluginInterface		**iodev; 	// obtained earlier

    	IOUSBDeviceInterface	**dev;		// fetching this now
    	IOReturn				err;

    	err = (*iodev)->QueryInterface(iodev,
    					CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID),
    					(LPVoid)&dev);

### kIOUSBDeviceInterfaceID182

    #define kIOUSBDeviceInterfaceID182 CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x15, 0x2f, 0xc4, 0x96, 0x48, 0x91, 0x11, 0xD5, \
     0x9d, 0x52, 0x00, 0x0a, 0x27, 0x80, 0x1e, 0x86)

This UUID constant is used to obtain a device inteferface corresponding to an IOUSBDevice User Client in the kernel. The type of this device interface is IOUSBDeviceInterface182. This device interface is obtained after the device interface for the service itself has been obtained (see kIOUSBDeviceUserClientTypeID).

Note: This IOUSBDeviceInterface182 is returned only by version 1.8.2 or above of the IOUSBFamily. This version of IOUSBFamily shipped with Mac OS X version 10.0.4. If your software is running on an earlier version of Mac OS X you will need to use the UUID kIOUSBDeviceInterfaceID and will not have access to some functions.

Example

    	IOCFPluginInterface		**iodev; 	// obtained earlier

    	IOUSBDeviceInterface182	**dev;		// fetching this now
    	IOReturn				err;

    	err = (*iodev)->QueryInterface(iodev,
    					CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID182),
    					(LPVoid)&dev);

### kIOUSBDeviceInterfaceID187

    #define kIOUSBDeviceInterfaceID186 CFUUIDGetConstantUUIDWithBytes(NULL, \
    0x3C, 0x9E, 0xE1, 0xEB, 0x24, 0x02, 0x11, 0xB2, 			\
    0x8E, 0x7E, 0x00, 0x0A, 0x27, 0x80, 0x1E, 0x86)

This UUID constant is used to obtain a device inteferface corresponding to an IOUSBDevice User Client in the kernel. The type of this device interface is IOUSBDeviceInterface187. This device interface is obtained after the device interface for the service itself has been obtained (see kIOUSBDeviceUserClientTypeID).

Note: This IOUSBDeviceInterface187 is returned only by version 1.8.7 or above of the IOUSBFamily. This version of IOUSBFamily shipped with Mac OS X version 10.1.2. If your software is running on an earlier version of Mac OS X you will need to use a UUID corresponding to that earlier version of Mac OS X.

Example

    	IOCFPluginInterface		**iodev; 	// obtained earlier

    	IOUSBDeviceInterface186	**dev;		// fetching this now
    	IOReturn				err;

    	err = (*iodev)->QueryInterface(iodev,
    					CFUUIDGetUUIDBytes(kIOUSBDeviceInterfaceID187),
    					(LPVoid)&dev);

### kIOUSBDeviceUserClientTypeID

    #define kIOUSBDeviceUserClientTypeID CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x9d, 0xc7, 0xb7, 0x80, 0x9e, 0xc0, 0x11, 0xD4, \
     0xa5, 0x4f, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61)

This UUID constant is used to obtain a device inteferface corresponding to an io_service_t corresponding to an IOUSBDevice in the kernel. Once you have obtained the device interface for the service, you must use the QueryInterface function to obtain the device interface for the User Client itself (see kIOUSBDeviceInterfaceID, kIOUSBDeviceInterfaceID182, or kIOUSBInterfaceInterfaceID187).

Example

    	io_service_t		usbDeviceRef;	// obtained earlier

    	IOCFPlugInInterface	**iodev;		// fetching this now

    	SInt32				score;			// not used
    	IOReturn			err;

    	err = IOCreatePlugInInterfaceForService(usbDeviceRef,

    					kIOUSBDeviceUserClientTypeID,
    					kIOCFPlugInInterfaceID,
    					&iodev,
    					&score);

### kIOUSBFactoryID

    #define kIOUSBFactoryID CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x45, 0x47, 0xa8, 0xaa, 0x9e, 0xf3, 0x11, 0xD4, \
     0xa9, 0xbd, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61)

This UUID constant is used internally by the system, and should not have to be used by any driver code to access the device interfaces.

### kIOUSBInterfaceInterfaceID

    #define kIOUSBInterfaceInterfaceID CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x73, 0xc9, 0x7a, 0xe8, 0x9e, 0xf3, 0x11, 0xD4, \
     0xb1, 0xd0, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61)

This UUID constant is used to obtain a device inteferface corresponding to an IOUSBInterface User Client in the kernel. The type of this device interface is IOUSBInterfaceInterface. This device interface is obtained after the device interface for the service itself has been obtained (see kIOUSBInterfaceUserClientTypeID).

Note: This IOUSBInterfaceInterface is returned by all versions of the IOUSBFamily currently shipping (as of 10.2). However, there are some functions which are available only in IOUSBFamily version 1.8.2 and above. Access to these functions, as well as all of the functions contained in IOUSBInterfaceInterface, can be obtained by using one of the other UUIDs listed below.

Example

    	IOCFPluginInterface		**iodev; 	// obtained earlier

    	IOUSBInterfaceInterface	**intf;		// fetching this now
    	IOReturn				err;

    	err = (*iodev)->QueryInterface(iodev,
    					CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID),
    					(LPVoid)&intf);

.

### kIOUSBInterfaceInterfaceID182

    #define kIOUSBInterfaceInterfaceID182 CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x49, 0x23, 0xac, 0x4c, 0x48, 0x96, 0x11, 0xD5, \
     0x92, 0x08, 0x00, 0x0a, 0x27, 0x80, 0x1e, 0x86)

This UUID constant is used to obtain a device inteferface corresponding to an IOUSBInterface User Client in the kernel. The type of this device interface is IOUSBInterfaceInterface182. This device interface is obtained after the device interface for the service itself has been obtained (see kIOUSBInterfaceUserClientTypeID).

Note: This IOUSBInterfaceInterface182 is returned only by version 1.8.2 or above of the IOUSBFamily. This version of IOUSBFamily shipped with Mac OS X version 10.0.4. If your software is running on an earlier version of Mac OS X you will need to use the UUID kIOUSBInterfaceInterfaceID and will not have access to some functions.

Example

    	IOCFPluginInterface			**iodev; 	// obtained earlier

    	IOUSBInterfaceInterface182	**intf;		// fetching this now
    	IOReturn					err;

    	err = (*iodev)->QueryInterface(iodev,
    					CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID182),
    					(LPVoid)&intf);

### kIOUSBInterfaceInterfaceID183

    #define kIOUSBInterfaceInterfaceID183 CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x1c, 0x43, 0x83, 0x56, 0x74, 0xc4, 0x11, 0xD5, \
     0x92, 0xe6, 0x00, 0x0a, 0x27, 0x80, 0x1e, 0x86)

This UUID constant is used to obtain a device inteferface corresponding to an IOUSBInterface User Client in the kernel. The type of this device interface is IOUSBInterfaceInterface183. This device interface is obtained after the device interface for the service itself has been obtained (see kIOUSBInterfaceUserClientTypeID).

Note: This IOUSBInterfaceInterface183 is returned only by version 1.8.3 or above of the IOUSBFamily. This version of IOUSBFamily shipped with Mac OS X version 10.1. If your software is running on a Mac OS X version prior to 10.1 you will need to use the UUID kIOUSBInterfaceInterfaceID or kIOUSBInterfaceInterfaceID182 and will not have access to some functions.

Example

    	IOCFPluginInterface			**iodev; 	// obtained earlier

    	IOUSBInterfaceInterface182	**intf;		// fetching this now
    	IOReturn					err;

    	err = (*iodev)->QueryInterface(iodev,
    					CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID183),
    					(LPVoid)&intf);

### kIOUSBInterfaceInterfaceID190

    #define kIOUSBInterfaceInterfaceID190 CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x8f, 0xdb, 0x84, 0x55, 0x74, 0xa6, 0x11, 0xD6, \
     0x97, 0xb1, 0x00, 0x30, 0x65, 0xd3, 0x60, 0x8e)

This UUID constant is used to obtain a device inteferface corresponding to an IOUSBInterface User Client in the kernel. The type of this device interface is IOUSBInterfaceInterface190. This device interface is obtained after the device interface for the service itself has been obtained (see kIOUSBInterfaceUserClientTypeID).

Note: This IOUSBInterfaceInterface190 is returned only by version 1.9 or above of the IOUSBFamily. This version of IOUSBFamily shipped with Mac OS X version 10.2. If your software is running on a Mac OS X version prior to 10.2 you will need to use the UUID kIOUSBInterfaceInterfaceID, kIOUSBInterfaceInterfaceID182, or kIOUSBInterfaceInterfaceID183 and will not have access to some functions.

Example

    	IOCFPluginInterface			**iodev; 	// obtained earlier

    	IOUSBInterfaceInterface182	**intf;		// fetching this now
    	IOReturn					err;

    	err = (*iodev)->QueryInterface(iodev,
    					CFUUIDGetUUIDBytes(kIOUSBInterfaceInterfaceID190),
    					(LPVoid)&intf);

###

### kIOUSBInterfaceUserClientTypeID

    #define kIOUSBInterfaceUserClientTypeID CFUUIDGetConstantUUIDWithBytes(NULL, \
     0x2d, 0x97, 0x86, 0xc6, 0x9e, 0xf3, 0x11, 0xD4, \
     0xad, 0x51, 0x00, 0x0a, 0x27, 0x05, 0x28, 0x61)

This UUID constant is used to obtain a device inteferface corresponding to an io_service_t corresponding to an IOUSBInterface in the kernel. Once you have obtained the device interface for the service, you must use the QueryInterface function to obtain the device interface for the User Client itself (see kIOUSBInterfaceInterfaceID , kIOUSBInterfaceInterfaceID182, kIOUSBInterfaceInterfaceID183, or kIOUSBInterfaceInterfaceID190).

Example

    	io_service_t		usbInterfaceRef;	// obtained earlier

    	IOCFPlugInInterface	**iodev;			// fetching this now

    	SInt32				score;				// not used
    	IOReturn			err;

    	err = IOCreatePlugInInterfaceForService(usbInterfaceRef,

    					kIOUSBInterfaceUserClientTypeID,
    					kIOCFPlugInInterfaceID,
    					&iodev,
    					&score);

© 2001-2002 Apple Computer, Inc. — (Last Updated June 19, 2002)