IOKit框架详细解析(一) —— 基本概览

版本记录

版本号 时间
V1.0 2018.02.08

前言

IOKit框架获得用户空间访问硬件设备和驱动程序。接下来几篇我们就一起看一下这个框架。

Overview

下面先看一下该框架的基本信息。

IOKit框架详细解析(一) —— 基本概览_第1张图片

下面看一下该框架的基本结构。

IOKit框架详细解析(一) —— 基本概览_第2张图片
IOKit框架详细解析(一) —— 基本概览_第3张图片
IOKit框架详细解析(一) —— 基本概览_第4张图片

I / O Kit框架通过设备接口机制实现对I / O Kit对象(驱动程序和结点)的非内核访问。


Topics

1. COM Interfaces

  • IOATASMARTInterface

    • 自我监测,分析和报告技术界面
  • IOFireWireAsyncStreamCommandInterface

  • IOFireWireAVCLibConsumerInterface

    • 异步连接使用者的接口。
  • IOFireWireAVCLibProtocolInterface

    • 为所有AVC协议驱动程序发现的初始界面。
  • IOFireWireAVCLibUnitInterface

    • 为所有AVC单元驱动程序发现初始界面。
  • IOFireWireCommandInterface

    • IOFireWireLib命令对象。
  • IOFireWireCompareSwapCommandInterface

  • IOFireWireCompareSwapCommandInterface_v3

  • IOFireWireConfigDirectoryInterface

    • IOFireWireLib设备配置ROM浏览界面
  • IOFireWireDCLCommandPoolInterface

  • IOFireWireDeviceInterface

    • IOFireWireDeviceInterface是您在IOFireWireLib中包含的功能的主要网关。
  • IOFireWireIsochChannelInterface

    • FireWire用户客户端等时通道对象。
  • IOFireWireIsochPortInterface

    • FireWire用户客户端同步端口接口
  • IOFireWireLibIRMAllocationInterface

  • IOFireWireLibPHYPacketListenerInterface

    • 表示并为一个phy数据包侦听器对象提供管理功能。
  • IOFireWireLibVectorCommandInterface

    • IOFireWireLib命令对象用于分组命令的执行。
  • IOFireWireLocalIsochPortInterface

    • FireWire用户客户端本地等时端口对象。
  • IOFireWireLocalUnitDirectoryInterface

  • IOFireWireNuDCLPoolInterface

    • 使用这个接口来建立基于NuDCL的DCL程序。
  • IOFireWirePHYCommandInterface

IOFireWirePhysicalAddressSpaceInterface

  • IOFireWireLib物理地址空间对象。 (接口名称:IOFireWirePhysicalAddressSpaceInterface

  • IOFireWirePseudoAddressSpaceInterface

  • IOFireWireReadCommandInterface

    • IOFireWireLib块读取命令对象。
  • IOFireWireReadQuadletCommandInterface

    • IOFireWireReadQuadletCommandInterface - IOFireWireLib四字节读取命令对象。
  • IOFireWireRemoteIsochPortInterface

  • IOFireWireSBP2LibLoginInterface

    • 提供API的登录维护和正常命令ORB执行部分。
  • IOFireWireSBP2LibLUNInterface

    • 发现所有驱动程序的初始界面。
  • IOFireWireSBP2LibMgmtORBInterface

    • 提供非登录相关的管理ORB。 如有必要,可以独立于登录执行管理ORB。 管理ORB使用IOFireWireSBP2LibLUNInterface创建。
  • IOFireWireSBP2LibORBInterface

    • 表示SBP2正常命令ORB。 提供用于配置常规命令ORB的API。 这包括设置命令块和写入I / O的页表。 ORB使用IOFireWireSBP2LibLoginInterface中的submitORB方法执行。
  • IOFireWireWriteCommandInterface

    • IOFireWireLib块读取命令对象。
  • IOFireWireWriteQuadletCommandInterface

    • IOFireWireLib四字节读命令对象。
  • IOFWAsyncStreamListenerInterface

    • 表示并为异步流侦听器对象提供管理功能。
  • IOHIDDeviceDeviceInterface

    • 用于从用户空间访问HID设备的对象,由IOHIDFamily 1.5版返回。
  • IOHIDDeviceInterface

    • HID设备提供主接口的CFPlugin对象子类。
  • IOHIDDeviceInterface121

    • 为HID设备提供主接口的CFPlugin对象子类。 这个类是IOHIDDeviceInterface的子类。
  • IOHIDDeviceInterface122

    • HID设备提供主接口的CFPlugin对象子类。 这个类是IOHIDDeviceInterface121的一个子类。
  • IOHIDDeviceQueueInterface

    • 用于从用户空间访问HID队列的对象,由IOHIDFamily 1.5版返回。
  • IOHIDDeviceTransactionInterface

    • 用于从用户空间访问HID事务的对象,由IOHIDFamily 1.5版返回。
  • IOHIDOutputTransactionInterface

    • CFPlugin对象子类,为HID设备提供输出事务的接口。 由IOHIDDevice接口对象创建。
  • IOHIDQueueInterface

    • CFPlugin对象的子类,它提供了来自HID设备的输入队列的接口。 由IOHIDDeviceInterface对象创建。
  • IOUPSPlugInInterface

    • 代表并提供UPS设备的管理功能。
  • IOUSBDeviceInterface

    • 用于从用户空间访问USB设备的对象,由当前所有版本的IOUSBFamily返回。
  • IOUSBDeviceInterface182

    • 用于从用户空间访问USB设备的对象,由IOUSBFamily版本1.8.2及更高版本返回。
  • IOUSBDeviceInterface187

    • 用于从用户空间访问USB设备的对象,由IOUSBFamily版本10.8.7及更高版本返回。
  • IOUSBDeviceInterface197

    • 用于从用户空间访问USB设备的对象,由IOUSBFamily版本1.9.7及更高版本返回。
  • IOUSBDeviceInterface245

    • 用于从用户空间访问USB设备的对象,由IOUSBFamily版本2.4.5及更高版本返回。
  • IOUSBDeviceInterface300

    • 用于从用户空间访问USB设备的对象,由IOUSBFamily版本3.0.0及更高版本返回。
  • IOUSBDeviceInterface320

    • 用于从用户空间访问USB设备的对象,由IOUSBFamily版本3.2.0及更高版本返回。
  • IOUSBDeviceInterface500

    • 用于从用户空间访问USB设备的对象,由IOUSBFamily版本3.2.0及更高版本返回。
  • IOUSBInterfaceInterface

    • 用于从用户空间访问USB设备接口的对象,由当前所有版本的IOUSBFamily返回。
  • IOUSBInterfaceInterface182

    • 用于从用户空间访问USB设备接口的对象,由IOUSBFamily版本1.8.2及更高版本返回。
  • IOUSBInterfaceInterface183

    • 用于从用户空间访问USB设备接口的对象,由IOUSBFamily版本1.8.3及更高版本返回。
  • IOUSBInterfaceInterface190

    • 用于从用户空间访问USB设备接口的对象,由IOUSBFamily 1.9及更高版本返回。
  • IOUSBInterfaceInterface192

    • 用于从用户空间访问USB设备接口的对象,由IOUSBFamily版本1.9.2及更高版本返回。
  • IOUSBInterfaceInterface197

    • 用于从用户空间访问USB设备接口的对象,由IOUSBFamily版本1.9.7及更高版本返回。
  • MMCDeviceInterface

    • MMC-2兼容设备的基本接口。
  • SCSITaskDeviceInterface

    • SCSITask设备的基本接口。
  • SCSITaskInterface

    • SCSITask的基本接口。

2. Reference

  • ATASMARTLib.h

    • ATASMARTLib实现对ATA SMART数据的非内核任务访问。
  • IOAudioDefines.h User-Space

  • IOAudioLib.h

    • IOAudio函数的C接口
  • IOAudioTypes.h User-Space

  • IOBDBlockStorageDevice.h User-Space

    • 这个头包含IOBDBlockStorageDevice类的定义。
  • IOBDMedia.h User-Space

    • 此头文件包含IOBDMedia类定义。
  • IOBlockStorageDevice.h User-Space

    • 这个头文件包含了IOBlockStorageDevice类的定义。
  • IOBlockStorageDriver.h User-Space

    • 此头文件包含IOBlockStorageDriver类定义。
  • IOCDBlockStorageDevice.h User-Space

    • 这个头文件包含了IOCDBlockStorageDevice类的定义。
  • IOCDMedia.h User-Space

    • 这个头文件包含了IOCDMedia类的定义。
  • IODVDBlockStorageDevice.h User-Space

    • 这个头包含IODVDBlockStorageDevice类的定义。
  • IODVDMedia.h User-Space

    • 此头文件包含IODVDMedia类定义。
  • IODataQueueClient.h

  • IODataQueueShared.h User-Space

  • IOEthernetController.h User-Space

  • IOEthernetInterface.h User-Space

  • IOEthernetStats.h User-Space

    • 以太网统计。
  • IOFilterScheme.h User-Space

    • 此头文件包含IOFilterScheme类定义。
  • IOFireWireAVCLib.h

  • IOFireWireFamilyCommon.h User-Space

    • 该文件包含在内核和用户空间中使用FireWire的有用定义
  • IOFireWireLib.h

  • IOFireWireSBP2Lib.h

  • IOFireWireStorageCharacteristics.h User-Space

  • IOFramebufferShared.h User-Space

  • IOGraphicsLib.h

  • IOGraphicsTypes.h User-Space

  • IOHIDBase.h

  • IOHIDDevice.h User-Space

  • IOHIDDevicePlugIn.h

  • IOHIDElement.h

  • IOHIDKeys.h User-Space

  • IOHIDLibObsolete.h

  • IOHIDManager.h

  • IOHIDQueue.h

  • IOHIDTransaction.h

  • IOHIDValue.h

  • IOI2CInterface.h User-Space

  • IOKitLib.h

  • IOKitServer.h User-Space

  • IOMedia.h User-Space

  • IOMessage.h User-Space

    • 为几个IOKit消息传递API定义消息类型常量。
  • IONetworkController.h User-Space

  • IONetworkData.h User-Space

  • IONetworkInterface.h User-Space

  • IONetworkLib.h

  • IONetworkMedium.h User-Space

  • IONetworkStats.h User-Space

    • 通用网络统计。
  • IOPM.h User-Space

    • 定义内核和用户空间电源管理使用的电源管理常量和密钥。
  • IOPMKeys.h

    • IOPMKeys.h定义用于访问电源管理数据的C字符串。 请注意,在使用之前,所有这些C字符串都必须转换为CFStrings。 你可以用CFSTR()宏包装它们,或者使用CFStringCreateWithCString()创建一个CFStringRef(你以后必须使用CFRelease())
  • IOPMLib.h

    • IOPMLib提供对常用电源管理功能的访问,如启动系统睡眠,获取当前的空闲定时器值,注册睡眠/唤醒通知以及防止系统休眠。
  • IOPSKeys.h

    • IOPSKeys.h定义用于访问IOPowerSource CFDictionaries中的电源数据的C字符串,由IOPSGetPowerSourceDescription返回。请注意,所有这些C字符串在使用前必须转换为CFStrings。 你可以用CFSTR()宏包装它们,或者使用CFStringCreateWithCString()创建一个CFStringRef(你以后必须使用CFRelease())。
  • IOPartitionScheme.h User-Space

    • 此头文件包含IOPartitionScheme类定义。
  • IOPowerSources.h

  • IOStorage.h User-Space

    • 这个头文件包含了IOStorage类的定义。
  • IOStorageCardCharacteristics.h User-Space

  • IOStorageDeviceCharacteristics.h User-Space

  • IOStorageProtocolCharacteristics.h User-Space

  • IOStreamLib.h

    • 用于使用IOStream对象的IOCFPlugin库。
  • IOStreamShared.h User-Space

    • IOStream定义在内核和用户空间之间共享。
  • IOTypes.h User-Space

  • IOUPSPlugIn.h

  • IOUSBLib.h

  • IOVideoDeviceLib.h User-Space

  • IOVideoDeviceShared.h User-Space

  • IOVideoDeviceUserClient.h User-Space

  • IOVideoTypes.h User-Space

  • KextManager.h

  • SCSICmds_INQUIRY_Definitions.h User-Space

  • SCSICmds_MODE_Definitions.h User-Space

  • SCSICmds_READ_CAPACITY_Definitions.h User-Space

  • SCSICmds_REPORT_LUNS_Definitions.h User-Space

  • SCSICmds_REQUEST_SENSE_Defs.h User-Space

  • SCSICommandDefinitions.h User-Space

  • SCSITask.h User-Space

  • SCSITaskLib.h

  • USB.h User-Space

  • USBSpec.h User-Space

  • IOKit Structures

  • IOKit Enumerations

  • IOKit Constants

  • IOKit Functions

  • IOKit Data Types

3. Classes

  • IOVideoControlDictionary

  • IOVideoStreamDictionary

  • IOVideoStreamFormatDictionary

  • OSArray

  • OSDictionary

  • OSString

4. Related Documentation

  • IOKit Fundamentals

后记

本篇已结束,后面更精彩~~~

IOKit框架详细解析(一) —— 基本概览_第5张图片

你可能感兴趣的:(IOKit框架详细解析(一) —— 基本概览)