Which one I must use Generic kernel extension or I/O Driver extension for controlling drivers on MacOS?

StackOverflow https://stackoverflow.com/questions/10294100

문제

I want to reach bluetooth, wifi, usb, firewire and other communication interfaces on mac. I want to also doing authentication for bluetooth and wifi. Which kernel extension I must use Generic kernel extension or I/O Driver extension?

도움이 되었습니까?

해결책

  • The Airport (Wifi) drivers don't have public kernel APIs.
  • The public bluetooth APIs mostly live in user space, not the kernel.
  • USB and Firewire device families are managed by the I/O Kit and have public APIs in both the kernel and user space.
  • By "other communication" I assume you mean networking? Network card device drivers are built around the kernel I/O Kit APIs, sockets and packet filtering etc. live in the BSD portion of the kernel.

So overall, if you need to get at the objects representing devices, you will need to use the I/O Kit - either from an I/O Kit kext or from userspace. If you're using the network (Ethernet, IP) APIs, you'll want a Generic kext.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top