Ben,
I will send an example of a codeless kext which is designed to
keep the white apple USB Extended Keyboard from matching the the
system HID driver. It renders the keyboard useless. The purpose of
the sample is more as an example. You would only want to test with
it by manually loading it with kextload.
Note the attachement will come in a separate email directly for you.
The project creates a kext call "HIDNoMatchDevice"
to modify it to work with your device,
1. open the project file
2. in the project window open the "Info.plist" file
Note the following IOKit Personality
<key>IOKitPersonalities</key>
<dict>
<key>White AppleKeyboard</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.kernel.iokit</string>
<key>IOClass</key>
<string>IOservice</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>bInterfaceNumber</key>
<integer>1</integer>
<key>bcdDevice</key>
<integer>290</integer>
<key>idProduct</key>
<integer>516</integer>
<key>idVendor</key>
<integer>1452</integer>
</dict>
</dict>
You want to set the following properties to match your device
bConfigurationValue
bInterfaceNumber
bcdDevice
idProduct
idVendor
Save the file and build the kext.
Use kextload to manually load the kernel extension, then attach
your device. Use USBProber to verify that the kext was match to
your device with a probe score of 10000.
rich kubota
At 10:19 AM -0600 8/16/05, Ben Hanks wrote:
If anybody has pointers on how to write such a kext I would
appreciate it.
-Ben
On Aug 15, 2005, at 5:45 PM, Raleigh Ledet wrote:
Ben,
I thought that the
kIOHIDOptionsTypeSeizeDevice was supposed to be able to grab
control from
everyone else...?
If you think about it, letting any software grab control of the
device at any time would be a bad thing. For instance, you don't
want some other app coming along and Seizing the device after
you seized it. (Particularly if you are in the middle of an
important read.)
I would venture to guess that the Griffin driver is already
opening the device for exclusive use. If that's the case, all
you can do is either not install the Griffin driver, or write
your own kext that matches at a lower level and can selectively
route the data to your app or back up the normal IO chain to the
griffin driver.
You should, however, be getting either a
kIOReturnExclusiveAccess, or kIOReturnNotPrivileged errors. Do
you get back a different error if you try to open the device
normally?
-raleigh
-----------------------------------------------
Raleigh Ledet, <email@hidden>
Wacom Technology Corp.
Mac Software Engineer
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/usb/email@hidden
This email sent to email@hidden
--
Sincerely,
Rich Kubota
email@hidden
(408) 974-6212
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Usb mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/usb/email@hidden
This email sent to email@hidden